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

#include "baseChannelRequester.h"

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

Public Member Functions

 BaseChannelRequesterMessageTransportSender (const pvAccessID _ioid, const std::string message, const epics::pvData::MessageType messageType)
 
virtual void send (epics::pvData::ByteBuffer *buffer, TransportSendControl *control) OVERRIDE FINAL
 
- Public Member Functions inherited from epics::pvAccess::TransportSender
 POINTER_DEFINITIONS (TransportSender)
 
 TransportSender ()
 
virtual ~TransportSender ()
 
- 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 ()
 

Additional Inherited Members

- Public Attributes inherited from epics::pvAccess::TransportSender
size_t bytesTX
 
size_t bytesRX
 

Detailed Description

Definition at line 64 of file baseChannelRequester.h.

Constructor & Destructor Documentation

epics::pvAccess::BaseChannelRequesterMessageTransportSender::BaseChannelRequesterMessageTransportSender ( const pvAccessID  _ioid,
const std::string  message,
const epics::pvData::MessageType  messageType 
)

Definition at line 100 of file baseChannelRequester.cpp.

100  :
101  _ioid(ioid),
102  _message(message),
103  _messageType(messageType)
104 {
105 }

Member Function Documentation

void epics::pvAccess::BaseChannelRequesterMessageTransportSender::send ( epics::pvData::ByteBuffer buffer,
TransportSendControl control 
)
virtual

Called by transport. By this call transport gives callee ownership over the buffer. Calls on TransportSendControl instance must be made from calling thread. Moreover, ownership is valid only for the time of call of this method. NOTE: these limitations allow efficient implementation.

Implements epics::pvAccess::TransportSender.

Definition at line 107 of file baseChannelRequester.cpp.

108 {
109  control->startMessage((int8)CMD_MESSAGE, sizeof(int32)/sizeof(int8) + 1);
110  buffer->putInt(_ioid);
111  buffer->putByte((int8)_messageType);
112  epics::pvData::SerializeHelper::serializeString(_message, buffer, control);
113 }
int8_t int8
Definition: pvType.h:75
EPICS_ALWAYS_INLINE void putInt(int32 value)
Definition: byteBuffer.h:537
EPICS_ALWAYS_INLINE void putByte(int8 value)
Definition: byteBuffer.h:525
static void serializeString(const std::string &value, ByteBuffer *buffer, SerializableControl *flusher)
int32_t int32
Definition: pvType.h:83

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