Use free-standing function to create event promises.
This commit is contained in:
parent
aa97336963
commit
513da45a8f
@ -364,7 +364,7 @@ void DeviceTokenManager::save_info(int32 token_type) {
|
||||
}
|
||||
sync_cnt_++;
|
||||
G()->td_db()->get_binlog_pmc()->force_sync(
|
||||
PromiseCreator::event(self_closure(this, &DeviceTokenManager::dec_sync_cnt)));
|
||||
create_event_promise(self_closure(this, &DeviceTokenManager::dec_sync_cnt)));
|
||||
}
|
||||
|
||||
void DeviceTokenManager::dec_sync_cnt() {
|
||||
|
@ -128,7 +128,7 @@ void StateManager::on_network_soft() {
|
||||
}
|
||||
|
||||
void StateManager::start_up() {
|
||||
create_actor<SleepActor>("SleepActor", 1, PromiseCreator::event(self_closure(this, &StateManager::on_network_soft)))
|
||||
create_actor<SleepActor>("SleepActor", 1, create_event_promise(self_closure(this, &StateManager::on_network_soft)))
|
||||
.release();
|
||||
loop();
|
||||
}
|
||||
|
@ -587,7 +587,7 @@ void TopDialogManager::try_start() {
|
||||
db_sync_state_ = SyncState::Ok;
|
||||
|
||||
send_closure(G()->state_manager(), &StateManager::wait_first_sync,
|
||||
PromiseCreator::event(self_closure(this, &TopDialogManager::on_first_sync)));
|
||||
create_event_promise(self_closure(this, &TopDialogManager::on_first_sync)));
|
||||
}
|
||||
|
||||
void TopDialogManager::on_first_sync() {
|
||||
|
@ -372,12 +372,12 @@ void UpdatesManager::before_get_difference(bool is_initial) {
|
||||
|
||||
Promise<> UpdatesManager::add_pts(int32 pts) {
|
||||
auto id = pts_manager_.add_pts(pts);
|
||||
return PromiseCreator::event(self_closure(this, &UpdatesManager::on_pts_ack, id));
|
||||
return create_event_promise(self_closure(this, &UpdatesManager::on_pts_ack, id));
|
||||
}
|
||||
|
||||
Promise<> UpdatesManager::add_qts(int32 qts) {
|
||||
auto id = qts_manager_.add_pts(qts);
|
||||
return PromiseCreator::event(self_closure(this, &UpdatesManager::on_qts_ack, id));
|
||||
return create_event_promise(self_closure(this, &UpdatesManager::on_qts_ack, id));
|
||||
}
|
||||
|
||||
void UpdatesManager::on_pts_ack(PtsManager::PtsId ack_token) {
|
||||
@ -1923,7 +1923,7 @@ void UpdatesManager::on_pending_updates(vector<tl_object_ptr<telegram_api::Updat
|
||||
|
||||
if (!use_mpas && update_count == 1) {
|
||||
// still need to process the only update
|
||||
lock = std::move(promise); // now we can use lock as the last promise
|
||||
lock = std::move(promise); // now we can use lock as the last promise
|
||||
update_count = 0;
|
||||
}
|
||||
if (need_postpone || running_get_difference_) {
|
||||
|
@ -399,6 +399,14 @@ class JoinPromise final : public PromiseInterface<Unit> {
|
||||
};
|
||||
} // namespace detail
|
||||
|
||||
inline Promise<Unit> create_event_promise(EventFull &&ok) {
|
||||
return Promise<Unit>(td::make_unique<detail::EventPromise>(std::move(ok)));
|
||||
}
|
||||
|
||||
inline Promise<Unit> create_event_promise(EventFull ok, EventFull fail) {
|
||||
return Promise<Unit>(td::make_unique<detail::EventPromise>(std::move(ok), std::move(fail)));
|
||||
}
|
||||
|
||||
class SendClosure {
|
||||
public:
|
||||
template <class... ArgsT>
|
||||
@ -663,14 +671,6 @@ class PromiseCreator {
|
||||
std::move(cancellation_token), std::forward<OkT>(ok)));
|
||||
}
|
||||
|
||||
static Promise<> event(EventFull &&ok) {
|
||||
return Promise<>(td::make_unique<detail::EventPromise>(std::move(ok)));
|
||||
}
|
||||
|
||||
static Promise<> event(EventFull ok, EventFull fail) {
|
||||
return Promise<>(td::make_unique<detail::EventPromise>(std::move(ok), std::move(fail)));
|
||||
}
|
||||
|
||||
template <class... ArgsT>
|
||||
static Promise<> join(ArgsT &&...args) {
|
||||
return Promise<>(td::make_unique<detail::JoinPromise<ArgsT...>>(std::forward<ArgsT>(args)...));
|
||||
|
@ -691,12 +691,12 @@ class LoginTestActor final : public td::Actor {
|
||||
td::send_closure(alice_, &TestClient::add_listener,
|
||||
td::make_unique<DoAuthentication>(
|
||||
"alice", alice_phone_, "33333",
|
||||
td::PromiseCreator::event(self_closure(this, &LoginTestActor::start_up_fence_dec))));
|
||||
td::create_event_promise(self_closure(this, &LoginTestActor::start_up_fence_dec))));
|
||||
|
||||
td::send_closure(bob_, &TestClient::add_listener,
|
||||
td::make_unique<DoAuthentication>(
|
||||
"bob", bob_phone_, "33333",
|
||||
td::PromiseCreator::event(self_closure(this, &LoginTestActor::start_up_fence_dec))));
|
||||
td::create_event_promise(self_closure(this, &LoginTestActor::start_up_fence_dec))));
|
||||
}
|
||||
|
||||
int start_up_fence_ = 3;
|
||||
@ -722,18 +722,18 @@ class LoginTestActor final : public td::Actor {
|
||||
td::Promise<> promise_;
|
||||
};
|
||||
td::create_actor<WaitActor>("WaitActor", 2,
|
||||
td::PromiseCreator::event(self_closure(this, &LoginTestActor::start_up_fence_dec)))
|
||||
td::create_event_promise(self_closure(this, &LoginTestActor::start_up_fence_dec)))
|
||||
.release();
|
||||
}
|
||||
}
|
||||
|
||||
void init() {
|
||||
td::send_closure(alice_, &TestClient::add_listener,
|
||||
td::make_unique<SetUsername>(alice_username_, td::PromiseCreator::event(self_closure(
|
||||
td::make_unique<SetUsername>(alice_username_, td::create_event_promise(self_closure(
|
||||
this, &LoginTestActor::init_fence_dec))));
|
||||
td::send_closure(bob_, &TestClient::add_listener,
|
||||
td::make_unique<SetUsername>(bob_username_, td::PromiseCreator::event(self_closure(
|
||||
this, &LoginTestActor::init_fence_dec))));
|
||||
td::make_unique<SetUsername>(
|
||||
bob_username_, td::create_event_promise(self_closure(this, &LoginTestActor::init_fence_dec))));
|
||||
}
|
||||
|
||||
int init_fence_ = 2;
|
||||
@ -757,10 +757,10 @@ class LoginTestActor final : public td::Actor {
|
||||
|
||||
td::send_closure(bob_, &TestClient::add_listener,
|
||||
td::make_unique<CheckTestA>(
|
||||
alice_tag, td::PromiseCreator::event(self_closure(this, &LoginTestActor::test_a_fence))));
|
||||
alice_tag, td::create_event_promise(self_closure(this, &LoginTestActor::test_a_fence))));
|
||||
td::send_closure(alice_, &TestClient::add_listener,
|
||||
td::make_unique<CheckTestA>(
|
||||
bob_tag, td::PromiseCreator::event(self_closure(this, &LoginTestActor::test_a_fence))));
|
||||
bob_tag, td::create_event_promise(self_closure(this, &LoginTestActor::test_a_fence))));
|
||||
|
||||
td::send_closure(alice_, &TestClient::add_listener, td::make_unique<TestA>(alice_tag, bob_username_));
|
||||
td::send_closure(bob_, &TestClient::add_listener, td::make_unique<TestA>(bob_tag, alice_username_));
|
||||
@ -791,7 +791,7 @@ class LoginTestActor final : public td::Actor {
|
||||
|
||||
td::send_closure(
|
||||
bob_, &TestClient::add_listener,
|
||||
td::make_unique<CheckTestA>(tag, td::PromiseCreator::event(self_closure(this, &LoginTestActor::test_b_fence))));
|
||||
td::make_unique<CheckTestA>(tag, td::create_event_promise(self_closure(this, &LoginTestActor::test_b_fence))));
|
||||
td::send_closure(alice_, &TestClient::add_listener, td::make_unique<TestSecretChat>(tag, bob_username_));
|
||||
}
|
||||
|
||||
@ -802,7 +802,7 @@ class LoginTestActor final : public td::Actor {
|
||||
td::send_closure(
|
||||
bob_, &TestClient::add_listener,
|
||||
td::make_unique<CheckTestC>(alice_username_, tag,
|
||||
td::PromiseCreator::event(self_closure(this, &LoginTestActor::test_c_fence))));
|
||||
td::create_event_promise(self_closure(this, &LoginTestActor::test_c_fence))));
|
||||
td::send_closure(alice_, &TestClient::add_listener, td::make_unique<TestFileGenerated>(tag, bob_username_));
|
||||
}
|
||||
|
||||
@ -817,9 +817,9 @@ class LoginTestActor final : public td::Actor {
|
||||
|
||||
void finish() {
|
||||
td::send_closure(alice_, &TestClient::close,
|
||||
td::PromiseCreator::event(self_closure(this, &LoginTestActor::finish_fence)));
|
||||
td::create_event_promise(self_closure(this, &LoginTestActor::finish_fence)));
|
||||
td::send_closure(bob_, &TestClient::close,
|
||||
td::PromiseCreator::event(self_closure(this, &LoginTestActor::finish_fence)));
|
||||
td::create_event_promise(self_closure(this, &LoginTestActor::finish_fence)));
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user