11 #ifndef PVACLIENTMULTICHANNEL_H 12 #define PVACLIENTMULTICHANNEL_H 14 #ifdef epicsExportSharedSymbols 15 # define pvaClientMultiChannelEpicsExportSharedSymbols 16 # undef epicsExportSharedSymbols 22 #ifdef pvaClientMultiChannelEpicsExportSharedSymbols 23 # define epicsExportSharedSymbols 24 # undef pvaClientMultiChannelEpicsExportSharedSymbols 31 namespace epics {
namespace pvaClient {
61 public std::tr1::enable_shared_from_this<PvaClientMultiChannel>
72 static PvaClientMultiChannelPtr create(
75 std::string
const & providerName =
"pva",
76 size_t maxNotConnected=0
101 bool connectionChange();
109 PvaClientChannelArray getPvaClientChannelArray();
118 PvaClientMultiGetDoublePtr createGet();
123 PvaClientMultiPutDoublePtr createPut();
128 PvaClientMultiMonitorDoublePtr createMonitor();
133 PvaClientNTMultiPutPtr createNTPut();
139 PvaClientNTMultiGetPtr createNTGet(
140 std::string
const &
request =
"field(value,alarm,timeStamp)");
146 PvaClientNTMultiMonitorPtr createNTMonitor(
147 std::string
const &
request=
"field(value,alarm,timeStamp)");
152 std::string
const & providerName,
153 size_t maxNotConnected);
154 void checkConnected();
158 std::string providerName;
159 size_t maxNotConnected;
165 PvaClientChannelArray pvaClientChannelArray;
174 public std::tr1::enable_shared_from_this<PvaClientMultiGetDouble>
186 static PvaClientMultiGetDoublePtr create(
187 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
188 PvaClientChannelArray
const &pvaClientChannelArray);
206 return shared_from_this();
210 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
211 PvaClientChannelArray
const &pvaClientChannelArray);
213 PvaClientMultiChannelPtr pvaClientMultiChannel;
214 PvaClientChannelArray pvaClientChannelArray;
219 std::vector<PvaClientGetPtr> pvaClientGet;
227 public std::tr1::enable_shared_from_this<PvaClientMultiPutDouble>
238 static PvaClientMultiPutDoublePtr create(
239 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
240 PvaClientChannelArray
const &pvaClientChannelArray);
255 return shared_from_this();
259 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
260 PvaClientChannelArray
const &pvaClientChannelArray);
262 PvaClientMultiChannelPtr pvaClientMultiChannel;
263 PvaClientChannelArray pvaClientChannelArray;
267 std::vector<PvaClientPutPtr> pvaClientPut;
275 public std::tr1::enable_shared_from_this<PvaClientMultiMonitorDouble>
286 static PvaClientMultiMonitorDoublePtr create(
287 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
288 PvaClientChannelArray
const &pvaClientChannelArray);
307 bool waitEvent(
double secondsToWait);
318 return shared_from_this();
322 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
323 PvaClientChannelArray
const &pvaClientChannelArray);
325 PvaClientMultiChannelPtr pvaClientMultiChannel;
326 PvaClientChannelArray pvaClientChannelArray;
331 std::vector<PvaClientMonitorPtr> pvaClientMonitor;
332 bool isMonitorConnected;
339 public std::tr1::enable_shared_from_this<PvaClientNTMultiGet>
351 static PvaClientNTMultiGetPtr create(
352 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
353 PvaClientChannelArray
const &pvaClientChannelArray,
366 void get(
bool valueOnly =
true);
371 PvaClientNTMultiDataPtr getData();
377 return shared_from_this();
382 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
383 PvaClientChannelArray
const &pvaClientChannelArray,
386 PvaClientMultiChannelPtr pvaClientMultiChannel;
387 PvaClientChannelArray pvaClientChannelArray;
393 PvaClientNTMultiDataPtr pvaClientNTMultiData;
394 std::vector<PvaClientGetPtr> pvaClientGet;
402 public std::tr1::enable_shared_from_this<PvaClientNTMultiPut>
413 static PvaClientNTMultiPutPtr create(
414 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
415 PvaClientChannelArray
const &pvaClientChannelArray);
436 return shared_from_this();
440 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
441 PvaClientChannelArray
const &pvaClientChannelArray);
443 PvaClientMultiChannelPtr pvaClientMultiChannel;
444 PvaClientChannelArray pvaClientChannelArray;
450 std::vector<PvaClientPutPtr> pvaClientPut;
458 public std::tr1::enable_shared_from_this<PvaClientNTMultiMonitor>
469 static PvaClientNTMultiMonitorPtr create(
470 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
471 PvaClientChannelArray
const &pvaClientChannelArray,
485 bool poll(
bool valueOnly =
true);
492 bool waitEvent(
double secondsToWait);
497 PvaClientNTMultiDataPtr getData();
503 return shared_from_this();
508 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
509 PvaClientChannelArray
const &pvaClientChannelArray,
512 PvaClientMultiChannelPtr pvaClientMultiChannel;
513 PvaClientChannelArray pvaClientChannelArray;
517 PvaClientNTMultiDataPtr pvaClientNTMultiData;
518 std::vector<PvaClientMonitorPtr> pvaClientMonitor;
526 public std::tr1::enable_shared_from_this<PvaClientNTMultiData>
540 static PvaClientNTMultiDataPtr create(
542 PvaClientMultiChannelPtr
const &pvaClientMultiChannel,
543 PvaClientChannelArray
const &pvaClientChannelArray,
556 void startDeltaTime();
562 void endDeltaTime(
bool valueOnly =
true);
578 return shared_from_this();
583 PvaClientMultiChannelPtr
const &pvaNTMultiChannel,
584 PvaClientChannelArray
const &pvaClientChannelArray,
589 PvaClientMultiChannelPtr pvaClientMultiChannel;
590 PvaClientChannelArray pvaClientChannelArray;
594 std::vector<epics::pvData::PVStructurePtr> topPVStructure;
std::tr1::shared_ptr< PvaClient > PvaClientPtr
PvaClientMultiMonitorDoublePtr getPtrSelf()
Monitor the shared pointer to self.
epics::pvData::shared_vector< PvaClientChannelPtr > PvaClientChannelArray
PvaMultiChannel is a synchronous interface for accessing multiple channels.
Methods for manipulating alarm.
std::tr1::shared_ptr< detail::SharedPut > put
TODO only here because of the Lockable.
std::tr1::shared_ptr< const Structure > StructureConstPtr
Provides channelGet to multiple channels where each channel has a numeric scalar value field...
PvaClientNTMultiDataPtr getPtrSelf()
Get the shared pointer to self.
Provides channelPut to multiple channels where each channel has a numeric scalar value field...
std::tr1::shared_ptr< PvaClientNTMultiGet > PvaClientNTMultiGetPtr
Provides channelPut to multiple channels where the value field of each channel is presented as a unio...
Provides channel monitor to multiple channels where the value field of each channel is presented as a...
PVStructure::shared_pointer createRequest(std::string const &request)
Provides channelGet to multiple channels where the value field of each channel is presented as a unio...
std::tr1::shared_ptr< PvaClientNTMultiData > PvaClientNTMultiDataPtr
std::tr1::shared_ptr< const Union > UnionConstPtr
#define POINTER_DEFINITIONS(clazz)
PvaClientMultiPutDoublePtr getPtrSelf()
Get the shared pointer to self.
std::tr1::shared_ptr< PvaClientNTMultiPut > PvaClientNTMultiPutPtr
Methods for accessing a timeStamp structure.
std::tr1::shared_ptr< PVStructure > PVStructurePtr
std::tr1::shared_ptr< PvaClientMultiMonitorDouble > PvaClientMultiMonitorDoublePtr
PvaClientNTMultiMonitorPtr getPtrSelf()
std::tr1::shared_ptr< PvaClientNTMultiMonitor > PvaClientNTMultiMonitorPtr
std::tr1::shared_ptr< PvaClientMultiGetDouble > PvaClientMultiGetDoublePtr
Provides a monitor to multiple channels where each channel has a numeric scalar value field...
std::tr1::shared_ptr< PvaClientMultiChannel > PvaClientMultiChannelPtr
std::tr1::shared_ptr< NTMultiChannel > NTMultiChannelPtr
PvaClientNTMultiPutPtr getPtrSelf()
Get the shared pointer to self.
PvaClientNTMultiGetPtr getPtrSelf()
Get the shared pointer to self.
PvaClientMultiGetDoublePtr getPtrSelf()
Get the shared pointer to self.
Provides NTMultiChannel data for both PvaClientNTMultiGet and PvaClientNTMultiMonitor.
Methods for manipulating timeStamp.
std::tr1::shared_ptr< PvaClientMultiPutDouble > PvaClientMultiPutDoublePtr