24 #ifndef __NETCOMM_FAWKES_MESSAGE_H_ 25 #define __NETCOMM_FAWKES_MESSAGE_H_ 27 #include <core/utils/refcount.h> 28 #include <core/exceptions/software.h> 40 unsigned short int cid;
81 unsigned short int cid,
unsigned short int msg_id,
82 void *payload,
size_t payload_size);
84 unsigned short int cid,
unsigned short int msg_id);
86 void *payload,
size_t payload_size);
88 unsigned short int cid,
unsigned short int msg_id,
99 unsigned int clid()
const;
100 unsigned short int cid()
const;
101 unsigned short int msgid()
const;
102 size_t payload_size()
const;
103 void * payload()
const;
113 template <
typename MT>
117 if ( payload_size() !=
sizeof(MT) ) {
120 return (MT *)(_msg.payload);
132 template <
typename MT>
136 if ( payload_size() <
sizeof(MT) ) {
139 return (MT *)(_msg.payload);
152 template <
typename MT>
157 MT *m =
new MT(cid(), msgid(), _msg.payload, payload_size());
162 throw Exception(
"Unknown exception caught while parsing complex network message");
166 void set_client_id(
unsigned int clid);
167 void set_component_id(
unsigned short int cid);
168 void set_message_id(
unsigned short int msg_id);
169 void set_payload(
void *payload,
size_t payload_size);
176 void init_cid_msgid(
unsigned short int cid,
unsigned short int msg_id);
177 void init_payload(
size_t payload_size);
fawkes_message_header_t header
message header
MT * msgge() const
Get correctly casted payload.
Fawkes library namespace.
Exception()
Constructor for subclasses.
Representation of a message that is sent over the network.
MT * msgc() const
Get correctly parsed output.
Fawkes network message content.
Base class for exceptions in Fawkes.
Message as stored in local queues.
void * payload
message payload
Reference counting base class.
FawkesNetworkMessageTooBigException(size_t message_size)
Constructor.
The given message size exceeds the limit.
MT * msg() const
Get correctly casted payload.