CSlice ClientJson::execute(Slice request) { auto r_request = to_request(request); if (r_request.is_error()) { LOG(ERROR) << "Failed to parse " << tag("request", format::escaped(request)) << " " << r_request.error(); return {}; } return store_string(from_response(Client::execute(r_request.move_as_ok()))); }
void on_result(uint64 id, BufferSlice packet) override { auto result_ptr = fetch_result<telegram_api::messages_getBotCallbackAnswer>(packet); if (result_ptr.is_error()) { return on_error(id, result_ptr.move_as_error()); } td->callback_queries_manager_->on_get_callback_query_answer(result_id_, result_ptr.move_as_ok()); promise_.set_value(Unit()); }
void FileLoader::update_local_file_location(const LocalFileLocation &local) { auto r_prefix_info = on_update_local_location(local); if (r_prefix_info.is_error()) { on_error(r_prefix_info.move_as_error()); stop_flag_ = true; return; } auto prefix_info = r_prefix_info.move_as_ok(); auto status = parts_manager_.set_known_prefix(narrow_cast<size_t>(prefix_info.size), prefix_info.is_ready); if (status.is_error()) { on_error(std::move(status)); stop_flag_ = true; return; } loop(); }