This is Unofficial EPICS BASE Doxygen Site
epics::pvAccess::BaseChannelRequester Class Referenceabstract

#include "baseChannelRequester.h"

+ Inheritance diagram for epics::pvAccess::BaseChannelRequester:
+ Collaboration diagram for epics::pvAccess::BaseChannelRequester:

Public Member Functions

 POINTER_DEFINITIONS (BaseChannelRequester)
 
 BaseChannelRequester (ServerContextImpl::shared_pointer const &context, std::tr1::shared_ptr< ServerChannel > const &channel, const pvAccessID ioid, Transport::shared_pointer const &transport)
 
virtual ~BaseChannelRequester ()
 
bool startRequest (epics::pvData::int32 qos)
 
void stopRequest ()
 
epics::pvData::int32 getPendingRequest ()
 
virtual std::tr1::shared_ptr< ChannelRequestgetOperation ()=0
 The Operation associated with this Requester, except for GetField and Monitor (which are special snowflakes...) More...
 
virtual std::string getRequesterName () OVERRIDE FINAL
 
virtual void message (std::string const &message, epics::pvData::MessageType messageType) OVERRIDE FINAL
 
virtual void stats (Stats &s) const OVERRIDE FINAL
 Query current counter values. More...
 
- Public Member Functions inherited from epics::pvAccess::TransportSender
 POINTER_DEFINITIONS (TransportSender)
 
 TransportSender ()
 
virtual ~TransportSender ()
 
virtual void send (epics::pvData::ByteBuffer *buffer, TransportSendControl *control)=0
 
- Public Member Functions inherited from epics::pvAccess::Lockable
 POINTER_DEFINITIONS (Lockable)
 
virtual ~Lockable ()
 
virtual void lock ()
 
virtual void unlock ()
 
- Public Member Functions inherited from epics::pvAccess::fair_queue< T >::entry
 entry ()
 
 ~entry ()
 
- Public Member Functions inherited from epics::pvAccess::NetStats
virtual ~NetStats ()
 
- Public Member Functions inherited from epics::pvAccess::Destroyable
 POINTER_DEFINITIONS (Destroyable)
 
virtual void destroy ()=0
 

Static Public Member Functions

static void message (Transport::shared_pointer const &transport, const pvAccessID ioid, const std::string message, const epics::pvData::MessageType messageType)
 
static void sendFailureMessage (const epics::pvData::int8 command, Transport::shared_pointer const &transport, const pvAccessID ioid, const epics::pvData::int8 qos, const epics::pvData::Status status)
 

Static Public Attributes

static const epics::pvData::Status okStatus = Status()
 
static const epics::pvData::Status badCIDStatus
 
static const epics::pvData::Status badIOIDStatus
 
static const epics::pvData::Status noReadACLStatus
 
static const epics::pvData::Status noWriteACLStatus
 
static const epics::pvData::Status noProcessACLStatus
 
static const epics::pvData::Status otherRequestPendingStatus
 
static const epics::pvData::Status notAChannelRequestStatus
 

Protected Attributes

const pvAccessID _ioid
 
const Transport::shared_pointer _transport
 
const std::tr1::shared_ptr< ServerChannel_channel
 
epics::pvData::Mutex _mutex
 

Additional Inherited Members

- Public Attributes inherited from epics::pvAccess::TransportSender
size_t bytesTX
 
size_t bytesRX
 
- Protected Member Functions inherited from epics::pvAccess::Destroyable
virtual ~Destroyable ()
 

Detailed Description

Definition at line 21 of file baseChannelRequester.h.

Constructor & Destructor Documentation

epics::pvAccess::BaseChannelRequester::BaseChannelRequester ( ServerContextImpl::shared_pointer const &  context,
std::tr1::shared_ptr< ServerChannel > const &  channel,
const pvAccessID  ioid,
Transport::shared_pointer const &  transport 
)

Definition at line 29 of file baseChannelRequester.cpp.

33  :
34  _ioid(ioid),
35  _transport(transport),
36  _channel(channel),
37  _context(context),
38  _pendingRequest(BaseChannelRequester::NULL_REQUEST)
39 {
40 
41 }
const std::tr1::shared_ptr< ServerChannel > _channel
const Transport::shared_pointer _transport
virtual epics::pvAccess::BaseChannelRequester::~BaseChannelRequester ( )
inlinevirtual

Definition at line 31 of file baseChannelRequester.h.

31 {};

Member Function Documentation

int32 epics::pvAccess::BaseChannelRequester::getPendingRequest ( )

Definition at line 60 of file baseChannelRequester.cpp.

