MAK RTIspy API Documentation for HLA Evolved
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtMsgSocket Class Reference

The DtMsgSocket provides a wrapper around the DtInetSocket class to operate on messages rather than just raw data. More...

+ Inheritance diagram for DtMsgSocket:
+ Collaboration diagram for DtMsgSocket:

List of all members.

Public Member Functions

 DtMsgSocket (DtBoost::shared_ptr< DtMsgHeaderReader > hdrReader, size_t recvBuffSize)
 Constructor.
 DtMsgSocket (std::auto_ptr< DtInetSocket > socket, DtBoost::shared_ptr< DtMsgHeaderReader > hdrReader, size_t recvBuffSize)
 Constructor which takes a pre-created DtInetSocket pointer.
virtual ~DtMsgSocket ()
 Destructor.
virtual int sendMessage (caddr_t msg, size_t msgSize, bool deleteAfterSend, const DtInetAddr &destAddr=DtInetAddr::inaddrAny())=0
 Sends a message.
virtual bool flush ()=0
 Attempts to send any queued messages and bundled messages.
virtual int recvMessage (caddr_t *buffptr)=0
 Gets the next message from the incoming data.
virtual int recvMessageWithSrc (caddr_t *buffptr, DtInetEndpoint &src)=0
 Gets the next message from the stream of incoming data and sets the source of the message.
virtual bool closeSocket ()
 Close a socket. Returns true on successful close or false on failure.
virtual DtInetSockState state () const
 Returns the state of the socket.
const DtString & lastError () const
 Returns a description of the last error.
virtual void enableBundling (size_t maxBundleSize)=0
 Enables message bundling and sets the maximum bundle size.
virtual void disableBundling ()=0
 Disables message bundling.
virtual void enableCompression (DtU8 compressionLevel)=0
 Enables message compression and sets the compression level.
virtual void disableCompression ()=0
 Disables message compression.
const DtInetEndpoint & localEndpoint () const
 Gets the local endpoint for the socket.
void setSendBufferSize (DtU32 size)
 Sets the socket send buffer size.
void setRecvBufferSize (DtU32 size)
 Sets the socket receive buffer size.
DtU32 maxSendMsgSize () const
 Gets the maximum socket send size.
int descriptor () const
 Get's the socket file descriptor.
DtInetSocket * inetSocket ()
 Returns a pointer to the DtInetSocket.

Protected Member Functions

void expandRecvBuffer (size_t sizeNeeded)
 Expands the receive buffer to accommodate the given size message.

Protected Attributes

std::auto_ptr
< MAKRti::DtInetSocket > 
mySocket
 The socket.
DtInetBuffer myRecvBuffer
 The buffer to store received data in.
DtString myLastError
 Description of last error.
DtBoost::shared_ptr
< DtMsgHeaderReader
myHeaderReader
 Reads data from message header.

Private Member Functions

 DtMsgSocket (const DtMsgSocket &)
 Not copyable.
DtMsgSocketoperator= (const DtMsgSocket &)

Detailed Description

The DtMsgSocket provides a wrapper around the DtInetSocket class to operate on messages rather than just raw data.


Constructor & Destructor Documentation

DtMsgSocket::DtMsgSocket ( DtBoost::shared_ptr< DtMsgHeaderReader hdrReader,
size_t  recvBuffSize 
)

Constructor.

Requires a header reader to extract information from message headers.

DtMsgSocket::DtMsgSocket ( std::auto_ptr< DtInetSocket >  socket,
DtBoost::shared_ptr< DtMsgHeaderReader hdrReader,
size_t  recvBuffSize 
)

Constructor which takes a pre-created DtInetSocket pointer.

Gives ownership and responsibility of the socket to the DtMsgSocket object.

Destructor.

DtMsgSocket::DtMsgSocket ( const DtMsgSocket ) [private]

Not copyable.


Member Function Documentation

Close a socket. Returns true on successful close or false on failure.

References mySocket.

int DtMsgSocket::descriptor ( ) const [inline]
virtual void DtMsgSocket::disableBundling ( ) [pure virtual]

Disables message bundling.

Implemented in DtTcpMsgSocket, DtSmSocket__rti__, and DtUdpMsgSocket.

