|
MADARA
3.1.8
|
Defines a fragmentation header which allows for multi-part messages that are only applied once all fragments are received. More...
#include <Fragmentation.h>


Public Member Functions | |
| FragmentMessageHeader () | |
| Constructor. More... | |
| virtual | ~FragmentMessageHeader () |
| Destructor. More... | |
| virtual uint32_t | encoded_size (void) const |
| Returns the size of the encoded MessageHeader class, which may be different from sizeof (MessageHeader) because of compiler optimizations for word boundaries. More... | |
| virtual bool | equals (const MessageHeader &other) |
| Compares the fields of this instance to another instance. More... | |
| void | operator= (MessageHeader &header) |
| Assignment operator for regular message header. More... | |
| virtual const char * | read (const char *buffer, int64_t &buffer_remaining) |
| Reads a MessageHeader instance from a buffer and updates the amount of buffer room remaining. More... | |
| virtual std::string | to_string (void) |
| Converts the relevant fields to a printable string. More... | |
| virtual char * | write (char *buffer, int64_t &buffer_remaining) |
| Writes a MessageHeader instance to a buffer and updates the amount of buffer room remaining. More... | |
Static Public Member Functions | |
| static bool | fragment_message_header_test (const char *buffer) |
| Tests the buffer for a reduced message identifier. More... | |
| static uint64_t | get_size (const char *buffer) |
| Returns the size field of the header. More... | |
| static uint32_t | get_updates (const char *buffer) |
| Returns the number of updates indicated in the header. More... | |
| static bool | message_header_test (const char *buffer) |
| Tests the buffer for a normal message identifier. More... | |
| static uint32_t | static_encoded_size (void) |
| Returns the size of the encoded MessageHeader class, which may be different from sizeof (MessageHeader) because of compiler optimizations for word boundaries. More... | |
Public Attributes | |
| uint64_t | clock |
| the clock of the sender when the message was generated More... | |
| char | domain [32] |
| the domain that this message is intended for More... | |
| char | madara_id [8] |
| the identifier of this transport (MADARA_IDENTIFIER) More... | |
| char | originator [64] |
| the originator of the message (host:port) More... | |
| uint32_t | quality |
| the quality of the message sender More... | |
| uint64_t | size |
| the size of this header plus the updates More... | |
| uint64_t | timestamp |
| the timestamp of the sender when the message was generated More... | |
| unsigned char | ttl |
| time to live (number of rebroadcasts to perform after original send More... | |
| uint32_t | type |
| the type of message More... | |
| uint32_t | update_number |
| uint32_t | updates |
| the number of knowledge variable updates in the message More... | |
Defines a fragmentation header which allows for multi-part messages that are only applied once all fragments are received.
Format:
[0] [64 bit unsigned size]
[8] [8 byte transport id] (prefixed with 'KFRG')
[16] [32 byte domain name]
[48] [64 byte originator (generally host:port)]
[112] [32 bit unsigned type]
2 = MULTIASSIGN (most common type)
[116] [32 bit unsigned num updates]
[120] [32 bit unsigned quality (type of priority)]
[124] [64 bit unsigned Lamport clock]
[132] [64 bit unsigned wall clock timestamp]
[140] [8 bit unsigned ttl–for rebroadcasts]
[141] [32 bit update number out of num updates]
[145] [knowledge updates start here in the buffer]
Definition at line 47 of file Fragmentation.h.
| madara::transport::FragmentMessageHeader::FragmentMessageHeader | ( | ) |
Constructor.
Definition at line 9 of file Fragmentation.cpp.
|
virtual |
Destructor.
Definition at line 20 of file Fragmentation.cpp.
|
virtual |
Returns the size of the encoded MessageHeader class, which may be different from sizeof (MessageHeader) because of compiler optimizations for word boundaries.
Reimplemented from madara::transport::MessageHeader.
Definition at line 25 of file Fragmentation.cpp.
|
virtual |
Compares the fields of this instance to another instance.
| other | the other instance to compare against |
Reimplemented from madara::transport::MessageHeader.
Definition at line 248 of file Fragmentation.cpp.
|
inlinestatic |
Tests the buffer for a reduced message identifier.
Definition at line 118 of file Fragmentation.h.
|
staticinherited |
Returns the size field of the header.
Definition at line 241 of file MessageHeader.cpp.
|
static |
Returns the number of updates indicated in the header.
Definition at line 45 of file Fragmentation.cpp.
|
inlinestaticinherited |
Tests the buffer for a normal message identifier.
Definition at line 129 of file MessageHeader.h.
| void madara::transport::FragmentMessageHeader::operator= | ( | MessageHeader & | header | ) |
Assignment operator for regular message header.
Definition at line 537 of file Fragmentation.cpp.
|
virtual |
Reads a MessageHeader instance from a buffer and updates the amount of buffer room remaining.
| buffer | the readable buffer where data is stored |
| buffer_remaining | the count of bytes remaining in the buffer to read |
Reimplemented from madara::transport::MessageHeader.
Definition at line 52 of file Fragmentation.cpp.
|
static |
Returns the size of the encoded MessageHeader class, which may be different from sizeof (MessageHeader) because of compiler optimizations for word boundaries.
Definition at line 34 of file Fragmentation.cpp.
|
virtualinherited |
Converts the relevant fields to a printable string.
Reimplemented in madara::transport::ReducedMessageHeader.
Definition at line 222 of file MessageHeader.cpp.
|
virtual |
Writes a MessageHeader instance to a buffer and updates the amount of buffer room remaining.
| buffer | the readable buffer where data is stored |
| buffer_remaining | the count of bytes remaining in the buffer to read |
Reimplemented from madara::transport::MessageHeader.
Definition at line 154 of file Fragmentation.cpp.
|
inherited |
the clock of the sender when the message was generated
Definition at line 172 of file MessageHeader.h.
|
inherited |
the domain that this message is intended for
Definition at line 147 of file MessageHeader.h.
|
inherited |
the identifier of this transport (MADARA_IDENTIFIER)
Definition at line 142 of file MessageHeader.h.
|
inherited |
the originator of the message (host:port)
Definition at line 152 of file MessageHeader.h.
|
inherited |
the quality of the message sender
Definition at line 167 of file MessageHeader.h.
|
inherited |
the size of this header plus the updates
Definition at line 137 of file MessageHeader.h.
|
inherited |
the timestamp of the sender when the message was generated
Definition at line 177 of file MessageHeader.h.
|
inherited |
time to live (number of rebroadcasts to perform after original send
Definition at line 182 of file MessageHeader.h.
|
inherited |
the type of message
Definition at line 157 of file MessageHeader.h.
| uint32_t madara::transport::FragmentMessageHeader::update_number |
Definition at line 123 of file Fragmentation.h.
|
inherited |
the number of knowledge variable updates in the message
Definition at line 162 of file MessageHeader.h.