From 191b4ee5d55c49f6824ac65704ec1f878e43204e Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 16 Dec 2021 01:09:59 +0300 Subject: [PATCH] Add empty OptionManager. --- CMakeLists.txt | 2 ++ SplitSource.php | 1 + td/telegram/OptionManager.cpp | 20 ++++++++++++++++++++ td/telegram/OptionManager.h | 34 ++++++++++++++++++++++++++++++++++ td/telegram/Td.cpp | 9 ++++++++- td/telegram/Td.h | 3 +++ 6 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 td/telegram/OptionManager.cpp create mode 100644 td/telegram/OptionManager.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c36803e6..56b77d61a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -385,6 +385,7 @@ set(TDLIB_SOURCE td/telegram/NotificationManager.cpp td/telegram/NotificationSettings.cpp td/telegram/NotificationType.cpp + td/telegram/OptionManager.cpp td/telegram/Payments.cpp td/telegram/PasswordManager.cpp td/telegram/PhoneNumberManager.cpp @@ -599,6 +600,7 @@ set(TDLIB_SOURCE td/telegram/NotificationManager.h td/telegram/NotificationSettings.h td/telegram/NotificationType.h + td/telegram/OptionManager.h td/telegram/PasswordManager.h td/telegram/Payments.h td/telegram/PhoneNumberManager.h diff --git a/SplitSource.php b/SplitSource.php index 9ba0e74e7..1000b88ac 100644 --- a/SplitSource.php +++ b/SplitSource.php @@ -297,6 +297,7 @@ function split_file($file, $chunks, $undo) { 'MessageCopyOptions' => 'MessageCopyOptions', 'messages_manager[_(-][^.]|MessagesManager' => 'MessagesManager', 'notification_manager[_(-][^.]|NotificationManager|notifications[)]' => 'NotificationManager', + 'option_manager[_(-][^.]|OptionManager' => "OptionManager", 'phone_number_manager[_(-][^.]|PhoneNumberManager' => "PhoneNumberManager", 'poll_manager[_(-][^.]|PollManager' => "PollManager", 'PublicDialogType|get_public_dialog_type' => 'PublicDialogType', diff --git a/td/telegram/OptionManager.cpp b/td/telegram/OptionManager.cpp new file mode 100644 index 000000000..bf42caeb4 --- /dev/null +++ b/td/telegram/OptionManager.cpp @@ -0,0 +1,20 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2021 +// +// 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/OptionManager.h" + +namespace td { + +OptionManager::OptionManager(Td *td, ActorShared<> parent) : td_(td), parent_(std::move(parent)) { +} + +void OptionManager::tear_down() { + parent_.reset(); +} + +OptionManager::~OptionManager() = default; + +} // namespace td diff --git a/td/telegram/OptionManager.h b/td/telegram/OptionManager.h new file mode 100644 index 000000000..dd1451986 --- /dev/null +++ b/td/telegram/OptionManager.h @@ -0,0 +1,34 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2021 +// +// 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 OptionManager final : public Actor { + public: + OptionManager(Td *td, ActorShared<> parent); + + OptionManager(const OptionManager &) = delete; + OptionManager &operator=(const OptionManager &) = delete; + OptionManager(OptionManager &&) = delete; + OptionManager &operator=(OptionManager &&) = delete; + ~OptionManager() final; + + private: + void tear_down() final; + + Td *td_; + ActorShared<> parent_; +}; + +} // namespace td diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 276132c23..0cb984a42 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -80,6 +80,7 @@ #include "td/telegram/NotificationId.h" #include "td/telegram/NotificationManager.h" #include "td/telegram/NotificationSettings.h" +#include "td/telegram/OptionManager.h" #include "td/telegram/PasswordManager.h" #include "td/telegram/Payments.h" #include "td/telegram/PhoneNumberManager.h" @@ -3556,6 +3557,8 @@ void Td::dec_actor_refcnt() { LOG(DEBUG) << "MessagesManager was cleared" << timer; notification_manager_.reset(); LOG(DEBUG) << "NotificationManager was cleared" << timer; + option_manager_.reset(); + LOG(DEBUG) << "OptionManager was cleared" << timer; poll_manager_.reset(); LOG(DEBUG) << "PollManager was cleared" << timer; sponsored_message_manager_.reset(); @@ -3746,6 +3749,8 @@ void Td::clear() { LOG(DEBUG) << "MessagesManager actor was cleared" << timer; notification_manager_actor_.reset(); LOG(DEBUG) << "NotificationManager actor was cleared" << timer; + option_manager_actor_.reset(); + LOG(DEBUG) << "OptionManager actor was cleared" << timer; poll_manager_actor_.reset(); LOG(DEBUG) << "PollManager actor was cleared" << timer; sponsored_message_manager_actor_.reset(); @@ -4209,9 +4214,11 @@ void Td::init_managers() { G()->set_messages_manager(messages_manager_actor_.get()); notification_manager_ = make_unique(this, create_reference()); notification_manager_actor_ = register_actor("NotificationManager", notification_manager_.get()); + G()->set_notification_manager(notification_manager_actor_.get()); + option_manager_ = make_unique(this, create_reference()); + option_manager_actor_ = register_actor("OptionManager", option_manager_.get()); poll_manager_ = make_unique(this, create_reference()); poll_manager_actor_ = register_actor("PollManager", poll_manager_.get()); - G()->set_notification_manager(notification_manager_actor_.get()); sponsored_message_manager_ = make_unique(this, create_reference()); sponsored_message_manager_actor_ = register_actor("SponsoredMessageManager", sponsored_message_manager_.get()); G()->set_sponsored_message_manager(sponsored_message_manager_actor_.get()); diff --git a/td/telegram/Td.h b/td/telegram/Td.h index e9db3fdfa..4ae113c40 100644 --- a/td/telegram/Td.h +++ b/td/telegram/Td.h @@ -59,6 +59,7 @@ class LinkManager; class MessagesManager; class NetStatsManager; class NotificationManager; +class OptionManager; class PasswordManager; class PhoneNumberManager; class PollManager; @@ -175,6 +176,8 @@ class Td final : public Actor { ActorOwn messages_manager_actor_; unique_ptr notification_manager_; ActorOwn notification_manager_actor_; + unique_ptr option_manager_; + ActorOwn option_manager_actor_; unique_ptr poll_manager_; ActorOwn poll_manager_actor_; unique_ptr sponsored_message_manager_;