1 #include "hmbdc/Copyright.hpp"
4 #include "hmbdc/time/Time.hpp"
5 #include "hmbdc/app/Base.hpp"
9 namespace hmbdc {
namespace app {
namespace udpcast {
14 uint16_t& messagePayloadLen() {
15 return *
reinterpret_cast<uint16_t*
>(payload());
18 uint16_t
const& messagePayloadLen()
const {
19 return *
reinterpret_cast<uint16_t const*
>(payload());
22 std::pair<char const*, char const*> topic()
const {
23 char const* b =
reinterpret_cast<const char*
>(
this)
25 return std::make_pair(b, b + topicLen);
28 void const* payload()
const {
29 return reinterpret_cast<const char*
>(
this)
34 return reinterpret_cast<char*
>(
this)
38 uint16_t typeTag()
const {
43 template <
typename Message>
49 template <
typename Message>
50 Message
const& wrapped()
const {
55 size_t wireSize()
const {
57 + messagePayloadLen();
60 size_t wireSizeContainsTopic()
const {
63 } __attribute__((packed));
72 ,
"do you have a pack pragma unclosed that influencs the above struct packing unexpectedly?");
topic as in the publish / subscribe communication paradigm
Definition: Topic.hpp:14
each message type has 16 bit tag
Definition: Message.hpp:60
Definition: Messages.hpp:65
Definition: Message.hpp:78
Definition: Message.hpp:112
Definition: Messages.hpp:73