virtual void DtMsgSocket::disableCompression ( ) [pure virtual]

Disables message compression.

Implemented in DtTcpMsgSocket, DtSmSocket__rti__, and DtUdpMsgSocket.

virtual void DtMsgSocket::enableBundling ( size_t  maxBundleSize) [pure virtual]

Enables message bundling and sets the maximum bundle size.

Implemented in DtTcpMsgSocket, DtSmSocket__rti__, and DtUdpMsgSocket.

virtual void DtMsgSocket::enableCompression ( DtU8  compressionLevel) [pure virtual]

Enables message compression and sets the compression level.

Implemented in DtTcpMsgSocket, DtSmSocket__rti__, and DtUdpMsgSocket.

void DtMsgSocket::expandRecvBuffer ( size_t  sizeNeeded) [inline, protected]

Expands the receive buffer to accommodate the given size message.

Referenced by DtTcpMsgSocket::recvMessage().

virtual bool DtMsgSocket::flush ( ) [pure virtual]

Attempts to send any queued messages and bundled messages.

Returns true if all queued and bundled messages were sent.

Implemented in DtTcpMsgSocket, DtSmSocket__rti__, DtUdpMsgSocket, and DtRtiSmSocket.

Referenced by DtRtiConnection::flush(), and DtConnectionMgr::flush().

DtInetSocket * DtMsgSocket::inetSocket ( ) [inline]

Returns a pointer to the DtInetSocket.

Referenced by DtTcpMsgSocketMgr::removeAndDelete().

const DtString & DtMsgSocket::lastError ( ) const [inline]

Returns a description of the last error.

Referenced by DtRtiConnection::flush(), DtRtiConnection::netRead(), and DtRtiConnection::send().

const DtInetEndpoint& DtMsgSocket::localEndpoint ( ) const [inline]

Gets the local endpoint for the socket.

Referenced by DtExtendedRtiMsgForwarder::init(), and DtInOutForwarderPort::sendPortMsg().

DtU32 DtMsgSocket::maxSendMsgSize ( ) const [inline]

Gets the maximum socket send size.

Referenced by DtRtiAssistantExecClient::sendLogMsg().

DtMsgSocket& DtMsgSocket::operator= ( const DtMsgSocket ) [private]
virtual int DtMsgSocket::recvMessage ( caddr_t *  buffptr) [pure virtual]

Gets the next message from the incoming data.

Implemented in DtTcpMsgSocket, and DtUdpMsgSocket.

Referenced by DtRtiConnection::netRead().

virtual int DtMsgSocket::recvMessageWithSrc ( caddr_t *  buffptr,
DtInetEndpoint &  src 
) [pure virtual]

Gets the next message from the stream of incoming data and sets the source of the message.

Implemented in DtTcpMsgSocket, and DtUdpMsgSocket.

Referenced by DtInOutForwarderPort::getInitializationMsg().

virtual int DtMsgSocket::sendMessage ( caddr_t  msg,
size_t  msgSize,
bool  deleteAfterSend,
const DtInetAddr &  destAddr = DtInetAddr::inaddrAny() 
) [pure virtual]

Sends a message.

Implemented in DtTcpMsgSocket, DtSmSocket__rti__, and DtUdpMsgSocket.

Referenced by DtRtiConnection::send().

void DtMsgSocket::setRecvBufferSize ( DtU32  size) [inline]
void DtMsgSocket::setSendBufferSize ( DtU32  size) [inline]
DtInetSockState DtMsgSocket::state ( ) const [inline, virtual]

Returns the state of the socket.

Reimplemented in DtRtiSmSocket.

Referenced by DtRtiConnection::init(), and DtRtiConnection::isOk().


Member Data Documentation

DtBoost::shared_ptr<DtMsgHeaderReader> DtMsgSocket::myHeaderReader [protected]
DtString DtMsgSocket::myLastError [protected]
DtInetBuffer DtMsgSocket::myRecvBuffer [protected]

The buffer to store received data in.

Referenced by DtSmSocket__rti__::recv(), DtRtiSmSocket::recv(), DtUdpMsgSocket::recv(), and DtTcpMsgSocket::recvMessage().

std::auto_ptr<MAKRti::DtInetSocket> DtMsgSocket::mySocket [protected]

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

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)