This is Unofficial EPICS BASE Doxygen Site
epics::pvAccess::ResponseHandler Class Reference

#include "remote.h"

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

Public Member Functions

 POINTER_DEFINITIONS (ResponseHandler)
 
 ResponseHandler (Context *context, const std::string &description)
 
virtual ~ResponseHandler ()
 
virtual void handleResponse (osiSockAddr *responseFrom, Transport::shared_pointer const &transport, epics::pvData::int8 version, epics::pvData::int8 command, std::size_t payloadSize, epics::pvData::ByteBuffer *payloadBuffer)
 

Static Public Attributes

static size_t num_instances
 

Protected Attributes

std::string _description
 
epics::pvData::int32 _debugLevel
 

Detailed Description

Interface defining response handler.

Definition at line 311 of file remote.h.

Constructor & Destructor Documentation

epics::pvAccess::ResponseHandler::ResponseHandler ( Context context,
const std::string &  description 
)

Definition at line 23 of file abstractResponseHandler.cpp.

24  :_description(description)
25  ,_debugLevel(context->getConfiguration()->getPropertyAsInteger(PVACCESS_DEBUG, 0)) // actually $EPICS_PVA_DEBUG
26 {
27  REFTRACE_INCREMENT(num_instances);
28 }
epics::pvData::int32 _debugLevel
Definition: remote.h:344
epicsShareExtern const std::string PVACCESS_DEBUG
Definition: pvaConstants.h:88
epics::pvAccess::ResponseHandler::~ResponseHandler ( )
virtual

Definition at line 30 of file abstractResponseHandler.cpp.

31 {
32  REFTRACE_DECREMENT(num_instances);
33 }

Member Function Documentation

void epics::pvAccess::ResponseHandler::handleResponse ( osiSockAddr responseFrom,
Transport::shared_pointer const &  transport,
epics::pvData::int8  version,
epics::pvData::int8  command,
std::size_t  payloadSize,
epics::pvData::ByteBuffer payloadBuffer 
)
virtual

Handle response.

Parameters
[in]responseFromremote address of the responder, 0 if unknown.
[in]transportresponse source transport.
[in]versionmessage version.
[in]payloadSizesize of this message data available in the payloadBuffer.
[in]payloadBuffermessage payload data. Note that this might not be the only message in the buffer. Code must not manipulate buffer.

Reimplemented in epics::pvAccess::ServerResponseHandler, epics::pvAccess::ServerRPCHandler, epics::pvAccess::ServerGetFieldHandler, epics::pvAccess::ServerProcessHandler, epics::pvAccess::ServerCancelRequestHandler, epics::pvAccess::ServerDestroyRequestHandler, epics::pvAccess::ServerArrayHandler, epics::pvAccess::ServerMonitorHandler, epics::pvAccess::ServerPutGetHandler, epics::pvAccess::ServerPutHandler, epics::pvAccess::ServerGetHandler, epics::pvAccess::ServerDestroyChannelHandler, epics::pvAccess::ServerCreateChannelHandler, epics::pvAccess::ServerSearchHandler, epics::pvAccess::ServerEchoHandler, epics::pvAccess::ServerConnectionValidationHandler, and epics::pvAccess::ServerBadResponse.

Definition at line 35 of file abstractResponseHandler.cpp.

37  {
38  if(_debugLevel >= 3) { // TODO make a constant of sth (0 - off, 1 - debug, 2 - more/trace, 3 - messages)
39  char ipAddrStr[24];
40  ipAddrToDottedIP(&responseFrom->ia, ipAddrStr, sizeof(ipAddrStr));
41 
42  std::cerr<<"Message [0x"<<std::hex<<(int)command<<", v0x"<<std::hex
43  <<int(version)<<"] received from "<<ipAddrStr<<" on "<<transport->getRemoteName()
44  <<" : "<<_description<<"\n"
45  <<HexDump(*payloadBuffer, payloadSize).limit(0xffff);
46  }
47 }
epics::pvData::int32 _debugLevel
Definition: remote.h:344
struct sockaddr_in ia
Definition: osiSock.h:157
Definition: tool_lib.h:64
unsigned epicsStdCall ipAddrToDottedIP(const struct sockaddr_in *paddr, char *pBuf, unsigned bufSize)
Definition: osiSock.c:144
epics::pvAccess::ResponseHandler::POINTER_DEFINITIONS ( ResponseHandler  )

Member Data Documentation

epics::pvData::int32 epics::pvAccess::ResponseHandler::_debugLevel
protected

Debug flag.

Definition at line 344 of file remote.h.

std::string epics::pvAccess::ResponseHandler::_description
protected

Response hanlder description.

Definition at line 339 of file remote.h.

size_t epics::pvAccess::ResponseHandler::num_instances
static

Definition at line 315 of file remote.h.


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