#pragma once #include #include namespace ls::aries { /// The Aries message header. struct [[gnu::packed]] AriesMessageHeader { /// Message FourCC. base::FourCC32_t typeCode {}; /// Apparently a extra 4 bytes of FourCC? base::FourCC32_t typeCodeHi {}; /// The size of the message payload. Is network order (big endian), and includes the size of this header base::NetworkOrder messageSize {}; }; /// The raw components of an Aries message. Used by our I/O algoritms. struct RawAriesMessage { AriesMessageHeader header; std::string tagFields; }; // Sanity checking. static_assert(sizeof(AriesMessageHeader) == 12, "Aries message header size is invalid"); } // namespace ls::proto