MCPcopy Create free account
hub / github.com/TelegramMessenger/cocoon / process_packet

Method process_packet

net/TcpConnection.cpp:304–321  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

302}
303
304td::Status TcpConnection::process_packet(td::BufferSlice data) {
305 TRY_RESULT(r, fetch_tl_object<cocoon_api::tcp_Packet>(data, true));
306 td::Status R;
307 cocoon_api::downcast_call(
308 *r,
309 td::overloaded(
310 [&](cocoon_api::tcp_ping &obj) { send(create_serialize_tl_object<cocoon_api::tcp_pong>(obj.id_)); },
311 [&](cocoon_api::tcp_pong &obj) {},
312 [&](cocoon_api::tcp_packet &obj) { callback_->on_packet(self_, std::move(obj.data_)); },
313 [&](cocoon_api::tcp_query &obj) { callback_->on_query(self_, obj.id_, std::move(obj.data_)); },
314 [&](cocoon_api::tcp_queryAnswer &obj) { callback_->on_query_answer(self_, obj.id_, std::move(obj.data_)); },
315 [&](cocoon_api::tcp_queryError &obj) {
316 LOG(DEBUG) << "tcp: received error: code=" << obj.code_ << " message=" << obj.message_;
317 callback_->on_query_error(self_, obj.id_, td::Status::Error(obj.code_, obj.message_));
318 },
319 [&](cocoon_api::tcp_connect &obj) {}, [&](cocoon_api::tcp_connected &obj) {}));
320 return R;
321}
322
323} // namespace cocoon

Callers

nothing calls this directly

Calls 4

on_packetMethod · 0.80
on_queryMethod · 0.80
on_query_answerMethod · 0.80
on_query_errorMethod · 0.80

Tested by

no test coverage detected