This is Unofficial EPICS BASE Doxygen Site
controlSupport.h
Go to the documentation of this file.
1 
10 #ifndef CONTROLSUPPORT_H
11 #define CONTROLSUPPORT_H
12 
13 #include <pv/pvDatabase.h>
14 #include <pv/pvSupport.h>
15 #include <pv/pvStructureCopy.h>
16 
17 #include <shareLib.h>
18 
19 namespace epics { namespace pvDatabase {
20 
22 typedef std::tr1::shared_ptr<ControlSupport> ControlSupportPtr;
23 
29  PVSupport
30 {
31 public:
36  virtual ~ControlSupport();
44  virtual bool init(
45  epics::pvData::PVFieldPtr const & pvValue,
46  epics::pvData::PVFieldPtr const & pvSupport);
53  virtual bool process();
59  virtual void reset();
66  static ControlSupportPtr create(PVRecordPtr const & pvRecord);
73  static epics::pvData::StructureConstPtr controlField(epics::pvData::ScalarType scalarType);
74 private:
75  ControlSupport(PVRecordPtr const & pvRecord);
76  PVRecordPtr pvRecord;
79  epics::pvData::PVDoublePtr pvLimitLow;
80  epics::pvData::PVDoublePtr pvLimitHigh;
82  epics::pvData::PVScalarPtr pvOutputValue;
83  double currentValue;
84  bool isMinStep;
85 };
86 
87 }}
88 
89 #endif /* CONTROLSUPPORT_H */
TODO only here because of the Lockable.
Definition: ntaggregate.cpp:16
std::tr1::shared_ptr< const Structure > StructureConstPtr
Definition: pvIntrospect.h:162
Mark external symbols and entry points for shared libraries.
#define POINTER_DEFINITIONS(clazz)
Definition: sharedPtr.h:198
Base interface for a PVSupport.
Definition: pvSupport.h:32
#define epicsShareClass
Definition: shareLib.h:206
std::tr1::shared_ptr< PVScalar > PVScalarPtr
Definition: pvData.h:77
std::tr1::shared_ptr< PVRecord > PVRecordPtr
Definition: pvDatabase.h:21
std::tr1::shared_ptr< PVStructure > PVStructurePtr
Definition: pvData.h:87
std::tr1::shared_ptr< PVField > PVFieldPtr
Definition: pvData.h:66
Base interface for a ControlSupport.
std::tr1::shared_ptr< ControlSupport > ControlSupportPtr
std::tr1::shared_ptr< PVDouble > PVDoublePtr
Definition: pvData.h:514