Skip to content

Commit 035b285

Browse files
committed
API change to PVSupport, likely unused though
1 parent dbc06c1 commit 035b285

File tree

4 files changed

+20
-11
lines changed

4 files changed

+20
-11
lines changed

documentation/RELEASE_NOTES.md

+10
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
This document summarizes the changes to the module between releases.
44

5+
## Release 4.7.2 (UNRELEASED)
6+
7+
* The virtual `init()` method of `class PVSupport` has been made un-virtual, and the base-class
8+
implementation always returns `false` as it should not be used. The `ControlSupport` and
9+
`ScalarAlarmSupport` derived classes already provided their own implementations but needed
10+
different method arguments, so a virtual base-class method couldn't be used anyway.
11+
Those derived classes don't appear to be used internally at all, although they were being
12+
used in Marty Kraimer's exampleCPP repository which is no longer maintained or recommended
13+
for use anyway.
14+
515
## Release 4.7.1 (EPICS 7.0.8, Dec 2023)
616

717
* Added data distributor plugin which can be used for distributing data between

src/pv/controlSupport.h

+2-3
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,18 @@ class epicsShareClass ControlSupport :
3535
*/
3636
virtual ~ControlSupport();
3737
/**
38-
* @brief Connects to contol fields.
38+
* @brief Connects to control fields.
3939
*
4040
* @param pvValue The field to support.
4141
* @param pvSupport Support specific fields.
4242
* @return <b>true</b> for success and <b>false</b> for failure.
4343
*/
44-
virtual bool init(
44+
bool init(
4545
epics::pvData::PVFieldPtr const & pvValue,
4646
epics::pvData::PVFieldPtr const & pvSupport);
4747
/**
4848
* @brief Honors control fields.
4949
*
50-
*
5150
* @return Returns true is any fields were modified; otherwise false.
5251
*/
5352
virtual bool process();

src/pv/pvSupport.h

+7-7
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,17 @@ class epicsShareClass PVSupport
3838
*/
3939
virtual ~PVSupport(){}
4040
/**
41-
* @brief Optional initialization method.
41+
* @brief Required initialization method.
4242
*
43-
* Called after PVRecord is created but before record is installed into PVDatabase.
43+
* Implementation classes must define an init() method that must be
44+
* explicitly called by PVRecord classes that use them to provide
45+
* references to the specific fields to be supported. Different support
46+
* will may different fields, so a virtual method cannot be defined in
47+
* this base class to support them, hence this method always fails.
4448
*
45-
* @param pvValue The field to support.
46-
* @param pvSupport Support specific fields.
4749
* @return <b>true</b> for success and <b>false</b> for failure.
4850
*/
49-
virtual bool init(
50-
epics::pvData::PVFieldPtr const & pvValue,
51-
epics::pvData::PVFieldPtr const & pvSupport) {return true;}
51+
bool init() {return false;}
5252
/**
5353
* @brief Optional method for derived class.
5454
*

src/pv/scalarAlarmSupport.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class epicsShareClass ScalarAlarmSupport :
4545
* @param pvSupport Support specific fields.
4646
* @return <b>true</b> for success and <b>false</b> for failure.
4747
*/
48-
virtual bool init(
48+
bool init(
4949
epics::pvData::PVFieldPtr const & pvValue,
5050
epics::pvData::PVStructurePtr const & pvAlarm,
5151
epics::pvData::PVFieldPtr const & pvSupport);

0 commit comments

Comments
 (0)