From d132c3e50df7cdd3baf4ea896c1a7953ea448d53 Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 14 Mar 2023 01:48:32 +0300 Subject: [PATCH] Add Global::keep_media_order. --- td/telegram/Global.h | 4 ++++ td/telegram/MessagesManager.cpp | 6 +++--- td/telegram/files/FileLoadManager.cpp | 7 +++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/td/telegram/Global.h b/td/telegram/Global.h index 0a3152889..296e43c75 100644 --- a/td/telegram/Global.h +++ b/td/telegram/Global.h @@ -398,6 +398,10 @@ class Global final : public ActorContext { bool use_message_database() const; + bool keep_media_order() const { + return use_file_database(); + } + int32 get_gc_scheduler_id() const { return gc_scheduler_id_; } diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 094cb55e1..8a5d6b75d 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -26332,7 +26332,7 @@ void MessagesManager::cancel_send_message_query(DialogId dialog_id, Message *m) m->message_id, Status::OK()); } - if (!m->message_id.is_scheduled() && G()->use_file_database() && !m->is_copy) { // ResourceManager::Mode::Baseline + if (!m->message_id.is_scheduled() && G()->keep_media_order() && !m->is_copy) { auto queue_id = ChainId(dialog_id, m->content->get_type()).get(); if (queue_id & 1) { auto queue_it = yet_unsent_media_queues_.find(queue_id); @@ -27481,7 +27481,7 @@ void MessagesManager::on_media_message_ready_to_send(DialogId dialog_id, Message Promise &&promise) { LOG(INFO) << "Ready to send " << message_id << " to " << dialog_id; CHECK(promise); - if (!G()->use_file_database() || message_id.is_scheduled()) { // ResourceManager::Mode::Greedy + if (!G()->keep_media_order() || message_id.is_scheduled()) { auto m = get_message({dialog_id, message_id}); if (m != nullptr) { promise.set_value(std::move(m)); @@ -36027,7 +36027,7 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq } } - if (G()->use_file_database() && message_id.is_yet_unsent() && !message->via_bot_user_id.is_valid() && + if (G()->keep_media_order() && message_id.is_yet_unsent() && !message->via_bot_user_id.is_valid() && !message->hide_via_bot && !message->is_copy) { auto queue_id = ChainId(dialog_id, message_content_type).get(); if (queue_id & 1) { diff --git a/td/telegram/files/FileLoadManager.cpp b/td/telegram/files/FileLoadManager.cpp index f5061f0af..0ef6dfe5b 100644 --- a/td/telegram/files/FileLoadManager.cpp +++ b/td/telegram/files/FileLoadManager.cpp @@ -23,10 +23,9 @@ FileLoadManager::FileLoadManager(ActorShared callback, ActorShared<> p void FileLoadManager::start_up() { constexpr int64 MAX_UPLOAD_RESOURCE_LIMIT = 4 << 20; - upload_resource_manager_ = create_actor("UploadResourceManager", MAX_UPLOAD_RESOURCE_LIMIT, - !G()->use_file_database() /*tdlib_engine*/ - ? ResourceManager::Mode::Greedy - : ResourceManager::Mode::Baseline); + upload_resource_manager_ = create_actor( + "UploadResourceManager", MAX_UPLOAD_RESOURCE_LIMIT, + !G()->keep_media_order() ? ResourceManager::Mode::Greedy : ResourceManager::Mode::Baseline); if (G()->get_option_boolean("is_premium")) { max_download_resource_limit_ *= 8; }