class SocketMessage

Socket Message. More...

Full nameCoral::SocketMessage
Definition#include <tdmessage.h>
Template formSocketMessage<const size_t size>
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Public Members


Detailed Description

This template class manages manages message structures used by sendmsg() and recvmsg(). The template parameter gives the size of the control data block.

inline  SocketMessage ()

SocketMessage

Constructor.

inline void  clear ()

clear

Clear structure.

inline SocketAddress*  getAddress ()

getAddress

[const]

Get address as SocketAddress object. Note: This address has to be freed using delete operator!

Returns: SocketAddress object.

inline void  setAddress (const SocketAddress& address)

setAddress

Set address.

Parameters:
addressSocketAddress object.

inline void  setBuffer (char* buffer, const size_t buffersize)

setBuffer

Set buffer.

Parameters:
bufferBuffer.
bufferSizeSize of buffer.

inline void  setControl (const size_t controlsize)

setControl

Set size of control block. Sizes greater than the template parameter are adjusted to the maximum possible value.

Parameters:
controlsizeSize of controlblock.

inline char*  addHeader (const cardinal payload, const int level, const int type)

addHeader

Add control header of given cmsg level and type. Returns NULL, if there is not enough free space in the control data block.

Parameters:
payloadSize of payload.
levelLevel (e.g. IPPROTO_SCTP).
typeType (e.g. SCTP_INIT).

Returns: Pointer to begin of *payload* area.

inline cmsghdr*  getFirstHeader ()

getFirstHeader

[const]

Get first cmsg header in control block.

Returns: First cmsg header or NULL, if there are none.

inline cmsghdr*  getNextHeader (const cmsghdr* prev)

getNextHeader

[const]

Get next cmsg header in control block.

Parameters:
prevPrevious cmsg header.

Returns: Next cmsg header or NULL, if there are no more.

msghdr Header

Header

sockaddr_storage Address

Address

char Control[size]

Control[size]