![]() |
This is Unofficial EPICS BASE Doxygen Site
|
#include "codec.h"
Public Member Functions | |
POINTER_DEFINITIONS (BlockingTCPTransportCodec) | |
BlockingTCPTransportCodec (bool serverFlag, Context::shared_pointer const &context, SOCKET channel, ResponseHandler::shared_pointer const &responseHandler, size_t sendBufferSize, size_t receiveBufferSize, epics::pvData::int16 priority) | |
virtual | ~BlockingTCPTransportCodec () |
virtual void | readPollOne () OVERRIDE FINAL |
virtual void | writePollOne () OVERRIDE FINAL |
virtual void | scheduleSend () OVERRIDE FINAL |
virtual void | sendCompleted () OVERRIDE FINAL |
virtual void | close () OVERRIDE FINAL |
virtual void | waitJoin () OVERRIDE FINAL |
Call after close() to wait for any worker threads to exit. More... | |
virtual bool | terminated () OVERRIDE FINAL |
virtual bool | isOpen () OVERRIDE FINAL |
virtual void | start () |
virtual int | read (epics::pvData::ByteBuffer *dst) OVERRIDE FINAL |
virtual int | write (epics::pvData::ByteBuffer *src) OVERRIDE FINAL |
virtual const osiSockAddr * | getLastReadBufferSocketAddress () OVERRIDE FINAL |
virtual void | invalidDataStreamHandler () OVERRIDE FINAL |
virtual std::string | getType () const OVERRIDE FINAL |
virtual void | processControlMessage () OVERRIDE FINAL |
virtual void | processApplicationMessage () OVERRIDE FINAL |
virtual const osiSockAddr & | getRemoteAddress () const OVERRIDE FINAL |
virtual const std::string & | getRemoteName () const OVERRIDE FINAL |
virtual std::size_t | getReceiveBufferSize () const OVERRIDE FINAL |
virtual epics::pvData::int16 | getPriority () const OVERRIDE FINAL |
virtual void | setRemoteTransportReceiveBufferSize (std::size_t remoteTransportReceiveBufferSize) OVERRIDE FINAL |
virtual void | setRemoteTransportSocketReceiveBufferSize (std::size_t socketReceiveBufferSize) OVERRIDE FINAL |
virtual std::tr1::shared_ptr< const epics::pvData::Field > | cachedDeserialize (epics::pvData::ByteBuffer *buffer) OVERRIDE FINAL |
virtual void | cachedSerialize (const std::tr1::shared_ptr< const epics::pvData::Field > &field, epics::pvData::ByteBuffer *buffer) OVERRIDE FINAL |
virtual void | flushSendQueue () OVERRIDE FINAL |
virtual bool | isClosed () OVERRIDE FINAL |
void | activate () |
virtual bool | verify (epics::pvData::int32 timeoutMs) OVERRIDE |
virtual void | verified (epics::pvData::Status const &status) OVERRIDE |
virtual void | authNZMessage (epics::pvData::PVStructure::shared_pointer const &data) OVERRIDE FINAL |
virtual void | sendSecurityPluginMessage (epics::pvData::PVStructure::const_shared_pointer const &data) OVERRIDE FINAL |
![]() | |
AbstractCodec (bool serverFlag, size_t sendBufferSize, size_t receiveBufferSize, int32_t socketSendBufferSize, bool blockingProcessQueue) | |
virtual | ~AbstractCodec () |
virtual void | alignBuffer (std::size_t alignment) OVERRIDE FINAL |
virtual void | ensureData (std::size_t size) OVERRIDE FINAL |
virtual void | alignData (std::size_t alignment) OVERRIDE FINAL |
virtual void | startMessage (epics::pvData::int8 command, std::size_t ensureCapacity=0, epics::pvData::int32 payloadSize=0) OVERRIDE FINAL |
void | putControlMessage (epics::pvData::int8 command, epics::pvData::int32 data) |
virtual void | endMessage () OVERRIDE FINAL |
virtual void | ensureBuffer (std::size_t size) OVERRIDE FINAL |
virtual void | flushSerializeBuffer () OVERRIDE FINAL |
virtual void | flush (bool lastMessageCompleted) OVERRIDE FINAL |
void | processWrite () |
void | processRead () |
void | processSendQueue () |
virtual void | enqueueSendRequest (TransportSender::shared_pointer const &sender) OVERRIDE FINAL |
void | enqueueSendRequest (TransportSender::shared_pointer const &sender, std::size_t requiredBufferSize) |
void | setSenderThread () |
virtual void | setRecipient (osiSockAddr const &sendTo) OVERRIDE FINAL |
virtual void | setByteOrder (int byteOrder) OVERRIDE FINAL |
virtual bool | directSerialize (epics::pvData::ByteBuffer *, const char *, std::size_t, std::size_t) OVERRIDE |
virtual bool | directDeserialize (epics::pvData::ByteBuffer *, char *, std::size_t, std::size_t) OVERRIDE |
bool | sendQueueEmpty () const |
epics::pvData::int8 | getRevision () const |
![]() | |
POINTER_DEFINITIONS (TransportSendControl) | |
virtual | ~TransportSendControl () |
![]() | |
virtual | ~SerializableControl () |
virtual void | cachedSerialize (std::tr1::shared_ptr< const Field > const &field, ByteBuffer *buffer)=0 |
![]() | |
POINTER_DEFINITIONS (Transport) | |
Transport () | |
virtual | ~Transport () |
virtual bool | acquire (std::tr1::shared_ptr< ClientChannelImpl > const &client)=0 |
virtual void | release (pvAccessID clientId)=0 |
![]() | |
virtual | ~DeserializableControl () |
![]() | |
POINTER_DEFINITIONS (AuthenticationPluginControl) | |
virtual | ~AuthenticationPluginControl () |
virtual void | authenticationCompleted (const epics::pvData::Status &status, const std::tr1::shared_ptr< PeerInfo > &peer)=0 |
Public Attributes | |
PeerInfo::const_shared_pointer | _peerInfo |
![]() | |
epics::pvData::Mutex | _mutex |
![]() | |
size_t | _totalBytesSent |
size_t | _totalBytesRecv |
Static Public Attributes | |
static size_t | num_instances |
![]() | |
static const std::size_t | MAX_MESSAGE_PROCESS = 100 |
static const std::size_t | MAX_MESSAGE_SEND = 100 |
static const std::size_t | MAX_ENSURE_SIZE = 1024 |
static const std::size_t | MAX_ENSURE_DATA_SIZE = MAX_ENSURE_SIZE/2 |
static const std::size_t | MAX_ENSURE_BUFFER_SIZE = MAX_ENSURE_SIZE |
static const std::size_t | MAX_ENSURE_DATA_BUFFER_SIZE = 1024 |
![]() | |
static size_t | num_instances |
Protected Member Functions | |
virtual void | setRxTimeout (bool ena) OVERRIDE FINAL |
virtual void | sendBufferFull (int tries) OVERRIDE FINAL |
virtual void | internalClose () |
![]() | |
void | send (epics::pvData::ByteBuffer *buffer) |
void | flushSendBuffer () |
Protected Attributes | |
osiSockAddr | _socketAddress |
std::string | _socketName |
Context::shared_pointer | _context |
IntrospectionRegistry | _incomingIR |
IntrospectionRegistry | _outgoingIR |
std::string | _authSessionName |
AuthenticationSession::shared_pointer | _authSession |
bool | _verified |
epics::pvData::Event | _verifiedEvent |
![]() | |
ReadMode | _readMode |
int8_t | _version |
int8_t | _flags |
int8_t | _command |
int32_t | _payloadSize |
epics::pvData::int32 | _remoteTransportSocketReceiveBufferSize |
osiSockAddr | _sendTo |
epicsThreadId | _senderThread |
WriteMode | _writeMode |
bool | _writeOpReady |
epics::pvData::ByteBuffer | _socketBuffer |
epics::pvData::ByteBuffer | _sendBuffer |
fair_queue< TransportSender > | _sendQueue |
const epics::pvData::int8 | _clientServerFlag |
Additional Inherited Members | |
![]() | |
static std::size_t | alignedValue (std::size_t value, std::size_t alignment) |
epics::pvAccess::detail::BlockingTCPTransportCodec::BlockingTCPTransportCodec | ( | bool | serverFlag, |
Context::shared_pointer const & | context, | ||
SOCKET | channel, | ||
ResponseHandler::shared_pointer const & | responseHandler, | ||
size_t | sendBufferSize, | ||
size_t | receiveBufferSize, | ||
epics::pvData::int16 | priority | ||
) |
Definition at line 1226 of file codec.cpp.
|
virtual |
Definition at line 1016 of file codec.cpp.
|
inline |
Definition at line 380 of file codec.h.
|
virtual |
Pass data to the active security plug-in session.
data | the data (any data), can be null . |
Implements epics::pvAccess::Transport.
Definition at line 1388 of file codec.cpp.
|
inlinevirtual |
deserialize via cache
buffer | buffer to be deserialized from |
Implements epics::pvData::DeserializableControl.
Definition at line 358 of file codec.h.
|
inlinevirtual |
Definition at line 364 of file codec.h.
|
virtual |
Close transport.
Implements epics::pvAccess::Transport.
Definition at line 1033 of file codec.cpp.
|
inlinevirtual |
Flush send queue (sent messages).
Implements epics::pvAccess::Transport.
|
inlinevirtual |
Implements epics::pvAccess::detail::AbstractCodec.
Definition at line 302 of file codec.h.
|
inlinevirtual |
|
inlinevirtual |
Get receive buffer size.
Implements epics::pvAccess::Transport.
Definition at line 335 of file codec.h.
|
inlinevirtual |
Implements epics::pvAccess::Transport.
Definition at line 326 of file codec.h.
|
inlinevirtual |
Implements epics::pvAccess::Transport.
Definition at line 330 of file codec.h.
|
inlinevirtual |
Get protocol type (tcp, udp, ssl, etc.).
Implements epics::pvAccess::Transport.
|
protectedvirtual |
Called from close(). after start of shutdown (isOpen()==false) but before worker thread shutdown.
Reimplemented in epics::pvAccess::detail::BlockingClientTCPTransportCodec, and epics::pvAccess::detail::BlockingServerTCPTransportCodec.
Definition at line 1056 of file codec.cpp.
|
virtual |
Implements epics::pvAccess::detail::AbstractCodec.
Definition at line 1274 of file codec.cpp.
|
inlinevirtual |
Check connection status.
true
if connected. Implements epics::pvAccess::Transport.
Definition at line 375 of file codec.h.
|
virtual |
epics::pvAccess::detail::BlockingTCPTransportCodec::POINTER_DEFINITIONS | ( | BlockingTCPTransportCodec | ) |
|
inlinevirtual |
Implements epics::pvAccess::detail::AbstractCodec.
Definition at line 320 of file codec.h.
|
inlinevirtual |
Implements epics::pvAccess::detail::AbstractCodec.
Definition at line 311 of file codec.h.
|
virtual |
Implements epics::pvAccess::detail::AbstractCodec.
Definition at line 1316 of file codec.cpp.
|
virtual |
Implements epics::pvAccess::detail::AbstractCodec.
|
inlinevirtual |
|
protectedvirtual |
Implements epics::pvAccess::detail::AbstractCodec.
Definition at line 1211 of file codec.cpp.
|
inlinevirtual |
|
virtual |
Send AUTHZ to peer with payload. caller gives up ownership of data, which must not be modified.
Implements epics::pvAccess::AuthenticationPluginControl.
Definition at line 1425 of file codec.cpp.
|
inlinevirtual |
Set remote transport receive buffer size.
receiveBufferSize | receive buffer size. |
Implements epics::pvAccess::Transport.
|
inlinevirtual |
Set remote transport socket receive buffer size.
socketReceiveBufferSize | remote socket receive buffer size. |
Implements epics::pvAccess::Transport.
Definition at line 351 of file codec.h.
|
protectedvirtual |
Reimplemented from epics::pvAccess::detail::AbstractCodec.
Definition at line 1189 of file codec.cpp.
|
virtual |
Reimplemented in epics::pvAccess::detail::BlockingClientTCPTransportCodec.
|
virtual |
Implements epics::pvAccess::detail::AbstractCodec.
Definition at line 1101 of file codec.cpp.
|
virtual |
Notify transport that it is has been verified.
status | vefification status; |
Implements epics::pvAccess::Transport.
Reimplemented in epics::pvAccess::detail::BlockingClientTCPTransportCodec, and epics::pvAccess::detail::BlockingServerTCPTransportCodec.
Definition at line 1373 of file codec.cpp.
|
virtual |
Waits (if needed) until transport is verified, i.e. verified() method is being called.
timeoutMs | timeout to wait for verification, infinite if 0. |
Implements epics::pvAccess::Transport.
Reimplemented in epics::pvAccess::detail::BlockingServerTCPTransportCodec.
Definition at line 1369 of file codec.cpp.
|
virtual |
Call after close() to wait for any worker threads to exit.
Reimplemented from epics::pvAccess::Transport.
Definition at line 1049 of file codec.cpp.
|
virtual |
Implements epics::pvAccess::detail::AbstractCodec.
Definition at line 1279 of file codec.cpp.
|
virtual |
Implements epics::pvAccess::detail::AbstractCodec.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
PeerInfo::const_shared_pointer epics::pvAccess::detail::BlockingTCPTransportCodec::_peerInfo |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |