diff options
| author | levlam <levlam@telegram.org> | 2026-06-23 23:16:59 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-06-23 23:16:59 +0300 |
| commit | 7cd1c3b36e762d34831af7080cb226d954e3ff57 (patch) | |
| tree | c3db315e70e997cd692a6f780a4d964f81c80ff4 | |
| parent | f19946bcdb7be4891022ee0b3d55888ea4dde377 (diff) | |
Add DraftMessageManager.
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | SplitSource.php | 1 | ||||
| -rw-r--r-- | td/telegram/DraftMessageManager.cpp | 18 | ||||
| -rw-r--r-- | td/telegram/DraftMessageManager.h | 28 | ||||
| -rw-r--r-- | td/telegram/Global.h | 9 | ||||
| -rw-r--r-- | td/telegram/Td.cpp | 6 | ||||
| -rw-r--r-- | td/telegram/Td.h | 3 |
7 files changed, 67 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index be75595fd..cc5e663b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -433,6 +433,7 @@ set(TDLIB_SOURCE_PART1 td/telegram/DownloadManager.cpp td/telegram/DownloadManagerCallback.cpp td/telegram/DraftMessage.cpp + td/telegram/DraftMessageManager.cpp td/telegram/EmailVerification.cpp td/telegram/EmojiGameInfo.cpp td/telegram/EmojiGroup.cpp @@ -816,6 +817,7 @@ set(TDLIB_SOURCE_PART2 td/telegram/DownloadManager.h td/telegram/DownloadManagerCallback.h td/telegram/DraftMessage.h + td/telegram/DraftMessageManager.h td/telegram/EmailVerification.h td/telegram/EmojiGameInfo.h td/telegram/EmojiGroup.h diff --git a/SplitSource.php b/SplitSource.php index 78f6c82d3..030dda06d 100644 --- a/SplitSource.php +++ b/SplitSource.php @@ -352,6 +352,7 @@ function split_file($file, $chunks, $undo) { 'documents_manager[_(-](?![.]get[(][)])|DocumentsManager' => 'DocumentsManager', 'download_manager[_(-](?![.]get[(][)])|DownloadManager[^C]' => 'DownloadManager', 'DownloadManagerCallback' => 'DownloadManagerCallback', + 'draft_message_manager[_(-](?![.]get[(][)])|DraftMessageManager' => 'DraftMessageManager', 'EmailVerification' => 'EmailVerification', 'EmojiGroup' => 'EmojiGroup', 'FactCheck' => 'FactCheck', diff --git a/td/telegram/DraftMessageManager.cpp b/td/telegram/DraftMessageManager.cpp new file mode 100644 index 000000000..2802a1f41 --- /dev/null +++ b/td/telegram/DraftMessageManager.cpp @@ -0,0 +1,18 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2025 +// +// 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/DraftMessageManager.h" + +namespace td { + +DraftMessageManager::DraftMessageManager(Td *td, ActorShared<> parent) : td_(td), parent_(std::move(parent)) { +} + +void DraftMessageManager::tear_down() { + parent_.reset(); +} + +} // namespace td diff --git a/td/telegram/DraftMessageManager.h b/td/telegram/DraftMessageManager.h new file mode 100644 index 000000000..79c86632b --- /dev/null +++ b/td/telegram/DraftMessageManager.h @@ -0,0 +1,28 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2025 +// +// 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 DraftMessageManager final : public Actor { + public: + DraftMessageManager(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 4ec45cbc0..1fb69fc7e 100644 --- a/td/telegram/Global.h +++ b/td/telegram/Global.h @@ -50,6 +50,7 @@ class DialogInviteLinkManager; class DialogManager; class DialogParticipantManager; class DownloadManager; +class DraftMessageManager; class FileManager; class FileReferenceManager; class ForumTopicManager; @@ -334,6 +335,13 @@ class Global final : public ActorContext { download_manager_ = std::move(download_manager); } + ActorId<DraftMessageManager> draft_message_manager() const { + return draft_message_manager_; + } + void set_draft_message_manager(ActorId<DraftMessageManager> draft_message_manager) { + draft_message_manager_ = std::move(draft_message_manager); + } + ActorId<FileManager> file_manager() const { return file_manager_; } @@ -753,6 +761,7 @@ class Global final : public ActorContext { ActorId<DialogManager> dialog_manager_; ActorId<DialogParticipantManager> dialog_participant_manager_; ActorId<DownloadManager> download_manager_; + ActorId<DraftMessageManager> draft_message_manager_; ActorId<FileManager> file_manager_; ActorId<FileReferenceManager> file_reference_manager_; ActorId<ForumTopicManager> forum_topic_manager_; diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 3f5472e81..042a4b322 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -37,6 +37,7 @@ #include "td/telegram/DocumentsManager.h" #include "td/telegram/DownloadManager.h" #include "td/telegram/DownloadManagerCallback.h" +#include "td/telegram/DraftMessageManager.h" #include "td/telegram/FileReferenceManager.h" #include "td/telegram/files/FileId.h" #include "td/telegram/files/FileManager.h" @@ -532,6 +533,7 @@ void Td::dec_actor_refcnt() { reset_manager(dialog_participant_manager_, "DialogParticipantManager"); reset_manager(documents_manager_, "DocumentsManager"); reset_manager(download_manager_, "DownloadManager"); + reset_manager(draft_message_manager_, "DraftMessageManager"); reset_manager(file_manager_, "FileManager"); reset_manager(file_reference_manager_, "FileReferenceManager"); reset_manager(forum_topic_manager_, "ForumTopicManager"); @@ -710,6 +712,7 @@ void Td::clear() { reset_actor(ActorOwn<Actor>(std::move(dialog_manager_actor_))); reset_actor(ActorOwn<Actor>(std::move(dialog_participant_manager_actor_))); reset_actor(ActorOwn<Actor>(std::move(download_manager_actor_))); + reset_actor(ActorOwn<Actor>(std::move(draft_message_manager_actor_))); reset_actor(ActorOwn<Actor>(std::move(file_manager_actor_))); reset_actor(ActorOwn<Actor>(std::move(file_reference_manager_actor_))); reset_actor(ActorOwn<Actor>(std::move(forum_topic_manager_actor_))); @@ -1201,6 +1204,9 @@ void Td::init_managers() { download_manager_ = DownloadManager::create(td::make_unique<DownloadManagerCallback>(this, create_reference())); download_manager_actor_ = register_actor("DownloadManager", download_manager_.get()); G()->set_download_manager(download_manager_actor_.get()); + draft_message_manager_ = make_unique<DraftMessageManager>(this, create_reference()); + draft_message_manager_actor_ = register_actor("DraftMessageManager", draft_message_manager_.get()); + G()->set_draft_message_manager(draft_message_manager_actor_.get()); forum_topic_manager_ = make_unique<ForumTopicManager>(this, create_reference()); forum_topic_manager_actor_ = register_actor("ForumTopicManager", forum_topic_manager_.get()); G()->set_forum_topic_manager(forum_topic_manager_actor_.get()); diff --git a/td/telegram/Td.h b/td/telegram/Td.h index 3be4f0733..262dcafa0 100644 --- a/td/telegram/Td.h +++ b/td/telegram/Td.h @@ -60,6 +60,7 @@ class DialogManager; class DialogParticipantManager; class DocumentsManager; class DownloadManager; +class DraftMessageManager; class FileManager; class FileReferenceManager; class ForumTopicManager; @@ -206,6 +207,8 @@ class Td final : public Actor { ActorOwn<DialogManager> dialog_manager_actor_; unique_ptr<DialogParticipantManager> dialog_participant_manager_; ActorOwn<DialogParticipantManager> dialog_participant_manager_actor_; + unique_ptr<DraftMessageManager> draft_message_manager_; + ActorOwn<DraftMessageManager> draft_message_manager_actor_; unique_ptr<DownloadManager> download_manager_; ActorOwn<DownloadManager> download_manager_actor_; unique_ptr<FileManager> file_manager_; |
