From 094066eceb69d63993e7f30270f86df7f3f09907 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 21 Feb 2024 20:43:55 +0300 Subject: [PATCH] Add QuickReplyManager. --- CMakeLists.txt | 2 ++ SplitSource.php | 1 + td/telegram/Global.h | 9 +++++++++ td/telegram/QuickReplyManager.cpp | 18 ++++++++++++++++++ td/telegram/QuickReplyManager.h | 28 ++++++++++++++++++++++++++++ td/telegram/Td.cpp | 6 ++++++ td/telegram/Td.h | 3 +++ 7 files changed, 67 insertions(+) create mode 100644 td/telegram/QuickReplyManager.cpp create mode 100644 td/telegram/QuickReplyManager.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b3907e50..8bb8e997d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -462,6 +462,7 @@ set(TDLIB_SOURCE td/telegram/PrivacyManager.cpp td/telegram/QueryCombiner.cpp td/telegram/QueryMerger.cpp + td/telegram/QuickReplyManager.cpp td/telegram/ReactionListType.cpp td/telegram/ReactionManager.cpp td/telegram/ReactionType.cpp @@ -789,6 +790,7 @@ set(TDLIB_SOURCE td/telegram/PublicDialogType.h td/telegram/QueryCombiner.h td/telegram/QueryMerger.h + td/telegram/QuickReplyManager.h td/telegram/ReactionListType.h td/telegram/ReactionManager.h td/telegram/ReactionType.h diff --git a/SplitSource.php b/SplitSource.php index c41b15e2c..ec407d4b9 100644 --- a/SplitSource.php +++ b/SplitSource.php @@ -372,6 +372,7 @@ function split_file($file, $chunks, $undo) { 'poll_manager[_(-](?![.]get[(][)])|PollManager' => 'PollManager', 'privacy_manager[_(-](?![.]get[(][)])|PrivacyManager' => 'PrivacyManager', 'PublicDialogType|get_public_dialog_type' => 'PublicDialogType', + 'quick_reply_manager[_(-](?![.]get[(][)])|QuickReplyManager' => 'QuickReplyManager', 'ReactionListType|[a-z_]*_reaction_list_type' => 'ReactionListType', 'reaction_manager[_(-](?![.]get[(][)])|ReactionManager' => 'ReactionManager', 'ReactionType|[a-z_]*_reaction_type' => 'ReactionType', diff --git a/td/telegram/Global.h b/td/telegram/Global.h index 8138342db..88a3392d3 100644 --- a/td/telegram/Global.h +++ b/td/telegram/Global.h @@ -61,6 +61,7 @@ class NotificationManager; class NotificationSettingsManager; class OptionManager; class PasswordManager; +class QuickReplyManager; class ReactionManager; class SavedMessagesManager; class SecretChatsManager; @@ -382,6 +383,13 @@ class Global final : public ActorContext { password_manager_ = password_manager; } + ActorId quick_reply_manager() const { + return quick_reply_manager_; + } + void set_quick_reply_manager(ActorId quick_reply_manager) { + quick_reply_manager_ = quick_reply_manager; + } + ActorId reaction_manager() const { return reaction_manager_; } @@ -620,6 +628,7 @@ class Global final : public ActorContext { ActorId notification_manager_; ActorId notification_settings_manager_; ActorId password_manager_; + ActorId quick_reply_manager_; ActorId reaction_manager_; ActorId saved_messages_manager_; ActorId secret_chats_manager_; diff --git a/td/telegram/QuickReplyManager.cpp b/td/telegram/QuickReplyManager.cpp new file mode 100644 index 000000000..dd5aec8f8 --- /dev/null +++ b/td/telegram/QuickReplyManager.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/QuickReplyManager.h" + +namespace td { + +QuickReplyManager::QuickReplyManager(Td *td, ActorShared<> parent) : td_(td), parent_(std::move(parent)) { +} + +void QuickReplyManager::tear_down() { + parent_.reset(); +} + +} // namespace td diff --git a/td/telegram/QuickReplyManager.h b/td/telegram/QuickReplyManager.h new file mode 100644 index 000000000..9f7b4c4f9 --- /dev/null +++ b/td/telegram/QuickReplyManager.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 QuickReplyManager final : public Actor { + public: + QuickReplyManager(Td *td, ActorShared<> parent); + + private: + void tear_down() final; + + Td *td_; + ActorShared<> parent_; +}; + +} // namespace td diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index d73329ba7..2c890d721 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -117,6 +117,7 @@ #include "td/telegram/Premium.h" #include "td/telegram/PrivacyManager.h" #include "td/telegram/PublicDialogType.h" +#include "td/telegram/QuickReplyManager.h" #include "td/telegram/ReactionManager.h" #include "td/telegram/ReactionType.h" #include "td/telegram/ReportReason.h" @@ -3224,6 +3225,7 @@ void Td::dec_actor_refcnt() { reset_manager(notification_settings_manager_, "NotificationSettingsManager"); reset_manager(poll_manager_, "PollManager"); reset_manager(privacy_manager_, "PrivacyManager"); + reset_manager(quick_reply_manager_, "QuickReplyManager"); reset_manager(reaction_manager_, "ReactionManager"); reset_manager(saved_messages_manager_, "SavedMessagesManager"); reset_manager(sponsored_message_manager_, "SponsoredMessageManager"); @@ -3394,6 +3396,7 @@ void Td::clear() { reset_actor(ActorOwn(std::move(notification_settings_manager_actor_))); reset_actor(ActorOwn(std::move(poll_manager_actor_))); reset_actor(ActorOwn(std::move(privacy_manager_actor_))); + reset_actor(ActorOwn(std::move(quick_reply_manager_actor_))); reset_actor(ActorOwn(std::move(reaction_manager_actor_))); reset_actor(ActorOwn(std::move(saved_messages_manager_actor_))); reset_actor(ActorOwn(std::move(sponsored_message_manager_actor_))); @@ -3917,6 +3920,9 @@ void Td::init_managers() { poll_manager_actor_ = register_actor("PollManager", poll_manager_.get()); privacy_manager_ = make_unique(this, create_reference()); privacy_manager_actor_ = register_actor("PrivacyManager", privacy_manager_.get()); + quick_reply_manager_ = make_unique(this, create_reference()); + quick_reply_manager_actor_ = register_actor("QuickReplyManager", quick_reply_manager_.get()); + G()->set_quick_reply_manager(quick_reply_manager_actor_.get()); reaction_manager_ = make_unique(this, create_reference()); reaction_manager_actor_ = register_actor("ReactionManager", reaction_manager_.get()); G()->set_reaction_manager(reaction_manager_actor_.get()); diff --git a/td/telegram/Td.h b/td/telegram/Td.h index e8852d4fb..2af064526 100644 --- a/td/telegram/Td.h +++ b/td/telegram/Td.h @@ -79,6 +79,7 @@ class PasswordManager; class PhoneNumberManager; class PollManager; class PrivacyManager; +class QuickReplyManager; class ReactionManager; class SavedMessagesManager; class SecureManager; @@ -220,6 +221,8 @@ class Td final : public Actor { ActorOwn poll_manager_actor_; unique_ptr privacy_manager_; ActorOwn privacy_manager_actor_; + unique_ptr quick_reply_manager_; + ActorOwn quick_reply_manager_actor_; unique_ptr reaction_manager_; ActorOwn reaction_manager_actor_; unique_ptr saved_messages_manager_;