21#include <avro/Decoder.hh>
22#include <avro/Encoder.hh>
23#include <avro/Specific.hh>
25namespace Energistics {
31 int32_t messageType = 0;
32 int64_t correlationId = 0;
33 int64_t messageId = 0;
34 int32_t messageFlags = 0;
41 template<>
struct codec_traits<Energistics::Etp::v12::Datatypes::MessageHeader> {
43 avro::encode(e, v.protocol);
44 avro::encode(e, v.messageType);
45 avro::encode(e, v.correlationId);
46 avro::encode(e, v.messageId);
47 avro::encode(e, v.messageFlags);
49 static void decode(Decoder& e, Energistics::Etp::v12::Datatypes::MessageHeader& v) {
50 avro::decode(e, v.protocol);
51 avro::decode(e, v.messageType);
52 avro::decode(e, v.correlationId);
53 avro::decode(e, v.messageId);
54 avro::decode(e, v.messageFlags);
67 std::shared_ptr<const std::vector<uint8_t>> encodeHeaderAndBody() {
68 auto out = avro::memoryOutputStream();
69 auto encoder = avro::binaryEncoder();
72 avro::encode(*encoder, messageHeader);
76 return avro::snapshot(*out);
79 virtual void encode(avro::Encoder&)
const = 0;
80 virtual void decode(avro::Decoder&) = 0;
82 std::string to_string()
const {
83 std::ostringstream oss;
84 oss <<
"*************************************************\n"
85 <<
"Message Header put in the queue :\n"
86 <<
"protocol : " << messageHeader.protocol <<
'\n'
87 <<
"type : " << messageHeader.messageType <<
'\n'
88 <<
"id : " << messageHeader.messageId <<
'\n'
89 <<
"correlation id : " << messageHeader.correlationId <<
'\n'
90 <<
"flags : " << messageHeader.messageFlags <<
'\n'
91 <<
"*************************************************" <<
'\n'
99 virtual std::string body_to_string()
const {
return ""; }
Definition EtpMessage.h:62