This is Unofficial EPICS BASE Doxygen Site
pipelineService.h
Go to the documentation of this file.
1 
7 #ifndef PIPELINESERVICE_H
8 #define PIPELINESERVICE_H
9 
10 #include <stdexcept>
11 
12 #ifdef epicsExportSharedSymbols
13 # define pipelineServiceEpicsExportSharedSymbols
14 # undef epicsExportSharedSymbols
15 #endif
16 
17 #include <pv/sharedPtr.h>
18 #include <pv/status.h>
19 
20 #ifdef pipelineServiceEpicsExportSharedSymbols
21 # define epicsExportSharedSymbols
22 # undef pipelineServiceEpicsExportSharedSymbols
23 #endif
24 
25 #include <pv/pvAccess.h>
26 
27 #include <shareLib.h>
28 
29 namespace epics {
30 namespace pvAccess {
31 
33 {
34 public:
36 
37  virtual ~PipelineControl() {};
38 
41  virtual size_t getFreeElementCount() = 0;
42 
45  virtual size_t getRequestedCount() = 0;
46 
50  virtual MonitorElement::shared_pointer getFreeElement() = 0;
51 
53  virtual void putElement(MonitorElement::shared_pointer const & element) = 0;
54 
57  virtual void done() = 0;
58 
59 };
60 
61 
63 {
64 public:
66 
67  virtual ~PipelineSession() {};
68 
71  virtual size_t getMinQueueSize() const = 0;
72 
74  virtual epics::pvData::Structure::const_shared_pointer getStructure() const = 0;
75 
79  virtual void request(PipelineControl::shared_pointer const & control, size_t elementCount) = 0;
80 
82  virtual void cancel() = 0;
83 };
84 
85 
87 {
88 public:
90 
91  virtual ~PipelineService() {};
92 
93  virtual PipelineSession::shared_pointer createPipeline(
94  epics::pvData::PVStructure::shared_pointer const & pvRequest
95  ) = 0;
96 
97 };
98 
99 
100 }
101 }
102 
103 #endif /* PIPELINESERVICE_H */
std::string request
TODO only here because of the Lockable.
Definition: ntaggregate.cpp:16
Mark external symbols and entry points for shared libraries.
#define POINTER_DEFINITIONS(clazz)
Definition: sharedPtr.h:198
#define epicsShareClass
Definition: shareLib.h:206
void done(int k)
Definition: antelope.c:77