diff --git a/CMakeLists.txt b/CMakeLists.txt index cefedd703..298a1f679 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -296,6 +296,7 @@ set(TDLIB_SOURCE td/telegram/BackgroundInfo.cpp td/telegram/BackgroundManager.cpp td/telegram/BackgroundType.cpp + td/telegram/BoostManager.cpp td/telegram/BotCommand.cpp td/telegram/BotCommandScope.cpp td/telegram/BotInfoManager.cpp @@ -555,6 +556,7 @@ set(TDLIB_SOURCE td/telegram/BackgroundManager.h td/telegram/BackgroundType.h td/telegram/BlockListId.h + td/telegram/BoostManager.h td/telegram/BotCommand.h td/telegram/BotCommandScope.h td/telegram/BotInfoManager.h diff --git a/SplitSource.php b/SplitSource.php index 9a4522d5a..36859e4ce 100644 --- a/SplitSource.php +++ b/SplitSource.php @@ -283,6 +283,7 @@ function split_file($file, $chunks, $undo) { 'auth_manager[_(-][^.]|AuthManager' => 'AuthManager', 'autosave_manager[_(-][^.]|AutosaveManager' => 'AutosaveManager', 'background_manager[_(-][^.]|BackgroundManager' => "BackgroundManager", + 'boost_manager[_(-][^.]|BoostManager' => "BoostManager", 'bot_info_manager[_(-][^.]|BotInfoManager' => "BotInfoManager", 'contacts_manager[_(-][^.]|ContactsManager([^ ;.]| [^*])' => 'ContactsManager', 'country_info_manager[_(-][^.]|CountryInfoManager' => 'CountryInfoManager', diff --git a/td/telegram/BoostManager.cpp b/td/telegram/BoostManager.cpp new file mode 100644 index 000000000..ff9885444 --- /dev/null +++ b/td/telegram/BoostManager.cpp @@ -0,0 +1,18 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023 +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +#include "td/telegram/BoostManager.h" + +namespace td { + +BoostManager::BoostManager(Td *td, ActorShared<> parent) : td_(td), parent_(std::move(parent)) { +} + +void BoostManager::tear_down() { + parent_.reset(); +} + +} // namespace td diff --git a/td/telegram/BoostManager.h b/td/telegram/BoostManager.h new file mode 100644 index 000000000..fa3b99458 --- /dev/null +++ b/td/telegram/BoostManager.h @@ -0,0 +1,28 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023 +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +#pragma once + +#include "td/actor/actor.h" + +#include "td/utils/common.h" + +namespace td { + +class Td; + +class BoostManager final : public Actor { + public: + BoostManager(Td *td, ActorShared<> parent); + + private: + void tear_down() final; + + Td *td_; + ActorShared<> parent_; +}; + +} // namespace td diff --git a/td/telegram/Global.h b/td/telegram/Global.h index b2536469e..2cece6dc3 100644 --- a/td/telegram/Global.h +++ b/td/telegram/Global.h @@ -36,6 +36,7 @@ class AttachMenuManager; class AuthManager; class AutosaveManager; class BackgroundManager; +class BoostManager; class CallManager; class ConfigManager; class ConnectionCreator; @@ -214,6 +215,13 @@ class Global final : public ActorContext { background_manager_ = background_manager; } + ActorId boost_manager() const { + return boost_manager_; + } + void set_boost_manager(ActorId boost_manager) { + boost_manager_ = boost_manager; + } + ActorId call_manager() const { return call_manager_; } @@ -521,6 +529,7 @@ class Global final : public ActorContext { ActorId auth_manager_; ActorId autosave_manager_; ActorId background_manager_; + ActorId boost_manager_; ActorId call_manager_; ActorId config_manager_; ActorId contacts_manager_; diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index fa4734738..c7dccf63b 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -17,6 +17,7 @@ #include "td/telegram/BackgroundId.h" #include "td/telegram/BackgroundManager.h" #include "td/telegram/BackgroundType.h" +#include "td/telegram/BoostManager.h" #include "td/telegram/BotCommand.h" #include "td/telegram/BotInfoManager.h" #include "td/telegram/BotMenuButton.h" @@ -3272,6 +3273,8 @@ void Td::dec_actor_refcnt() { LOG(DEBUG) << "AutosaveManager was cleared" << timer; background_manager_.reset(); LOG(DEBUG) << "BackgroundManager was cleared" << timer; + boost_manager_.reset(); + LOG(DEBUG) << "BoostManager was cleared" << timer; bot_info_manager_.reset(); LOG(DEBUG) << "BotInfoManager was cleared" << timer; callback_queries_manager_.reset(); @@ -3481,6 +3484,8 @@ void Td::clear() { LOG(DEBUG) << "AutosaveManager actor was cleared" << timer; background_manager_actor_.reset(); LOG(DEBUG) << "BackgroundManager actor was cleared" << timer; + boost_manager_actor_.reset(); + LOG(DEBUG) << "BoostManager actor was cleared" << timer; bot_info_manager_actor_.reset(); LOG(DEBUG) << "BotInfoManager actor was cleared" << timer; contacts_manager_actor_.reset(); @@ -3966,6 +3971,9 @@ void Td::init_managers() { background_manager_ = make_unique(this, create_reference()); background_manager_actor_ = register_actor("BackgroundManager", background_manager_.get()); G()->set_background_manager(background_manager_actor_.get()); + boost_manager_ = make_unique(this, create_reference()); + boost_manager_actor_ = register_actor("BoostManager", boost_manager_.get()); + G()->set_boost_manager(boost_manager_actor_.get()); bot_info_manager_ = make_unique(this, create_reference()); bot_info_manager_actor_ = register_actor("BotInfoManager", bot_info_manager_.get()); contacts_manager_ = make_unique(this, create_reference()); diff --git a/td/telegram/Td.h b/td/telegram/Td.h index cc5aac02a..3afed1e2b 100644 --- a/td/telegram/Td.h +++ b/td/telegram/Td.h @@ -44,6 +44,7 @@ class AudiosManager; class AuthManager; class AutosaveManager; class BackgroundManager; +class BoostManager; class BotInfoManager; class CallManager; class CallbackQueriesManager; @@ -162,6 +163,8 @@ class Td final : public Actor { ActorOwn autosave_manager_actor_; unique_ptr background_manager_; ActorOwn background_manager_actor_; + unique_ptr boost_manager_; + ActorOwn boost_manager_actor_; unique_ptr bot_info_manager_; ActorOwn bot_info_manager_actor_; unique_ptr contacts_manager_;