61 {
62  Lock guard(_mutex);
63  return _pendingRequest;
64 }
A lock for multithreading.
Definition: lock.h:36
string epics::pvAccess::BaseChannelRequester::getRequesterName ( )
virtual

Definition at line 66 of file baseChannelRequester.cpp.

67 {
68  std::stringstream name;
69  name << typeid(*_transport).name() << "/" << _ioid;
70  return name.str();
71 }
void epics::pvAccess::BaseChannelRequester::message ( std::string const &  message,
epics::pvData::MessageType  messageType 
)
virtual

Definition at line 73 of file baseChannelRequester.cpp.

74 {
76 }
const Transport::shared_pointer _transport
virtual void message(std::string const &message, epics::pvData::MessageType messageType) OVERRIDE FINAL
static void epics::pvAccess::BaseChannelRequester::message ( Transport::shared_pointer const &  transport,
const pvAccessID  ioid,
const std::string  message,
const epics::pvData::MessageType  messageType 
)
static
epics::pvAccess::BaseChannelRequester::POINTER_DEFINITIONS ( BaseChannelRequester  )
void epics::pvAccess::BaseChannelRequester::sendFailureMessage ( const epics::pvData::int8  command,
Transport::shared_pointer const &  transport,
const pvAccessID  ioid,
const epics::pvData::int8  qos,
const epics::pvData::Status  status 
)
static

Definition at line 84 of file baseChannelRequester.cpp.

85 {
86  TransportSender::shared_pointer sender(new BaseChannelRequesterFailureMessageTransportSender(command, transport, ioid, qos, status));
87  transport->enqueueSendRequest(sender);
88 }
bool epics::pvAccess::BaseChannelRequester::startRequest ( epics::pvData::int32  qos)

Definition at line 43 of file baseChannelRequester.cpp.

44 {
45  Lock guard(_mutex);
46  if (_pendingRequest != NULL_REQUEST)
47  {
48  return false;
49  }
50  _pendingRequest = qos;
51  return true;
52 }
A lock for multithreading.
Definition: lock.h:36
void epics::pvAccess::BaseChannelRequester::stats ( Stats s) const
virtual

Query current counter values.

Implements epics::pvAccess::NetStats.

Definition at line 90 of file baseChannelRequester.cpp.

91 {
92  s.populated = true;
93  s.operationBytes.tx = atomic::get(bytesTX);
94  s.operationBytes.rx = atomic::get(bytesRX);
95  s.transportBytes.tx = atomic::get(_transport->_totalBytesSent);
96  s.transportBytes.rx = atomic::get(_transport->_totalBytesRecv);
97  s.transportPeer = _transport->getRemoteName();
98 }
const Transport::shared_pointer _transport
Definition: caget.c:48
void epics::pvAccess::BaseChannelRequester::stopRequest ( )

Definition at line 54 of file baseChannelRequester.cpp.

55 {
56  Lock guard(_mutex);
57  _pendingRequest = NULL_REQUEST;
58 }
A lock for multithreading.
Definition: lock.h:36

Member Data Documentation

const std::tr1::shared_ptr<ServerChannel> epics::pvAccess::BaseChannelRequester::_channel
protected

Definition at line 56 of file baseChannelRequester.h.

const pvAccessID epics::pvAccess::BaseChannelRequester::_ioid
protected

Definition at line 54 of file baseChannelRequester.h.

epics::pvData::Mutex epics::pvAccess::BaseChannelRequester::_mutex
protected

Definition at line 57 of file baseChannelRequester.h.

const Transport::shared_pointer epics::pvAccess::BaseChannelRequester::_transport
protected

Definition at line 55 of file baseChannelRequester.h.

const Status epics::pvAccess::BaseChannelRequester::badCIDStatus
static

Definition at line 46 of file baseChannelRequester.h.

const Status epics::pvAccess::BaseChannelRequester::badIOIDStatus
static

Definition at line 47 of file baseChannelRequester.h.

const Status epics::pvAccess::BaseChannelRequester::noProcessACLStatus
static

Definition at line 50 of file baseChannelRequester.h.

const Status epics::pvAccess::BaseChannelRequester::noReadACLStatus
static

Definition at line 48 of file baseChannelRequester.h.

const Status epics::pvAccess::BaseChannelRequester::notAChannelRequestStatus
static

Definition at line 52 of file baseChannelRequester.h.

const Status epics::pvAccess::BaseChannelRequester::noWriteACLStatus
static

Definition at line 49 of file baseChannelRequester.h.

const Status epics::pvAccess::BaseChannelRequester::okStatus = Status()
static

Definition at line 45 of file baseChannelRequester.h.

const Status epics::pvAccess::BaseChannelRequester::otherRequestPendingStatus
static

Definition at line 51 of file baseChannelRequester.h.


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