Add Td::create_ok_request_promise.
GitOrigin-RevId: 13513878b18ba56ca2e80915dbb1b595d1c87619
This commit is contained in:
parent
bc193a97bf
commit
aa146b77b8
@ -4703,6 +4703,27 @@ void Td::answer_ok_query(uint64 id, Status status) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
Promise<T> Td::create_request_promise(uint64 id) {
|
||||||
|
return PromiseCreator::lambda([id = id, actor_id = actor_id(this)](Result<T> r_state) {
|
||||||
|
if (r_state.is_error()) {
|
||||||
|
send_closure(actor_id, &Td::send_error, id, r_state.move_as_error());
|
||||||
|
} else {
|
||||||
|
send_closure(actor_id, &Td::send_result, id, r_state.move_as_ok());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Promise<Unit> Td::create_ok_request_promise(uint64 id) {
|
||||||
|
return PromiseCreator::lambda([id = id, actor_id = actor_id(this)](Result<> result) mutable {
|
||||||
|
if (result.is_error()) {
|
||||||
|
send_closure(actor_id, &Td::send_error, id, result.move_as_error());
|
||||||
|
} else {
|
||||||
|
send_closure(actor_id, &Td::send_result, id, td_api::make_object<td_api::ok>());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
#define CLEAN_INPUT_STRING(field_name) \
|
#define CLEAN_INPUT_STRING(field_name) \
|
||||||
if (!clean_input_string(field_name)) { \
|
if (!clean_input_string(field_name)) { \
|
||||||
return send_error_raw(id, 400, "Strings must be encoded in UTF-8"); \
|
return send_error_raw(id, 400, "Strings must be encoded in UTF-8"); \
|
||||||
@ -4730,6 +4751,9 @@ void Td::answer_ok_query(uint64 id, Status status) {
|
|||||||
*request_actors_.get(slot_id) = create_actor<name>(#name, actor_shared(this, slot_id), id, __VA_ARGS__);
|
*request_actors_.get(slot_id) = create_actor<name>(#name, actor_shared(this, slot_id), id, __VA_ARGS__);
|
||||||
#define CREATE_REQUEST_PROMISE(name) \
|
#define CREATE_REQUEST_PROMISE(name) \
|
||||||
auto name = create_request_promise<std::decay_t<decltype(request)>::ReturnType>(id);
|
auto name = create_request_promise<std::decay_t<decltype(request)>::ReturnType>(id);
|
||||||
|
#define CREATE_OK_REQUEST_PROMISE(name) \
|
||||||
|
static_assert(std::is_same<std::decay_t<decltype(request)>::ReturnType, td_api::object_ptr<td_api::ok>>::value, ""); \
|
||||||
|
auto name = create_ok_request_promise(id);
|
||||||
|
|
||||||
Status Td::fix_parameters(TdParameters ¶meters) {
|
Status Td::fix_parameters(TdParameters ¶meters) {
|
||||||
if (parameters.database_directory.empty()) {
|
if (parameters.database_directory.empty()) {
|
||||||
@ -4872,15 +4896,8 @@ void Td::on_request(uint64 id, const td_api::checkDatabaseEncryptionKey &request
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::setDatabaseEncryptionKey &request) {
|
void Td::on_request(uint64 id, td_api::setDatabaseEncryptionKey &request) {
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
G()->td_db()->get_binlog()->change_key(as_db_key(std::move(request.new_encryption_key_)), std::move(promise));
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
G()->td_db()->get_binlog()->change_key(as_db_key(std::move(request.new_encryption_key_)), std::move(query_promise));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::getAuthorizationState &request) {
|
void Td::on_request(uint64 id, const td_api::getAuthorizationState &request) {
|
||||||
@ -5013,23 +5030,15 @@ void Td::on_request(uint64 id, td_api::createTemporaryPassword &request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::processDcUpdate &request) {
|
void Td::on_request(uint64 id, td_api::processDcUpdate &request) {
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
|
||||||
CLEAN_INPUT_STRING(request.dc_);
|
CLEAN_INPUT_STRING(request.dc_);
|
||||||
CLEAN_INPUT_STRING(request.addr_);
|
CLEAN_INPUT_STRING(request.addr_);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
auto dc_id_raw = to_integer<int32>(request.dc_);
|
auto dc_id_raw = to_integer<int32>(request.dc_);
|
||||||
if (!DcId::is_valid(dc_id_raw)) {
|
if (!DcId::is_valid(dc_id_raw)) {
|
||||||
promise.set_error(Status::Error("Invalid dc id"));
|
return promise.set_error(Status::Error("Invalid dc id"));
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
send_closure(G()->connection_creator(), &ConnectionCreator::on_dc_update, DcId::internal(dc_id_raw), request.addr_,
|
send_closure(G()->connection_creator(), &ConnectionCreator::on_dc_update, DcId::internal(dc_id_raw), request.addr_,
|
||||||
std::move(query_promise));
|
std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::registerDevice &request) {
|
void Td::on_request(uint64 id, td_api::registerDevice &request) {
|
||||||
@ -5038,7 +5047,6 @@ void Td::on_request(uint64 id, td_api::registerDevice &request) {
|
|||||||
if (request.device_token_ == nullptr) {
|
if (request.device_token_ == nullptr) {
|
||||||
return send_error_raw(id, 400, "Device token should not be empty");
|
return send_error_raw(id, 400, "Device token should not be empty");
|
||||||
}
|
}
|
||||||
|
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_REQUEST_PROMISE(promise);
|
||||||
send_closure(device_token_manager_, &DeviceTokenManager::register_device, std::move(request.device_token_),
|
send_closure(device_token_manager_, &DeviceTokenManager::register_device, std::move(request.device_token_),
|
||||||
std::move(request.other_user_ids_), std::move(promise));
|
std::move(request.other_user_ids_), std::move(promise));
|
||||||
@ -5307,13 +5315,12 @@ void Td::on_request(uint64 id, td_api::getNetworkStatistics &request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::resetNetworkStatistics &request) {
|
void Td::on_request(uint64 id, td_api::resetNetworkStatistics &request) {
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
send_closure(net_stats_manager_, &NetStatsManager::reset_network_stats);
|
send_closure(net_stats_manager_, &NetStatsManager::reset_network_stats);
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::addNetworkStatistics &request) {
|
void Td::on_request(uint64 id, td_api::addNetworkStatistics &request) {
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
|
||||||
if (request.entry_ == nullptr) {
|
if (request.entry_ == nullptr) {
|
||||||
return send_error_raw(id, 400, "Network statistics entry should not be empty");
|
return send_error_raw(id, 400, "Network statistics entry should not be empty");
|
||||||
}
|
}
|
||||||
@ -5365,9 +5372,9 @@ void Td::on_request(uint64 id, td_api::addNetworkStatistics &request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::setNetworkType &request) {
|
void Td::on_request(uint64 id, td_api::setNetworkType &request) {
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
send_closure(state_manager_, &StateManager::on_network, from_td_api(request.type_));
|
send_closure(state_manager_, &StateManager::on_network, from_td_api(request.type_));
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::getTopChats &request) {
|
void Td::on_request(uint64 id, td_api::getTopChats &request) {
|
||||||
@ -5880,66 +5887,38 @@ void Td::on_request(uint64 id, td_api::createCall &request) {
|
|||||||
void Td::on_request(uint64 id, td_api::discardCall &request) {
|
void Td::on_request(uint64 id, td_api::discardCall &request) {
|
||||||
CHECK_AUTH();
|
CHECK_AUTH();
|
||||||
CHECK_IS_USER();
|
CHECK_IS_USER();
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(G()->call_manager(), &CallManager::discard_call, CallId(request.call_id_), request.is_disconnected_,
|
send_closure(G()->call_manager(), &CallManager::discard_call, CallId(request.call_id_), request.is_disconnected_,
|
||||||
request.duration_, request.connection_id_, std::move(query_promise));
|
request.duration_, request.connection_id_, std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::acceptCall &request) {
|
void Td::on_request(uint64 id, td_api::acceptCall &request) {
|
||||||
CHECK_AUTH();
|
CHECK_AUTH();
|
||||||
CHECK_IS_USER();
|
CHECK_IS_USER();
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (!request.protocol_) {
|
if (!request.protocol_) {
|
||||||
return query_promise.set_error(Status::Error(5, "Call protocol must not be empty"));
|
return promise.set_error(Status::Error(5, "Call protocol must not be empty"));
|
||||||
}
|
}
|
||||||
send_closure(G()->call_manager(), &CallManager::accept_call, CallId(request.call_id_),
|
send_closure(G()->call_manager(), &CallManager::accept_call, CallId(request.call_id_),
|
||||||
CallProtocol::from_td_api(*request.protocol_), std::move(query_promise));
|
CallProtocol::from_td_api(*request.protocol_), std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::sendCallRating &request) {
|
void Td::on_request(uint64 id, td_api::sendCallRating &request) {
|
||||||
CHECK_AUTH();
|
CHECK_AUTH();
|
||||||
CHECK_IS_USER();
|
CHECK_IS_USER();
|
||||||
CLEAN_INPUT_STRING(request.comment_);
|
CLEAN_INPUT_STRING(request.comment_);
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(G()->call_manager(), &CallManager::rate_call, CallId(request.call_id_), request.rating_,
|
send_closure(G()->call_manager(), &CallManager::rate_call, CallId(request.call_id_), request.rating_,
|
||||||
std::move(request.comment_), std::move(query_promise));
|
std::move(request.comment_), std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::sendCallDebugInformation &request) {
|
void Td::on_request(uint64 id, td_api::sendCallDebugInformation &request) {
|
||||||
CHECK_AUTH();
|
CHECK_AUTH();
|
||||||
CHECK_IS_USER();
|
CHECK_IS_USER();
|
||||||
CLEAN_INPUT_STRING(request.debug_information_);
|
CLEAN_INPUT_STRING(request.debug_information_);
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(G()->call_manager(), &CallManager::send_call_debug_information, CallId(request.call_id_),
|
send_closure(G()->call_manager(), &CallManager::send_call_debug_information, CallId(request.call_id_),
|
||||||
std::move(request.debug_information_), std::move(query_promise));
|
std::move(request.debug_information_), std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::upgradeBasicGroupChatToSupergroupChat &request) {
|
void Td::on_request(uint64 id, const td_api::upgradeBasicGroupChatToSupergroupChat &request) {
|
||||||
@ -6104,16 +6083,9 @@ void Td::on_request(uint64 id, const td_api::cancelUploadFile &request) {
|
|||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::setFileGenerationProgress &request) {
|
void Td::on_request(uint64 id, const td_api::setFileGenerationProgress &request) {
|
||||||
CHECK_AUTH();
|
CHECK_AUTH();
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(file_manager_actor_, &FileManager::external_file_generate_progress, request.generation_id_,
|
send_closure(file_manager_actor_, &FileManager::external_file_generate_progress, request.generation_id_,
|
||||||
request.expected_size_, request.local_prefix_size_, std::move(query_promise));
|
request.expected_size_, request.local_prefix_size_, std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::finishFileGeneration &request) {
|
void Td::on_request(uint64 id, td_api::finishFileGeneration &request) {
|
||||||
@ -6123,30 +6095,15 @@ void Td::on_request(uint64 id, td_api::finishFileGeneration &request) {
|
|||||||
CLEAN_INPUT_STRING(request.error_->message_);
|
CLEAN_INPUT_STRING(request.error_->message_);
|
||||||
status = Status::Error(request.error_->code_, request.error_->message_);
|
status = Status::Error(request.error_->code_, request.error_->message_);
|
||||||
}
|
}
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(file_manager_actor_, &FileManager::external_file_generate_finish, request.generation_id_,
|
send_closure(file_manager_actor_, &FileManager::external_file_generate_finish, request.generation_id_,
|
||||||
std::move(status), std::move(query_promise));
|
std::move(status), std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::deleteFile &request) {
|
void Td::on_request(uint64 id, const td_api::deleteFile &request) {
|
||||||
CHECK_AUTH();
|
CHECK_AUTH();
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
send_closure(file_manager_actor_, &FileManager::delete_file, FileId(request.file_id_, 0), std::move(promise),
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
send_closure(file_manager_actor_, &FileManager::delete_file, FileId(request.file_id_, 0), std::move(query_promise),
|
|
||||||
"td_api::deleteFile");
|
"td_api::deleteFile");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6340,16 +6297,9 @@ void Td::on_request(uint64 id, const td_api::deleteSupergroup &request) {
|
|||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::closeSecretChat &request) {
|
void Td::on_request(uint64 id, td_api::closeSecretChat &request) {
|
||||||
CHECK_AUTH();
|
CHECK_AUTH();
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(secret_chats_manager_, &SecretChatsManager::cancel_chat, SecretChatId(request.secret_chat_id_),
|
send_closure(secret_chats_manager_, &SecretChatsManager::cancel_chat, SecretChatId(request.secret_chat_id_),
|
||||||
std::move(query_promise));
|
std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::getStickers &request) {
|
void Td::on_request(uint64 id, td_api::getStickers &request) {
|
||||||
@ -6876,16 +6826,9 @@ void Td::on_request(uint64 id, const td_api::deletePassportData &request) {
|
|||||||
if (request.type_ == nullptr) {
|
if (request.type_ == nullptr) {
|
||||||
return send_error_raw(id, 400, "Type must not be empty");
|
return send_error_raw(id, 400, "Type must not be empty");
|
||||||
}
|
}
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(secure_manager_, &SecureManager::delete_secure_value, get_secure_value_type_td_api(request.type_),
|
send_closure(secure_manager_, &SecureManager::delete_secure_value, get_secure_value_type_td_api(request.type_),
|
||||||
std::move(query_promise));
|
std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::sendPhoneNumberVerificationCode &request) {
|
void Td::on_request(uint64 id, td_api::sendPhoneNumberVerificationCode &request) {
|
||||||
@ -6964,16 +6907,9 @@ void Td::on_request(uint64 id, td_api::sendPassportAuthorizationForm &request) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(secure_manager_, &SecureManager::send_passport_authorization_form, request.password_,
|
send_closure(secure_manager_, &SecureManager::send_passport_authorization_form, request.password_,
|
||||||
request.autorization_form_id_, get_secure_value_types_td_api(request.types_), std::move(query_promise));
|
request.autorization_form_id_, get_secure_value_types_td_api(request.types_), std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::getSupportUser &request) {
|
void Td::on_request(uint64 id, const td_api::getSupportUser &request) {
|
||||||
@ -7049,15 +6985,8 @@ void Td::on_request(uint64 id, td_api::removeRecentHashtag &request) {
|
|||||||
CHECK_AUTH();
|
CHECK_AUTH();
|
||||||
CHECK_IS_USER();
|
CHECK_IS_USER();
|
||||||
CLEAN_INPUT_STRING(request.hashtag_);
|
CLEAN_INPUT_STRING(request.hashtag_);
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result<> result) mutable {
|
send_closure(hashtag_hints_, &HashtagHints::remove_hashtag, std::move(request.hashtag_), std::move(promise));
|
||||||
if (result.is_error()) {
|
|
||||||
promise.set_error(result.move_as_error());
|
|
||||||
} else {
|
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
send_closure(hashtag_hints_, &HashtagHints::remove_hashtag, std::move(request.hashtag_), std::move(query_promise));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::getCountryCode &request) {
|
void Td::on_request(uint64 id, const td_api::getCountryCode &request) {
|
||||||
@ -7087,9 +7016,9 @@ void Td::on_request(uint64 id, const td_api::getProxy &request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::setProxy &request) {
|
void Td::on_request(uint64 id, const td_api::setProxy &request) {
|
||||||
CREATE_REQUEST_PROMISE(promise);
|
CREATE_OK_REQUEST_PROMISE(promise);
|
||||||
send_closure(G()->connection_creator(), &ConnectionCreator::set_proxy, Proxy::from_td_api(request.proxy_));
|
send_closure(G()->connection_creator(), &ConnectionCreator::set_proxy, Proxy::from_td_api(request.proxy_));
|
||||||
promise.set_value(make_tl_object<td_api::ok>());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::getTextEntities &request) {
|
void Td::on_request(uint64 id, const td_api::getTextEntities &request) {
|
||||||
@ -7222,6 +7151,7 @@ void Td::on_request(uint64 id, td_api::testCallVectorStringObject &request) {
|
|||||||
#undef CREATE_NO_ARGS_REQUEST
|
#undef CREATE_NO_ARGS_REQUEST
|
||||||
#undef CREATE_REQUEST
|
#undef CREATE_REQUEST
|
||||||
#undef CREATE_REQUEST_PROMISE
|
#undef CREATE_REQUEST_PROMISE
|
||||||
|
#undef CREATE_OK_REQUEST_PROMISE
|
||||||
|
|
||||||
constexpr const char *Td::TDLIB_VERSION;
|
constexpr const char *Td::TDLIB_VERSION;
|
||||||
|
|
||||||
|
@ -278,15 +278,9 @@ class Td final : public NetQueryCallback {
|
|||||||
std::shared_ptr<UploadFileCallback> upload_file_callback_;
|
std::shared_ptr<UploadFileCallback> upload_file_callback_;
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
auto create_request_promise(uint64 id) {
|
Promise<T> create_request_promise(uint64 id);
|
||||||
return PromiseCreator::lambda([id = id, actor_id = actor_id(this)](Result<T> r_state) {
|
|
||||||
if (r_state.is_error()) {
|
Promise<Unit> create_ok_request_promise(uint64 id);
|
||||||
send_closure(actor_id, &Td::send_error, id, r_state.move_as_error());
|
|
||||||
} else {
|
|
||||||
send_closure(actor_id, &Td::send_result, id, r_state.move_as_ok());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void on_request(uint64 id, const T &request) = delete;
|
void on_request(uint64 id, const T &request) = delete;
|
||||||
|
Reference in New Issue
Block a user