pvAccessCPP  7.1.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
epics::pvAccess::Transport Class Referenceabstract

Interface defining transport (connection). More...

#include <remote/pv/remote.h>

Inherits DeserializableControl.

Inherited by epics::pvAccess::BlockingUDPTransport, and epics::pvAccess::detail::AbstractCodec.

Public Types

typedef std::tr1::shared_ptr
< Transport
shared_pointer
 
typedef std::tr1::shared_ptr
< const Transport
const_shared_pointer
 
typedef std::tr1::weak_ptr
< Transport
weak_pointer
 
typedef std::tr1::weak_ptr
< const Transport
const_weak_pointer
 

Public Member Functions

virtual bool acquire (std::tr1::shared_ptr< ClientChannelImpl > const &client)=0
 Acquires transport. More...
 
virtual void release (pvAccessID clientId)=0
 Releases transport. More...
 
virtual std::string getType () const =0
 Get protocol type (tcp, udp, ssl, etc.). More...
 
virtual const osiSockAddr & getRemoteAddress () const =0
 
virtual const std::stringgetRemoteName () const =0
 
virtual std::size_t getReceiveBufferSize () const =0
 Get receive buffer size. More...
 
virtual epics::pvData::int16 getPriority () const =0
 Transport priority. More...
 
virtual void setRemoteTransportReceiveBufferSize (std::size_t receiveBufferSize)=0
 Set remote transport receive buffer size. More...
 
virtual void setRemoteTransportSocketReceiveBufferSize (std::size_t socketReceiveBufferSize)=0
 Set remote transport socket receive buffer size. More...
 
virtual void setByteOrder (int byteOrder)=0
 Set byte order. More...
 
virtual void enqueueSendRequest (TransportSender::shared_pointer const &sender)=0
 Enqueue send request. More...
 
virtual void flushSendQueue ()=0
 Flush send queue (sent messages).
 
virtual void verified (epics::pvData::Status const &status)=0
 Notify transport that it is has been verified. More...
 
virtual bool verify (epics::pvData::int32 timeoutMs)=0
 Waits (if needed) until transport is verified, i.e. More...
 
virtual void close ()=0
 Close transport.
 
virtual void waitJoin ()
 Call after close() to wait for any worker threads to exit.
 
virtual bool isClosed ()=0
 Check connection status. More...
 
virtual void authNZMessage (epics::pvData::PVStructure::shared_pointer const &data)=0
 Pass data to the active security plug-in session. More...
 

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 166 of file remote.h.

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.
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.
virtual void epics::pvAccess::Transport::enqueueSendRequest ( TransportSender::shared_pointer const &  sender)
pure virtual

Enqueue send request.

Parameters
sender
virtual epics::pvData::int16 epics::pvAccess::Transport::getPriority ( ) const
pure virtual

Transport priority.

Returns
protocol priority.
virtual std::size_t epics::pvAccess::Transport::getReceiveBufferSize ( ) const
pure virtual

Get receive buffer size.

Returns
receive buffer size.
virtual std::string epics::pvAccess::Transport::getType ( ) const
pure virtual

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

Returns
protocol type.
virtual bool epics::pvAccess::Transport::isClosed ( )
pure virtual

Check connection status.

Returns
true if connected.
virtual void epics::pvAccess::Transport::release ( pvAccessID  clientId)
pure virtual

Releases transport.

Parameters
clientclient (channel) releasing the transport
virtual void epics::pvAccess::Transport::setByteOrder ( int  byteOrder)
pure virtual

Set byte order.

Parameters
byteOrderbyte order to set.
virtual void epics::pvAccess::Transport::setRemoteTransportReceiveBufferSize ( std::size_t  receiveBufferSize)
pure virtual

Set remote transport receive buffer size.

Parameters
receiveBufferSizereceive buffer size.
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.
virtual void epics::pvAccess::Transport::verified ( epics::pvData::Status const &  status)
pure virtual

Notify transport that it is has been verified.

Parameters
statusvefification status;
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.

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