20 #include <ripple/overlay/Message.h>
21 #include <ripple/overlay/impl/TrafficCount.h>
27 ::google::protobuf::Message
const& message,
29 boost::optional<PublicKey>
const& validator)
30 : category_(
TrafficCount::categorize(message, type, false))
31 , validatorKey_(validator)
35 #if defined(GOOGLE_PROTOBUF_VERSION) && (GOOGLE_PROTOBUF_VERSION >= 3011000)
36 auto const messageBytes = message.ByteSizeLong();
38 unsigned const messageBytes = message.ByteSize();
41 assert(messageBytes != 0);
47 if (messageBytes != 0)
59 bool const compressible = [&] {
60 if (messageBytes <= 70)
64 case protocol::mtMANIFESTS:
65 case protocol::mtENDPOINTS:
66 case protocol::mtTRANSACTION:
67 case protocol::mtGET_LEDGER:
68 case protocol::mtLEDGER_DATA:
69 case protocol::mtGET_OBJECTS:
70 case protocol::mtVALIDATORLIST:
72 case protocol::mtPING:
73 case protocol::mtCLUSTER:
74 case protocol::mtPROPOSE_LEDGER:
75 case protocol::mtSTATUS_CHANGE:
76 case protocol::mtHAVE_SET:
77 case protocol::mtVALIDATION:
78 case protocol::mtGET_SHARD_INFO:
79 case protocol::mtSHARD_INFO:
80 case protocol::mtGET_PEER_SHARD_INFO:
81 case protocol::mtPEER_SHARD_INFO:
162 (size >> 24) & 0x0F);
168 pack(
in, payloadBytes);
173 if (compression != Algorithm::None)
175 pack(
in, uncompressedBytes);
197 int type = (
static_cast<int>(*(
in + 4)) << 8) + *(
in + 5);