This is Unofficial EPICS BASE Doxygen Site
TestChannelMonitorRequester Struct Reference

#include "utilities.h"

+ Inheritance diagram for TestChannelMonitorRequester:
+ Collaboration diagram for TestChannelMonitorRequester:

Public Member Functions

 POINTER_DEFINITIONS (TestChannelMonitorRequester)
 
 TestChannelMonitorRequester ()
 
virtual ~TestChannelMonitorRequester ()
 
virtual void monitorConnect (epics::pvData::Status const &status, epics::pvData::MonitorPtr const &monitor, epics::pvData::StructureConstPtr const &structure)
 
virtual void monitorEvent (epics::pvData::MonitorPtr const &monitor)
 
virtual void unlisten (epics::pvData::MonitorPtr const &monitor)
 
bool waitForConnect ()
 
bool waitForEvent ()
 
- Public Member Functions inherited from epics::pvAccess::MonitorRequester
 POINTER_DEFINITIONS (MonitorRequester)
 
virtual ~MonitorRequester ()
 
virtual void monitorConnect (epics::pvData::Status const &status, MonitorPtr const &monitor, epics::pvData::StructureConstPtr const &structure)=0
 
virtual void monitorEvent (MonitorPtr const &monitor)=0
 
virtual void unlisten (MonitorPtr const &monitor)=0
 
- Public Member Functions inherited from epics::pvAccess::ChannelBaseRequester
 POINTER_DEFINITIONS (ChannelBaseRequester)
 
 ChannelBaseRequester ()
 
virtual ~ChannelBaseRequester ()
 
virtual void channelDisconnect (bool destroy)
 

Public Attributes

epicsMutex lock
 
epicsEvent wait
 
bool connected
 
bool unlistend
 
size_t eventCnt
 
epics::pvData::Status connectStatus
 
epics::pvData::MonitorPtr mon
 
epics::pvData::StructureConstPtr dtype
 

Additional Inherited Members

- Public Types inherited from epics::pvAccess::MonitorRequester
typedef Monitor operation_type
 
- Static Public Attributes inherited from epics::pvAccess::ChannelBaseRequester
static size_t num_instances
 

Detailed Description

Definition at line 157 of file utilities.h.

Constructor & Destructor Documentation

TestChannelMonitorRequester::TestChannelMonitorRequester ( )

Definition at line 156 of file utilities.cpp.

157  :connected(false)
158  ,unlistend(false)
159  ,eventCnt(0)
160 {
161  epicsAtomicIncrSizeT(&countTestChannelMonitorRequester);
162 }
EPICS_ATOMIC_INLINE size_t epicsAtomicIncrSizeT(size_t *pTarget)
TestChannelMonitorRequester::~TestChannelMonitorRequester ( )
virtual

Definition at line 164 of file utilities.cpp.

165 {
166  epicsAtomicDecrSizeT(&countTestChannelMonitorRequester);
167 }
EPICS_ATOMIC_INLINE size_t epicsAtomicDecrSizeT(size_t *pTarget)

Member Function Documentation

void TestChannelMonitorRequester::monitorConnect ( epics::pvData::Status const &  status,
epics::pvData::MonitorPtr const &  monitor,
epics::pvData::StructureConstPtr const &  structure 
)
virtual

Definition at line 169 of file utilities.cpp.

172 {
173  testDiag("monitorConnect %p %d", monitor.get(), (int)status.isSuccess());
174  Guard G(lock);
176  dtype = structure;
177  connected = true;
178  wait.trigger();
179 }
pvd::Status status
int testDiag(const char *fmt,...)
epics::pvData::StructureConstPtr dtype
Definition: utilities.h:169
epics::pvData::Status connectStatus
Definition: utilities.h:167
bool isSuccess() const
Definition: status.h:103
void TestChannelMonitorRequester::monitorEvent ( epics::pvData::MonitorPtr const &  monitor)
virtual

Definition at line 181 of file utilities.cpp.

182 {
183  testDiag("monitorEvent %p", monitor.get());
184  mon = monitor;
185  eventCnt++;
186  wait.trigger();
187 }
int testDiag(const char *fmt,...)
epics::pvData::MonitorPtr mon
Definition: utilities.h:168
TestChannelMonitorRequester::POINTER_DEFINITIONS ( TestChannelMonitorRequester  )
void TestChannelMonitorRequester::unlisten ( epics::pvData::MonitorPtr const &  monitor)
virtual

Definition at line 189 of file utilities.cpp.

190 {
191  testDiag("unlisten %p", monitor.get());
192  Guard G(lock);
193  unlistend = true;
194  wait.trigger();
195 }
int testDiag(const char *fmt,...)
bool TestChannelMonitorRequester::waitForConnect ( )

Definition at line 197 of file utilities.cpp.

198 {
199  Guard G(lock);
200  while(!connected) {
201  UnGuard U(G);
202  wait.wait();
203  }
204  return true;
205 }
bool TestChannelMonitorRequester::waitForEvent ( )

Definition at line 207 of file utilities.cpp.

208 {
209  Guard G(lock);
210  size_t icnt = eventCnt;
211  while(!unlistend && eventCnt==icnt) {
212  UnGuard U(G);
213  wait.wait();
214  }
215  return !unlistend;
216 }

Member Data Documentation

bool TestChannelMonitorRequester::connected

Definition at line 164 of file utilities.h.

epics::pvData::Status TestChannelMonitorRequester::connectStatus

Definition at line 167 of file utilities.h.

epics::pvData::StructureConstPtr TestChannelMonitorRequester::dtype

Definition at line 169 of file utilities.h.

size_t TestChannelMonitorRequester::eventCnt

Definition at line 166 of file utilities.h.

epicsMutex TestChannelMonitorRequester::lock

Definition at line 162 of file utilities.h.

epics::pvData::MonitorPtr TestChannelMonitorRequester::mon

Definition at line 168 of file utilities.h.

bool TestChannelMonitorRequester::unlistend

Definition at line 165 of file utilities.h.

epicsEvent TestChannelMonitorRequester::wait

Definition at line 163 of file utilities.h.


The documentation for this struct was generated from the following files: