| 302 | } |
| 303 | |
| 304 | td::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 |
nothing calls this directly
no test coverage detected