1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-02-15 04:32:21 +00:00

Put back LastConfig callback.

This commit is contained in:
dungeon-master-666 2022-05-14 22:27:03 +02:00
parent d4fc3dfe7f
commit a973a51a87
3 changed files with 18 additions and 3 deletions

View file

@ -39,7 +39,7 @@ td::StringBuilder& operator<<(td::StringBuilder& sb, const LastConfigState& stat
return sb; return sb;
} }
LastConfig::LastConfig(ExtClientRef client) { LastConfig::LastConfig(ExtClientRef client, td::unique_ptr<Callback> callback) : callback_(std::move(callback)) {
client_.set_client(client); client_.set_client(client);
VLOG(last_block) << "State: " << state_; VLOG(last_block) << "State: " << state_;
} }

View file

@ -36,10 +36,17 @@ td::StringBuilder& operator<<(td::StringBuilder& sb, const LastConfigState& stat
class LastConfig : public td::actor::Actor { class LastConfig : public td::actor::Actor {
public: public:
explicit LastConfig(ExtClientRef client); class Callback {
public:
virtual ~Callback() {
}
};
explicit LastConfig(ExtClientRef client, td::unique_ptr<Callback> callback);
void get_last_config(td::Promise<LastConfigState> promise); void get_last_config(td::Promise<LastConfigState> promise);
private: private:
td::unique_ptr<Callback> callback_;
ExtClient client_; ExtClient client_;
LastConfigState state_; LastConfigState state_;

View file

@ -1439,9 +1439,17 @@ void TonlibClient::init_last_block(LastBlockState state) {
} }
void TonlibClient::init_last_config() { void TonlibClient::init_last_config() {
ref_cnt_++; ref_cnt_++;
class Callback : public LastConfig::Callback {
public:
Callback(td::actor::ActorShared<TonlibClient> client) : client_(std::move(client)) {
}
private:
td::actor::ActorShared<TonlibClient> client_;
};
raw_last_config_ = raw_last_config_ =
td::actor::create_actor<LastConfig>(td::actor::ActorOptions().with_name("LastConfig").with_poll(false), td::actor::create_actor<LastConfig>(td::actor::ActorOptions().with_name("LastConfig").with_poll(false),
get_client_ref()); get_client_ref(), td::make_unique<Callback>(td::actor::actor_shared(this)));
} }
void TonlibClient::on_result(td::uint64 id, tonlib_api::object_ptr<tonlib_api::Object> response) { void TonlibClient::on_result(td::uint64 id, tonlib_api::object_ptr<tonlib_api::Object> response) {