struct msghdr with a known type, fixed-size I/O and control buffers More...

#include <TypedMsgHdr.h>

Inheritance diagram for Ipc::TypedMsgHdr:
Collaboration diagram for Ipc::TypedMsgHdr:


struct  CtrlBuffer
struct  DataBuffer

Public Types

enum  { maxSize = 4096 }

Public Member Functions

 TypedMsgHdr ()
 TypedMsgHdr (const TypedMsgHdr &tmh)
TypedMsgHdroperator= (const TypedMsgHdr &tmh)
void address (const struct sockaddr_un &addr)
 sets [dest.] address More...
void setType (int aType)
 sets message type; use MessageType enum More...
void checkType (int aType) const
int rawType () const
template<class Pod >
void getPod (Pod &pod) const
 load POD More...
template<class Pod >
void putPod (const Pod &pod)
 store POD More...
void getString (String &s) const
 load variable-length string More...
void putString (const String &s)
 store variable-length string More...
int getInt () const
 load an integer More...
void putInt (int n)
 store an integer More...
void getFixed (void *raw, size_t size) const
 always load size bytes More...
void putFixed (const void *raw, size_t size)
 always store size bytes More...
bool hasMoreData () const
 returns true if there is data to extract; handy for optional parts More...
void putFd (int aFd)
 stores descriptor More...
int getFd () const
 returns stored descriptor More...
bool hasFd () const
 whether the message has a descriptor stored More...
void prepForReading ()
 reset and provide all buffers More...
char * raw ()
const char * raw () const
size_t size () const
 not true message size More...

Public Attributes

void * msg_name
socklen_t msg_namelen
struct iovecmsg_iov
size_t msg_iovlen
void * msg_control
size_t msg_controllen
int msg_flags

Private Member Functions

void clear ()
void sync ()
void allocData ()
 initialize io vector with one io record More...
void allocName ()
void allocControl ()
void getRaw (void *raw, size_t size) const
 low-level loading of exactly size bytes of raw data More...
void putRaw (const void *raw, size_t size)
 low-level storage of exactly size bytes of raw data More...

Private Attributes

struct sockaddr_un name
 same as .msg_name More...
struct iovec ios [1]
 same as .msg_iov[] More...
struct Ipc::TypedMsgHdr::DataBuffer data
 same as .msg_iov[0].iov_base More...
struct Ipc::TypedMsgHdr::CtrlBuffer ctrl
 same as .msg_control More...
unsigned int offset = 0
 data offset for the next get/put*() to start with More...

Detailed Description

Definition at line 34 of file TypedMsgHdr.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Definition at line 37 of file TypedMsgHdr.h.

Constructor & Destructor Documentation

◆ TypedMsgHdr() [1/2]

Ipc::TypedMsgHdr::TypedMsgHdr ( )

Definition at line 19 of file

References clear(), and sync().

◆ TypedMsgHdr() [2/2]

Ipc::TypedMsgHdr::TypedMsgHdr ( const TypedMsgHdr tmh)

Definition at line 25 of file

Member Function Documentation

◆ address()

void Ipc::TypedMsgHdr::address ( const struct sockaddr_un addr)

Definition at line 85 of file

References SUN_LEN.

Referenced by Ipc::UdsSender::UdsSender().

◆ allocControl()

void Ipc::TypedMsgHdr::allocControl ( )

Definition at line 266 of file

References Must.

◆ allocData()

void Ipc::TypedMsgHdr::allocData ( )

Definition at line 246 of file

References Must.

◆ allocName()

void Ipc::TypedMsgHdr::allocName ( )

Definition at line 258 of file

References Must.

◆ checkType()

◆ clear()

void Ipc::TypedMsgHdr::clear ( )

Definition at line 46 of file

Referenced by TypedMsgHdr().

◆ getFd()

◆ getFixed()

void Ipc::TypedMsgHdr::getFixed ( void *  raw,
size_t  size 
) const

◆ getInt()

◆ getPod()

◆ getRaw()

void Ipc::TypedMsgHdr::getRaw ( void *  raw,
size_t  size 
) const

Definition at line 166 of file

References Must.

◆ getString()

