This is Unofficial EPICS BASE Doxygen Site
TestChannelRequester Struct Reference

#include "utilities.h"

+ Inheritance diagram for TestChannelRequester:
+ Collaboration diagram for TestChannelRequester:

Public Member Functions

 POINTER_DEFINITIONS (TestChannelRequester)
 
 TestChannelRequester ()
 
virtual ~TestChannelRequester ()
 
virtual void channelCreated (const epics::pvData::Status &status, epics::pvAccess::Channel::shared_pointer const &channel)
 
virtual void channelStateChange (epics::pvAccess::Channel::shared_pointer const &channel, epics::pvAccess::Channel::ConnectionState connectionState)
 
bool waitForConnect ()
 
- Public Member Functions inherited from epics::pvAccess::ChannelRequester
 POINTER_DEFINITIONS (ChannelRequester)
 
 ChannelRequester ()
 
virtual ~ChannelRequester ()
 
virtual void channelCreated (const epics::pvData::Status &status, Channel::shared_pointer const &channel)=0
 
virtual void channelStateChange (Channel::shared_pointer const &channel, Channel::ConnectionState connectionState)=0
 
virtual std::tr1::shared_ptr< const PeerInfogetPeerInfo ()
 Return information on connected peer if applicable. More...
 
- Public Member Functions inherited from epics::pvAccess::Requester
 POINTER_DEFINITIONS (Requester)
 
virtual ~Requester ()
 
virtual std::string getRequesterName ()=0
 
virtual void message (std::string const &message, MessageType messageType=errorMessage)
 

Public Attributes

epicsMutex lock
 
epicsEvent wait
 
epics::pvAccess::Channel::shared_pointer chan
 
epics::pvData::Status status
 
epics::pvAccess::Channel::ConnectionState laststate
 

Additional Inherited Members

- Public Types inherited from epics::pvAccess::ChannelRequester
typedef Channel operation_type
 
- Static Public Attributes inherited from epics::pvAccess::ChannelRequester
static size_t num_instances
 

Detailed Description

Definition at line 59 of file utilities.h.

Constructor & Destructor Documentation

TestChannelRequester::TestChannelRequester ( )

Definition at line 23 of file utilities.cpp.

25 {
26  epicsAtomicIncrSizeT(&countTestChannelRequester);
27 }
epics::pvAccess::Channel::ConnectionState laststate
Definition: utilities.h:68
EPICS_ATOMIC_INLINE size_t epicsAtomicIncrSizeT(size_t *pTarget)
TestChannelRequester::~TestChannelRequester ( )
virtual

Definition at line 30 of file utilities.cpp.

31 {
32  epicsAtomicDecrSizeT(&countTestChannelRequester);
33 }
EPICS_ATOMIC_INLINE size_t epicsAtomicDecrSizeT(size_t *pTarget)

Member Function Documentation

void TestChannelRequester::channelCreated ( const epics::pvData::Status status,
epics::pvAccess::Channel::shared_pointer const &  channel 
)
virtual

Definition at line 35 of file utilities.cpp.

36 {
37  testDiag("channelCreated %s", channel ? channel->getChannelName().c_str() : "<fails>");
38  Guard G(lock);
40  this->status = status;
41  chan = channel;
42  wait.trigger();
43 }
epics::pvData::Status status
Definition: utilities.h:67
epics::pvAccess::Channel::shared_pointer chan
Definition: utilities.h:66
int testDiag(const char *fmt,...)
epicsEvent wait
Definition: utilities.h:65
epicsMutex lock
Definition: utilities.h:64
epics::pvAccess::Channel::ConnectionState laststate
Definition: utilities.h:68
void TestChannelRequester::channelStateChange ( epics::pvAccess::Channel::shared_pointer const &  channel,
epics::pvAccess::Channel::ConnectionState  connectionState 
)
virtual

Definition at line 45 of file utilities.cpp.

47 {
48  testDiag("channelStateChange %s %d", channel->getChannelName().c_str(), (int)connectionState);
49  Guard G(lock);
50  laststate = connectionState;
51  wait.trigger();
52 }
int testDiag(const char *fmt,...)
epicsEvent wait
Definition: utilities.h:65
epicsMutex lock
Definition: utilities.h:64
epics::pvAccess::Channel::ConnectionState laststate
Definition: utilities.h:68
TestChannelRequester::POINTER_DEFINITIONS ( TestChannelRequester  )
bool TestChannelRequester::waitForConnect ( )

Definition at line 54 of file utilities.cpp.

55 {
56  Guard G(lock);
57  assert(chan);
58  while(true) {
59  pva::Channel::ConnectionState cur = chan->getConnectionState();
60  switch(cur) {
62  break;
64  return true;
67  return false;
68  }
69  UnGuard U(G);
70  wait.wait();
71  }
72 
73 }
#define assert(exp)
Declare that a condition should be true.
Definition: epicsAssert.h:70
epics::pvAccess::Channel::shared_pointer chan
Definition: utilities.h:66
epicsEvent wait
Definition: utilities.h:65
epicsMutex lock
Definition: utilities.h:64

Member Data Documentation

epics::pvAccess::Channel::shared_pointer TestChannelRequester::chan

Definition at line 66 of file utilities.h.

epics::pvAccess::Channel::ConnectionState TestChannelRequester::laststate

Definition at line 68 of file utilities.h.

epicsMutex TestChannelRequester::lock

Definition at line 64 of file utilities.h.

epics::pvData::Status TestChannelRequester::status

Definition at line 67 of file utilities.h.

epicsEvent TestChannelRequester::wait

Definition at line 65 of file utilities.h.


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