MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / onReceive

Method onReceive

proto/protoex_protocol.cpp:73–141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

71}
72
73bool Receiver::onReceive(size_t type, const void* data, size_t size)
74{
75 switch (type)
76 {
77 case FBE::protoex::OrderMessageModel::fbe_type():
78 {
79 // Deserialize the value from the FBE stream
80 OrderMessageModel.attach(data, size);
81 assert(OrderMessageModel.verify() && "protoex::OrderMessage validation failed!");
82 [[maybe_unused]] size_t deserialized = OrderMessageModel.deserialize(OrderMessageValue);
83 assert((deserialized > 0) && "protoex::OrderMessage deserialization failed!");
84
85 // Log the value
86 if (this->_logging)
87 {
88 std::string message = OrderMessageValue.string();
89 this->onReceiveLog(message);
90 }
91
92 // Call receive handler with deserialized value
93 onReceive(OrderMessageValue);
94 return true;
95 }
96 case FBE::protoex::BalanceMessageModel::fbe_type():
97 {
98 // Deserialize the value from the FBE stream
99 BalanceMessageModel.attach(data, size);
100 assert(BalanceMessageModel.verify() && "protoex::BalanceMessage validation failed!");
101 [[maybe_unused]] size_t deserialized = BalanceMessageModel.deserialize(BalanceMessageValue);
102 assert((deserialized > 0) && "protoex::BalanceMessage deserialization failed!");
103
104 // Log the value
105 if (this->_logging)
106 {
107 std::string message = BalanceMessageValue.string();
108 this->onReceiveLog(message);
109 }
110
111 // Call receive handler with deserialized value
112 onReceive(BalanceMessageValue);
113 return true;
114 }
115 case FBE::protoex::AccountMessageModel::fbe_type():
116 {
117 // Deserialize the value from the FBE stream
118 AccountMessageModel.attach(data, size);
119 assert(AccountMessageModel.verify() && "protoex::AccountMessage validation failed!");
120 [[maybe_unused]] size_t deserialized = AccountMessageModel.deserialize(AccountMessageValue);
121 assert((deserialized > 0) && "protoex::AccountMessage deserialization failed!");
122
123 // Log the value
124 if (this->_logging)
125 {
126 std::string message = AccountMessageValue.string();
127 this->onReceiveLog(message);
128 }
129
130 // Call receive handler with deserialized value

Callers

nothing calls this directly

Calls 7

onReceiveLogMethod · 0.95
attachMethod · 0.45
verifyMethod · 0.45
deserializeMethod · 0.45
stringMethod · 0.45
get_beginMethod · 0.45
get_endMethod · 0.45

Tested by

no test coverage detected