◆ hasFd()

bool Ipc::TypedMsgHdr::hasFd ( ) const

Definition at line 187 of file

References CMSG_FIRSTHDR, cmsghdr::cmsg_level, cmsghdr::cmsg_type, and SCM_RIGHTS.

Referenced by Snmp::Request::Request().

◆ hasMoreData()

bool Ipc::TypedMsgHdr::hasMoreData ( ) const

Definition at line 66 of file TypedMsgHdr.h.

References data, offset, and Ipc::TypedMsgHdr::DataBuffer::size.

Referenced by Mgr::Response::Response().

◆ operator=()

Ipc::TypedMsgHdr & Ipc::TypedMsgHdr::operator= ( const TypedMsgHdr tmh)

Definition at line 31 of file

References ctrl, data, ios, name, and offset.

◆ prepForReading()

void Ipc::TypedMsgHdr::prepForReading ( )

Definition at line 234 of file

◆ putFd()

◆ putFixed()

void Ipc::TypedMsgHdr::putFixed ( const void *  raw,
size_t  size 

Definition at line 158 of file

Referenced by Snmp::Pdu::pack(), Snmp::Session::pack(), and Snmp::Var::pack().

◆ putInt()

◆ putPod()

◆ putRaw()

void Ipc::TypedMsgHdr::putRaw ( const void *  raw,
size_t  size 

Definition at line 177 of file

References Must.

◆ putString()

◆ raw() [1/2]

char * Ipc::TypedMsgHdr::raw ( )

Definition at line 75 of file TypedMsgHdr.h.

◆ raw() [2/2]

const char * Ipc::TypedMsgHdr::raw ( ) const

Definition at line 76 of file TypedMsgHdr.h.

◆ rawType()

int Ipc::TypedMsgHdr::rawType ( ) const

received or set message kind; may not be a MessageType value

0 if no message kind has been received or set

Definition at line 51 of file TypedMsgHdr.h.

References data, msghdr::msg_iov, and Ipc::TypedMsgHdr::DataBuffer::type_.

Referenced by Ipc::Port::receive(), Ipc::Coordinator::receive(), Ipc::Strand::receive(), and Ipc::Port::receiveOrIgnore().

◆ setType()

◆ size()

size_t Ipc::TypedMsgHdr::size ( ) const

Definition at line 77 of file TypedMsgHdr.h.

◆ sync()

void Ipc::TypedMsgHdr::sync ( void  )

Definition at line 58 of file

References Must.

Referenced by TypedMsgHdr().

Member Data Documentation

◆ ctrl

struct Ipc::TypedMsgHdr::CtrlBuffer Ipc::TypedMsgHdr::ctrl

Referenced by operator=().

◆ data

struct Ipc::TypedMsgHdr::DataBuffer Ipc::TypedMsgHdr::data

Referenced by hasMoreData(), operator=(), and rawType().

◆ ios

struct iovec Ipc::TypedMsgHdr::ios[1]

Definition at line 93 of file TypedMsgHdr.h.

Referenced by operator=().

◆ msg_control

void* msghdr::msg_control

Definition at line 95 of file cmsg.h.

◆ msg_controllen

size_t msghdr::msg_controllen

Definition at line 96 of file cmsg.h.

◆ msg_flags

int msghdr::msg_flags

Definition at line 101 of file cmsg.h.

◆ msg_iov

struct iovec* msghdr::msg_iov

Definition at line 92 of file cmsg.h.

Referenced by rawType().

◆ msg_iovlen

size_t msghdr::msg_iovlen

Definition at line 93 of file cmsg.h.

◆ msg_name

void* msghdr::msg_name

Definition at line 89 of file cmsg.h.

◆ msg_namelen

socklen_t msghdr::msg_namelen

Definition at line 90 of file cmsg.h.

◆ name

struct sockaddr_un Ipc::TypedMsgHdr::name

Definition at line 91 of file TypedMsgHdr.h.

Referenced by operator=().

◆ offset

unsigned int Ipc::TypedMsgHdr::offset = 0

Definition at line 111 of file TypedMsgHdr.h.

Referenced by hasMoreData(), and operator=().

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






Web Site Translations