This is Unofficial EPICS BASE Doxygen Site
processRecord.h
Go to the documentation of this file.
1 /* processRecord.h */
11 #ifndef PROCESSRECORD_H
12 #define PROCESSRECORD_H
13 
14 #include <map>
15 #include <epicsThread.h>
16 #include <pv/event.h>
18 
19 #include <shareLib.h>
20 
21 namespace epics { namespace pvDatabase {
22 
23 typedef std::tr1::shared_ptr<epicsThread> EpicsThreadPtr;
24 
26 typedef std::tr1::shared_ptr<ProcessRecord> ProcessRecordPtr;
27 
37  public PVRecord,
38  public epicsThreadRunable
39 {
40 public:
48  static ProcessRecordPtr create(
49  std::string const & recordName,double delay);
54  virtual bool init();
58  virtual void process();
62  virtual void run();
66  void startThread();
70  void stop();
71 private:
73  std::string const & recordName,
74  epics::pvData::PVStructurePtr const & pvStructure,double delay);
75  double delay;
76  EpicsThreadPtr thread;
77  epics::pvData::Event runStop;
78  epics::pvData::Event runReturn;
79  PVDatabasePtr pvDatabase;
80  PVRecordMap pvRecordMap;
82  epics::pvData::PVStringPtr pvRecordName;
85 };
86 
87 }}
88 
89 #endif /* PROCESSRECORD_H */
C++ wrapper for epicsEvent from EPICS base.
Definition: event.h:31
TODO only here because of the Lockable.
Definition: ntaggregate.cpp:16
std::map< std::string, PVRecordPtr > PVRecordMap
Definition: pvDatabase.h:24
Mark external symbols and entry points for shared libraries.
Base interface for a PVRecord.
Definition: pvDatabase.h:56
std::tr1::shared_ptr< PVDatabase > PVDatabasePtr
Definition: pvDatabase.h:43
#define POINTER_DEFINITIONS(clazz)
Definition: sharedPtr.h:198
epicsMutex mutex
Definition: pvAccess.cpp:71
#define epicsShareClass
Definition: shareLib.h:206
std::tr1::shared_ptr< PVStructure > PVStructurePtr
Definition: pvData.h:87
std::tr1::shared_ptr< PVString > PVStringPtr
Definition: pvData.h:540
Process another record in the same database.
Definition: processRecord.h:36
epicsMutex Mutex
Definition: lock.h:28
C++ and C descriptions for a thread.
std::tr1::shared_ptr< ProcessRecord > ProcessRecordPtr
Definition: processRecord.h:25
std::tr1::shared_ptr< epicsThread > EpicsThreadPtr
Definition: processRecord.h:23