|
|
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:
address | SocketAddress object. |
inline void setBuffer (char* buffer, const size_t buffersize)
| setBuffer |
Set buffer.
Parameters:
buffer | Buffer. |
bufferSize | Size 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:
controlsize | Size 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:
payload | Size of payload. |
level | Level (e.g. IPPROTO_SCTP). |
type | Type (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:
prev | Previous 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] |