From b0ab122d91e0afa3dc95957ca7528cbcecd70fe0 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 1 May 2023 22:19:16 +0300 Subject: [PATCH] Add StoryManager. --- CMakeLists.txt | 2 ++ SplitSource.php | 1 + td/telegram/StoryManager.cpp | 18 ++++++++++++++++++ td/telegram/StoryManager.h | 28 ++++++++++++++++++++++++++++ td/telegram/Td.cpp | 7 +++++++ td/telegram/Td.h | 3 +++ 6 files changed, 59 insertions(+) create mode 100644 td/telegram/StoryManager.cpp create mode 100644 td/telegram/StoryManager.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 5756b5687..b280590cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -468,6 +468,7 @@ set(TDLIB_SOURCE td/telegram/StickersManager.cpp td/telegram/StickerType.cpp td/telegram/StorageManager.cpp + td/telegram/StoryManager.cpp td/telegram/SuggestedAction.cpp td/telegram/Support.cpp td/telegram/Td.cpp @@ -755,6 +756,7 @@ set(TDLIB_SOURCE td/telegram/StickersManager.h td/telegram/StickerType.h td/telegram/StorageManager.h + td/telegram/StoryManager.h td/telegram/SuggestedAction.h td/telegram/Support.h td/telegram/Td.h diff --git a/SplitSource.php b/SplitSource.php index 702e657a6..b002bec95 100644 --- a/SplitSource.php +++ b/SplitSource.php @@ -311,6 +311,7 @@ function split_file($file, $chunks, $undo) { 'secret_chats_manager[_(-]|SecretChatsManager' => 'SecretChatsManager', 'sponsored_message_manager[_(-][^.]|SponsoredMessageManager' => 'SponsoredMessageManager', 'stickers_manager[_(-][^.]|StickersManager' => 'StickersManager', + 'story_manager[_(-][^.]|StoryManager' => 'StoryManager', '[>](td_db[(][)]|get_td_db_impl[(])|TdDb[^A-Za-z]' => 'TdDb', 'theme_manager[_(-][^.]|ThemeManager' => "ThemeManager", 'TopDialogCategory|get_top_dialog_category' => 'TopDialogCategory', diff --git a/td/telegram/StoryManager.cpp b/td/telegram/StoryManager.cpp new file mode 100644 index 000000000..8fd548c00 --- /dev/null +++ b/td/telegram/StoryManager.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/StoryManager.h" + +namespace td { + +StoryManager::StoryManager(Td *td, ActorShared<> parent) : td_(td), parent_(std::move(parent)) { +} + +void StoryManager::tear_down() { + parent_.reset(); +} + +} // namespace td diff --git a/td/telegram/StoryManager.h b/td/telegram/StoryManager.h new file mode 100644 index 000000000..d8c1b249e --- /dev/null +++ b/td/telegram/StoryManager.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 StoryManager final : public Actor { + public: + StoryManager(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 0c91b952e..25a9e00a1 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -121,6 +121,7 @@ #include "td/telegram/StickersManager.h" #include "td/telegram/StickerType.h" #include "td/telegram/StorageManager.h" +#include "td/telegram/StoryManager.h" #include "td/telegram/SuggestedAction.h" #include "td/telegram/Support.h" #include "td/telegram/td_api.hpp" @@ -3226,6 +3227,8 @@ void Td::dec_actor_refcnt() { LOG(DEBUG) << "SponsoredMessageManager was cleared" << timer; stickers_manager_.reset(); LOG(DEBUG) << "StickersManager was cleared" << timer; + story_manager_.reset(); + LOG(DEBUG) << "StoryManager was cleared" << timer; theme_manager_.reset(); LOG(DEBUG) << "ThemeManager was cleared" << timer; top_dialog_manager_.reset(); @@ -3426,6 +3429,8 @@ void Td::clear() { LOG(DEBUG) << "SponsoredMessageManager actor was cleared" << timer; stickers_manager_actor_.reset(); LOG(DEBUG) << "StickersManager actor was cleared" << timer; + story_manager_actor_.reset(); + LOG(DEBUG) << "StoryManager actor was cleared" << timer; theme_manager_actor_.reset(); LOG(DEBUG) << "ThemeManager actor was cleared" << timer; top_dialog_manager_actor_.reset(); @@ -3915,6 +3920,8 @@ void Td::init_managers() { stickers_manager_ = make_unique(this, create_reference()); stickers_manager_actor_ = register_actor("StickersManager", stickers_manager_.get()); G()->set_stickers_manager(stickers_manager_actor_.get()); + story_manager_ = make_unique(this, create_reference()); + story_manager_actor_ = register_actor("StoryManager", story_manager_.get()); theme_manager_ = make_unique(this, create_reference()); theme_manager_actor_ = register_actor("ThemeManager", theme_manager_.get()); G()->set_theme_manager(theme_manager_actor_.get()); diff --git a/td/telegram/Td.h b/td/telegram/Td.h index f5b2497be..29bcbd8c7 100644 --- a/td/telegram/Td.h +++ b/td/telegram/Td.h @@ -77,6 +77,7 @@ class SponsoredMessageManager; class StateManager; class StickersManager; class StorageManager; +class StoryManager; class ThemeManager; class TopDialogManager; class TranslationManager; @@ -192,6 +193,8 @@ class Td final : public Actor { ActorOwn sponsored_message_manager_actor_; unique_ptr stickers_manager_; ActorOwn stickers_manager_actor_; + unique_ptr story_manager_; + ActorOwn story_manager_actor_; unique_ptr theme_manager_; ActorOwn theme_manager_actor_; unique_ptr top_dialog_manager_;