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

#include "remote.h"

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

Public Member Functions

 POINTER_DEFINITIONS (Transport)
 
 Transport ()
 
virtual ~Transport ()
 
virtual bool acquire (std::tr1::shared_ptr< ClientChannelImpl > const &client)=0
 
virtual void release (pvAccessID clientId)=0
 
virtual std::string getType () const =0
 
virtual const osiSockAddrgetRemoteAddress () const =0
 
virtual const std::string & getRemoteName () const =0
 
virtual std::size_t getReceiveBufferSize () const =0
 
virtual epics::pvData::int16 getPriority () const =0
 
virtual void setRemoteTransportReceiveBufferSize (std::size_t receiveBufferSize)=0
 
virtual void setRemoteTransportSocketReceiveBufferSize (std::size_t socketReceiveBufferSize)=0
 
virtual void setByteOrder (int byteOrder)=0
 
virtual void enqueueSendRequest (TransportSender::shared_pointer const &sender)=0
 
virtual void flushSendQueue ()=0
 
virtual void verified (epics::pvData::Status const &status)=0
 
virtual bool verify (epics::pvData::int32 timeoutMs)=0
 
virtual void close ()=0
 
virtual void waitJoin ()
 Call after close() to wait for any worker threads to exit. More...
 
virtual bool isClosed ()=0
 
virtual void authNZMessage (epics::pvData::PVStructure::shared_pointer const &data)=0
 
- Public Member Functions inherited from epics::pvData::DeserializableControl
virtual ~DeserializableControl ()
 
virtual void ensureData (std::size_t size)=0
 
virtual void alignData (std::size_t alignment)=0
 
virtual bool directDeserialize (ByteBuffer *existingBuffer, char *deserializeTo, std::size_t elementCount, std::size_t elementSize)=0
 
virtual std::tr1::shared_ptr< const FieldcachedDeserialize (ByteBuffer *buffer)=0
 

Public Attributes

size_t _totalBytesSent
 
size_t _totalBytesRecv
 

Static Public Attributes

static size_t num_instances
 

Detailed Description

Interface defining transport (connection).

Definition at line 164 of file remote.h.

Constructor & Destructor Documentation

epics::pvAccess::Transport::Transport ( )

Definition at line 63 of file codec.cpp.

64  :_totalBytesSent(0u)
65  ,_totalBytesRecv(0u)
66 {
67  REFTRACE_INCREMENT(num_instances);
68 }
static size_t num_instances
Definition: remote.h:168
epics::pvAccess::Transport::~Transport ( )
virtual

Definition at line 70 of file codec.cpp.

71 {
72  REFTRACE_DECREMENT(num_instances);
73 }
static size_t num_instances
Definition: remote.h:168

Member Function Documentation

virtual bool epics::pvAccess::Transport::acquire ( std::tr1::shared_ptr< ClientChannelImpl > const &  client)
pure virtual

Acquires transport.

Parameters
clientclient (channel) acquiring the transport
Returns
true if transport was granted, false otherwise.

Implemented in epics::pvAccess::detail::BlockingClientTCPTransportCodec, epics::pvAccess::detail::BlockingServerTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual void epics::pvAccess::Transport::authNZMessage ( epics::pvData::PVStructure::shared_pointer const &  data)
pure virtual

Pass data to the active security plug-in session.

Parameters
datathe data (any data), can be null.

Implemented in epics::pvAccess::detail::BlockingTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual void epics::pvAccess::Transport::close ( )
pure virtual
virtual void epics::pvAccess::Transport::enqueueSendRequest ( TransportSender::shared_pointer const &  sender)
pure virtual

Enqueue send request.

Parameters
sender

Implemented in epics::pvAccess::detail::AbstractCodec, and epics::pvAccess::BlockingUDPTransport.

virtual void epics::pvAccess::Transport::flushSendQueue ( )
pure virtual

Flush send queue (sent messages).

Implemented in epics::pvAccess::detail::BlockingTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual epics::pvData::int16 epics::pvAccess::Transport::getPriority ( ) const
pure virtual
virtual std::size_t epics::pvAccess::Transport::getReceiveBufferSize ( ) const
pure virtual

Get receive buffer size.

Returns
receive buffer size.

Implemented in epics::pvAccess::detail::BlockingTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual const osiSockAddr& epics::pvAccess::Transport::getRemoteAddress ( ) const
pure virtual
virtual const std::string& epics::pvAccess::Transport::getRemoteName ( ) const
pure virtual
virtual std::string epics::pvAccess::Transport::getType ( ) const
pure virtual

Get protocol type (tcp, udp, ssl, etc.).

Returns
protocol type.

Implemented in epics::pvAccess::detail::BlockingTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual bool epics::pvAccess::Transport::isClosed ( )
pure virtual

Check connection status.

Returns
true if connected.

Implemented in epics::pvAccess::detail::BlockingTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

epics::pvAccess::Transport::POINTER_DEFINITIONS ( Transport  )
virtual void epics::pvAccess::Transport::release ( pvAccessID  clientId)
pure virtual

Releases transport.

Parameters
clientclient (channel) releasing the transport

Implemented in epics::pvAccess::detail::BlockingClientTCPTransportCodec, epics::pvAccess::detail::BlockingServerTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual void epics::pvAccess::Transport::setByteOrder ( int  byteOrder)
pure virtual

Set byte order.

Parameters
byteOrderbyte order to set.

Implemented in epics::pvAccess::detail::AbstractCodec, and epics::pvAccess::BlockingUDPTransport.

virtual void epics::pvAccess::Transport::setRemoteTransportReceiveBufferSize ( std::size_t  receiveBufferSize)
pure virtual

Set remote transport receive buffer size.

Parameters
receiveBufferSizereceive buffer size.

Implemented in epics::pvAccess::detail::BlockingTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual void epics::pvAccess::Transport::setRemoteTransportSocketReceiveBufferSize ( std::size_t  socketReceiveBufferSize)
pure virtual

Set remote transport socket receive buffer size.

Parameters
socketReceiveBufferSizeremote socket receive buffer size.

Implemented in epics::pvAccess::detail::BlockingTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual void epics::pvAccess::Transport::verified ( epics::pvData::Status const &  status)
pure virtual
virtual bool epics::pvAccess::Transport::verify ( epics::pvData::int32  timeoutMs)
pure virtual

Waits (if needed) until transport is verified, i.e. verified() method is being called.

Parameters
timeoutMstimeout to wait for verification, infinite if 0.

Implemented in epics::pvAccess::detail::BlockingServerTCPTransportCodec, epics::pvAccess::detail::BlockingTCPTransportCodec, and epics::pvAccess::BlockingUDPTransport.

virtual void epics::pvAccess::Transport::waitJoin ( )
inlinevirtual

Call after close() to wait for any worker threads to exit.

Reimplemented in epics::pvAccess::detail::BlockingTCPTransportCodec.

Definition at line 258 of file remote.h.

258 {}

Member Data Documentation

size_t epics::pvAccess::Transport::_totalBytesRecv

Definition at line 273 of file remote.h.

size_t epics::pvAccess::Transport::_totalBytesSent

Definition at line 272 of file remote.h.

size_t epics::pvAccess::Transport::num_instances
static

Definition at line 168 of file remote.h.


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