diff --git a/td/telegram/AccountManager.cpp b/td/telegram/AccountManager.cpp index 7e8c7c5e9..092525c53 100644 --- a/td/telegram/AccountManager.cpp +++ b/td/telegram/AccountManager.cpp @@ -1344,4 +1344,7 @@ void AccountManager::get_current_state(vector } } +void AccountManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/AccountManager.h b/td/telegram/AccountManager.h index be0e0f1a7..1181d0691 100644 --- a/td/telegram/AccountManager.h +++ b/td/telegram/AccountManager.h @@ -21,6 +21,7 @@ class Td; class AccountManager final : public Actor { public: + void memory_stats(vector &output); AccountManager(Td *td, ActorShared<> parent); AccountManager(const AccountManager &) = delete; AccountManager &operator=(const AccountManager &) = delete; diff --git a/td/telegram/AnimationsManager.cpp b/td/telegram/AnimationsManager.cpp index 7bc32de36..15195fd34 100644 --- a/td/telegram/AnimationsManager.cpp +++ b/td/telegram/AnimationsManager.cpp @@ -888,11 +888,15 @@ void AnimationsManager::get_current_state(vector &output) { - output.push_back("\"animations_\":"); output.push_back(std::to_string(animations_.calc_size())); - output.push_back(","); - output.push_back("\"saved_animation_ids_\":"); output.push_back(std::to_string(this->saved_animation_ids_.size())); - output.push_back(","); - output.push_back("\"saved_animation_file_ids_\":"); output.push_back(std::to_string(this->saved_animation_file_ids_.size())); + output.emplace_back("\"animations_\":"); output.emplace_back(std::to_string(this->animations_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"saved_animation_ids_\":"); output.emplace_back(std::to_string(this->saved_animation_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"saved_animation_file_ids_\":"); output.emplace_back(std::to_string(this->saved_animation_file_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"load_saved_animations_queries_\":"); output.emplace_back(std::to_string(this->load_saved_animations_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"repair_saved_animations_queries_\":"); output.emplace_back(std::to_string(this->repair_saved_animations_queries_.size())); } } // namespace td diff --git a/td/telegram/AnimationsManager.h b/td/telegram/AnimationsManager.h index 4ed2d07c0..fe65dc982 100644 --- a/td/telegram/AnimationsManager.h +++ b/td/telegram/AnimationsManager.h @@ -28,6 +28,7 @@ class Td; class AnimationsManager final : public Actor { public: + void memory_stats(vector &output); AnimationsManager(Td *td, ActorShared<> parent); AnimationsManager(const AnimationsManager &) = delete; AnimationsManager &operator=(const AnimationsManager &) = delete; @@ -35,8 +36,6 @@ class AnimationsManager final : public Actor { AnimationsManager &operator=(AnimationsManager &&) = delete; ~AnimationsManager() final; - void memory_stats(vector &output); - int32 get_animation_duration(FileId file_id) const; tl_object_ptr get_animation_object(FileId file_id) const; diff --git a/td/telegram/AttachMenuManager.cpp b/td/telegram/AttachMenuManager.cpp index 617b99bda..c0b8033ef 100644 --- a/td/telegram/AttachMenuManager.cpp +++ b/td/telegram/AttachMenuManager.cpp @@ -1354,4 +1354,16 @@ void AttachMenuManager::get_current_state(vector &output) { + output.emplace_back("\"attach_menu_bots_\":"); output.emplace_back(std::to_string(this->attach_menu_bots_.size())); + output.emplace_back(","); + output.emplace_back("\"attach_menu_bot_file_source_ids_\":"); output.emplace_back(std::to_string(this->attach_menu_bot_file_source_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"reload_attach_menu_bots_queries_\":"); output.emplace_back(std::to_string(this->reload_attach_menu_bots_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"web_app_file_source_ids_\":"); output.emplace_back(std::to_string(this->web_app_file_source_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"opened_web_views_\":"); output.emplace_back(std::to_string(this->opened_web_views_.size())); +} + } // namespace td diff --git a/td/telegram/AttachMenuManager.h b/td/telegram/AttachMenuManager.h index 3d2e85bfa..cc9d7e1f7 100644 --- a/td/telegram/AttachMenuManager.h +++ b/td/telegram/AttachMenuManager.h @@ -29,6 +29,7 @@ class Td; class AttachMenuManager final : public Actor { public: + void memory_stats(vector &output); AttachMenuManager(Td *td, ActorShared<> parent); void init(); diff --git a/td/telegram/AudiosManager.cpp b/td/telegram/AudiosManager.cpp index 48ef96de2..c506702c5 100644 --- a/td/telegram/AudiosManager.cpp +++ b/td/telegram/AudiosManager.cpp @@ -310,8 +310,7 @@ tl_object_ptr AudiosManager::get_input_media( } void AudiosManager::memory_stats(vector &output) { - output.push_back("\"audios_\":"); output.push_back(std::to_string(audios_.calc_size())); - + output.emplace_back("\"audios_\":"); output.emplace_back(std::to_string(this->audios_.calc_size())); } } // namespace td diff --git a/td/telegram/AudiosManager.h b/td/telegram/AudiosManager.h index c4a29c1ba..1de929a7f 100644 --- a/td/telegram/AudiosManager.h +++ b/td/telegram/AudiosManager.h @@ -22,6 +22,7 @@ class Td; class AudiosManager { public: + void memory_stats(vector &output); explicit AudiosManager(Td *td); AudiosManager(const AudiosManager &) = delete; AudiosManager &operator=(const AudiosManager &) = delete; @@ -29,8 +30,6 @@ class AudiosManager { AudiosManager &operator=(AudiosManager &&) = delete; ~AudiosManager(); - void memory_stats(vector &output); - int32 get_audio_duration(FileId file_id) const; tl_object_ptr get_audio_object(FileId file_id) const; diff --git a/td/telegram/AuthManager.cpp b/td/telegram/AuthManager.cpp index 51456cad9..77db3b58a 100644 --- a/td/telegram/AuthManager.cpp +++ b/td/telegram/AuthManager.cpp @@ -1482,4 +1482,10 @@ void AuthManager::save_state() { G()->td_db()->get_binlog_pmc()->set("auth_state", log_event_store(db_state).as_slice().str()); } +void AuthManager::memory_stats(vector &output) { + output.emplace_back("\"other_user_ids_\":"); output.emplace_back(std::to_string(this->other_user_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_authorization_state_requests_\":"); output.emplace_back(std::to_string(this->pending_get_authorization_state_requests_.size())); +} + } // namespace td diff --git a/td/telegram/AuthManager.h b/td/telegram/AuthManager.h index 5707e88ea..cbd3cc9c0 100644 --- a/td/telegram/AuthManager.h +++ b/td/telegram/AuthManager.h @@ -26,6 +26,7 @@ namespace td { class AuthManager final : public NetActor { public: + void memory_stats(vector &output); AuthManager(int32 api_id, const string &api_hash, ActorShared<> parent); bool is_bot() const { diff --git a/td/telegram/AutosaveManager.cpp b/td/telegram/AutosaveManager.cpp index e9ed7c9bb..21b2af875 100644 --- a/td/telegram/AutosaveManager.cpp +++ b/td/telegram/AutosaveManager.cpp @@ -552,4 +552,8 @@ void AutosaveManager::get_current_state(vector &output) { + output.emplace_back("\"load_settings_queries_\":"); output.emplace_back(std::to_string(this->load_settings_queries_.size())); +} + } // namespace td diff --git a/td/telegram/AutosaveManager.h b/td/telegram/AutosaveManager.h index cc03b087c..3e68d0e90 100644 --- a/td/telegram/AutosaveManager.h +++ b/td/telegram/AutosaveManager.h @@ -23,6 +23,7 @@ class Td; class AutosaveManager final : public Actor { public: + void memory_stats(vector &output); AutosaveManager(Td *td, ActorShared<> parent); void reload_autosave_settings(); diff --git a/td/telegram/BackgroundManager.cpp b/td/telegram/BackgroundManager.cpp index 521a9eb5e..edd9eb01c 100644 --- a/td/telegram/BackgroundManager.cpp +++ b/td/telegram/BackgroundManager.cpp @@ -1492,17 +1492,23 @@ void BackgroundManager::get_current_state(vector &output) { - output.push_back("\"backgrounds_\":"); output.push_back(std::to_string(backgrounds_.size())); - output.push_back(","); - output.push_back("\"background_id_to_file_source_id_\":"); output.push_back(std::to_string(background_id_to_file_source_id_.size())); - output.push_back(","); - output.push_back("\"name_to_background_id_\":"); output.push_back(std::to_string(name_to_background_id_.size())); - output.push_back(","); - output.push_back("\"file_id_to_background_id_\":"); output.push_back(std::to_string(file_id_to_background_id_.size())); - output.push_back(","); - output.push_back("\"loaded_from_database_backgrounds_\":"); output.push_back(std::to_string(loaded_from_database_backgrounds_.size())); - output.push_back(","); - output.push_back("\"installed_backgrounds_\":"); output.push_back(std::to_string(installed_backgrounds_.size())); + output.emplace_back("\"backgrounds_\":"); output.emplace_back(std::to_string(this->backgrounds_.size())); + output.emplace_back(","); + output.emplace_back("\"background_id_to_file_source_id_\":"); output.emplace_back(std::to_string(this->background_id_to_file_source_id_.size())); + output.emplace_back(","); + output.emplace_back("\"name_to_background_id_\":"); output.emplace_back(std::to_string(this->name_to_background_id_.size())); + output.emplace_back(","); + output.emplace_back("\"file_id_to_background_id_\":"); output.emplace_back(std::to_string(this->file_id_to_background_id_.size())); + output.emplace_back(","); + output.emplace_back("\"loaded_from_database_backgrounds_\":"); output.emplace_back(std::to_string(this->loaded_from_database_backgrounds_.size())); + output.emplace_back(","); + output.emplace_back("\"being_loaded_from_database_backgrounds_\":"); output.emplace_back(std::to_string(this->being_loaded_from_database_backgrounds_.size())); + output.emplace_back(","); + output.emplace_back("\"installed_backgrounds_\":"); output.emplace_back(std::to_string(this->installed_backgrounds_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_backgrounds_queries_\":"); output.emplace_back(std::to_string(this->pending_get_backgrounds_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"being_uploaded_files_\":"); output.emplace_back(std::to_string(this->being_uploaded_files_.size())); } } // namespace td diff --git a/td/telegram/BackgroundManager.h b/td/telegram/BackgroundManager.h index 839a39f07..d78ea5876 100644 --- a/td/telegram/BackgroundManager.h +++ b/td/telegram/BackgroundManager.h @@ -33,9 +33,8 @@ class Td; class BackgroundManager final : public Actor { public: - BackgroundManager(Td *td, ActorShared<> parent); - void memory_stats(vector &output); + BackgroundManager(Td *td, ActorShared<> parent); void get_backgrounds(bool for_dark_theme, Promise> &&promise); diff --git a/td/telegram/BoostManager.cpp b/td/telegram/BoostManager.cpp index 1b03a75c8..b399abaa9 100644 --- a/td/telegram/BoostManager.cpp +++ b/td/telegram/BoostManager.cpp @@ -510,4 +510,7 @@ void BoostManager::on_update_dialog_boost(DialogId dialog_id, telegram_api::obje td_->dialog_manager_->get_chat_id_object(dialog_id, "updateChatBoost"), std::move(chat_boost_object))); } +void BoostManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/BoostManager.h b/td/telegram/BoostManager.h index 99854892e..590a88431 100644 --- a/td/telegram/BoostManager.h +++ b/td/telegram/BoostManager.h @@ -27,6 +27,7 @@ class Td; class BoostManager final : public Actor { public: + void memory_stats(vector &output); BoostManager(Td *td, ActorShared<> parent); td_api::object_ptr get_chat_boost_level_features_object(bool for_megagroup, diff --git a/td/telegram/BotInfoManager.cpp b/td/telegram/BotInfoManager.cpp index 54393bd15..0bf815866 100644 --- a/td/telegram/BotInfoManager.cpp +++ b/td/telegram/BotInfoManager.cpp @@ -442,4 +442,10 @@ void BotInfoManager::get_bot_info_about(UserId bot_user_id, const string &langua add_pending_get_query(bot_user_id, language_code, 2, std::move(promise)); } +void BotInfoManager::memory_stats(vector &output) { + output.emplace_back("\"pending_set_bot_info_queries_\":"); output.emplace_back(std::to_string(this->pending_set_bot_info_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_bot_info_queries_\":"); output.emplace_back(std::to_string(this->pending_get_bot_info_queries_.size())); +} + } // namespace td diff --git a/td/telegram/BotInfoManager.h b/td/telegram/BotInfoManager.h index 5d9270a59..5faebcd09 100644 --- a/td/telegram/BotInfoManager.h +++ b/td/telegram/BotInfoManager.h @@ -20,6 +20,7 @@ class Td; class BotInfoManager final : public Actor { public: + void memory_stats(vector &output); BotInfoManager(Td *td, ActorShared<> parent); void set_default_group_administrator_rights(AdministratorRights administrator_rights, Promise &&promise); diff --git a/td/telegram/BusinessManager.cpp b/td/telegram/BusinessManager.cpp index 1b7804d7c..63e1725db 100644 --- a/td/telegram/BusinessManager.cpp +++ b/td/telegram/BusinessManager.cpp @@ -292,4 +292,7 @@ void BusinessManager::set_business_away_message(BusinessAwayMessage &&away_messa td_->create_handler(std::move(promise))->send(std::move(away_message)); } +void BusinessManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/BusinessManager.h b/td/telegram/BusinessManager.h index b47731b75..ae1acdf71 100644 --- a/td/telegram/BusinessManager.h +++ b/td/telegram/BusinessManager.h @@ -24,6 +24,7 @@ class Td; class BusinessManager final : public Actor { public: + void memory_stats(vector &output); BusinessManager(Td *td, ActorShared<> parent); void get_business_connected_bot(Promise> &&promise); diff --git a/td/telegram/CallbackQueriesManager.cpp b/td/telegram/CallbackQueriesManager.cpp index d8537665a..b19ea449d 100644 --- a/td/telegram/CallbackQueriesManager.cpp +++ b/td/telegram/CallbackQueriesManager.cpp @@ -290,4 +290,7 @@ void CallbackQueriesManager::send_get_callback_answer_query( ->send(dialog_id, message_full_id.get_message_id(), payload, std::move(password)); } +void CallbackQueriesManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/CallbackQueriesManager.h b/td/telegram/CallbackQueriesManager.h index 41a268072..7514b230b 100644 --- a/td/telegram/CallbackQueriesManager.h +++ b/td/telegram/CallbackQueriesManager.h @@ -23,6 +23,7 @@ class Td; class CallbackQueriesManager { public: + void memory_stats(vector &output); explicit CallbackQueriesManager(Td *td); void answer_callback_query(int64 callback_query_id, const string &text, bool show_alert, const string &url, diff --git a/td/telegram/CommonDialogManager.cpp b/td/telegram/CommonDialogManager.cpp index 92d0a890a..071c01e97 100644 --- a/td/telegram/CommonDialogManager.cpp +++ b/td/telegram/CommonDialogManager.cpp @@ -221,4 +221,8 @@ void CommonDialogManager::on_get_common_dialogs(UserId user_id, int64 offset_cha common_dialogs.total_count = total_count; } +void CommonDialogManager::memory_stats(vector &output) { + output.emplace_back("\"found_common_dialogs_\":"); output.emplace_back(std::to_string(this->found_common_dialogs_.size())); +} + } // namespace td diff --git a/td/telegram/CommonDialogManager.h b/td/telegram/CommonDialogManager.h index b4f28ddfb..b14cc57f6 100644 --- a/td/telegram/CommonDialogManager.h +++ b/td/telegram/CommonDialogManager.h @@ -24,6 +24,7 @@ class Td; class CommonDialogManager final : public Actor { public: + void memory_stats(vector &output); CommonDialogManager(Td *td, ActorShared<> parent); CommonDialogManager(const CommonDialogManager &) = delete; CommonDialogManager &operator=(const CommonDialogManager &) = delete; diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index 9c71fa61a..2c3067fbd 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -17038,95 +17038,117 @@ void ContactsManager::get_current_state(vector &output) { - - output.push_back("\"users_\":"); output.push_back(std::to_string(users_.calc_size())); - output.push_back(","); - output.push_back("\"users_full_\":"); output.push_back(std::to_string(users_full_.calc_size())); - output.push_back(","); - output.push_back("\"user_photos_\":"); output.push_back(std::to_string(user_photos_.calc_size())); - output.push_back(","); - output.push_back("\"unknown_users_\":"); output.push_back(std::to_string(unknown_users_.size())); - output.push_back(","); - output.push_back("\"pending_user_photos_\":"); output.push_back(std::to_string(pending_user_photos_.calc_size())); - output.push_back(","); - output.push_back("\"user_profile_photo_file_source_ids_\":"); output.push_back(std::to_string(user_profile_photo_file_source_ids_.calc_size())); - output.push_back(","); - output.push_back("\"my_photo_file_id_\":"); output.push_back(std::to_string(my_photo_file_id_.size())); - output.push_back(","); - output.push_back("\"chats_\":"); output.push_back(std::to_string(chats_.calc_size())); - output.push_back(","); - output.push_back("\"chats_full_\":"); output.push_back(std::to_string(chats_full_.calc_size())); - output.push_back(","); - output.push_back("\"unknown_chats_\":"); output.push_back(std::to_string(unknown_chats_.size())); - output.push_back(","); - output.push_back("\"chat_full_file_source_ids_\":"); output.push_back(std::to_string(chat_full_file_source_ids_.calc_size())); - output.push_back(","); - output.push_back("\"min_channels_\":"); output.push_back(std::to_string(min_channels_.calc_size())); - output.push_back(","); - output.push_back("\"channels_\":"); output.push_back(std::to_string(channels_.calc_size())); - output.push_back(","); - output.push_back("\"channels_full_\":"); output.push_back(std::to_string(channels_full_.calc_size())); - output.push_back(","); - output.push_back("\"unknown_channels_\":"); output.push_back(std::to_string(unknown_channels_.size())); - output.push_back(","); - output.push_back("\"channel_full_file_source_ids_\":"); output.push_back(std::to_string(channel_full_file_source_ids_.calc_size())); - output.push_back(","); - output.push_back("\"secret_chats_\":"); output.push_back(std::to_string(secret_chats_.calc_size())); - output.push_back(","); - output.push_back("\"unknown_secret_chats_\":"); output.push_back(std::to_string(unknown_secret_chats_.size())); - output.push_back(","); - output.push_back("\"secret_chats_with_user_\":"); output.push_back(std::to_string(secret_chats_with_user_.size())); - output.push_back(","); - output.push_back("\"load_user_from_database_queries_\":"); output.push_back(std::to_string(load_user_from_database_queries_.size())); - output.push_back(","); - output.push_back("\"loaded_from_database_users_\":"); output.push_back(std::to_string(loaded_from_database_users_.size())); - output.push_back(","); - output.push_back("\"unavailable_user_fulls_\":"); output.push_back(std::to_string(unavailable_user_fulls_.size())); - output.push_back(","); - output.push_back("\"load_chat_from_database_queries_\":"); output.push_back(std::to_string(load_chat_from_database_queries_.size())); - output.push_back(","); - output.push_back("\"loaded_from_database_chats_\":"); output.push_back(std::to_string(loaded_from_database_chats_.size())); - output.push_back(","); - output.push_back("\"unavailable_chat_fulls_\":"); output.push_back(std::to_string(unavailable_chat_fulls_.size())); - output.push_back(","); - output.push_back("\"load_channel_from_database_queries_\":"); output.push_back(std::to_string(load_channel_from_database_queries_.size())); - output.push_back(","); - output.push_back("\"loaded_from_database_channels_\":"); output.push_back(std::to_string(loaded_from_database_channels_.size())); - output.push_back(","); - output.push_back("\"unavailable_channel_fulls_\":"); output.push_back(std::to_string(unavailable_channel_fulls_.size())); - output.push_back(","); - output.push_back("\"load_secret_chat_from_database_queries_\":"); output.push_back(std::to_string(load_secret_chat_from_database_queries_.size())); - output.push_back(","); - output.push_back("\"loaded_from_database_secret_chats_\":"); output.push_back(std::to_string(loaded_from_database_secret_chats_.size())); - output.push_back(","); - output.push_back("\"uploaded_profile_photos_\":"); output.push_back(std::to_string(uploaded_profile_photos_.size())); - output.push_back(","); - output.push_back("\"imported_contacts_\":"); output.push_back(std::to_string(imported_contacts_.size())); - output.push_back(","); - output.push_back("\"cached_channel_participants_\":"); output.push_back(std::to_string(cached_channel_participants_.size())); - output.push_back(","); - output.push_back("\"load_contacts_queries_\":"); output.push_back(std::to_string(load_contacts_queries_.size())); - output.push_back(","); - output.push_back("\"load_imported_contacts_queries_\":"); output.push_back(std::to_string(load_imported_contacts_queries_.size())); - output.push_back(","); - output.push_back("\"all_imported_contacts_\":"); output.push_back(std::to_string(all_imported_contacts_.size())); - output.push_back(","); - output.push_back("\"users_nearby_\":"); output.push_back(std::to_string(users_nearby_.size())); - output.push_back(","); - output.push_back("\"channels_nearby_\":"); output.push_back(std::to_string(channels_nearby_.size())); - output.push_back(","); - output.push_back("\"all_users_nearby_\":"); output.push_back(std::to_string(all_users_nearby_.size())); - output.push_back(","); - output.push_back("\"linked_channel_ids_\":"); output.push_back(std::to_string(linked_channel_ids_.calc_size())); - output.push_back(","); - output.push_back("\"restricted_user_ids_\":"); output.push_back(std::to_string(restricted_user_ids_.calc_size())); - output.push_back(","); - output.push_back("\"restricted_channel_ids_\":"); output.push_back(std::to_string(restricted_channel_ids_.calc_size())); - output.push_back(","); - output.push_back("\"next_all_imported_contacts_\":"); output.push_back(std::to_string(next_all_imported_contacts_.size())); - output.push_back(","); - output.push_back("\"imported_contact_user_ids_\":"); output.push_back(std::to_string(imported_contact_user_ids_.size())); - output.push_back(","); - output.push_back("\"unimported_contact_invites_\":"); output.push_back(std::to_string(unimported_contact_invites_.size())); + output.emplace_back("\"users_\":"); output.emplace_back(std::to_string(this->users_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"users_full_\":"); output.emplace_back(std::to_string(this->users_full_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"user_photos_\":"); output.emplace_back(std::to_string(this->user_photos_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"unknown_users_\":"); output.emplace_back(std::to_string(this->unknown_users_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_user_photos_\":"); output.emplace_back(std::to_string(this->pending_user_photos_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"user_profile_photo_file_source_ids_\":"); output.emplace_back(std::to_string(this->user_profile_photo_file_source_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"my_photo_file_id_\":"); output.emplace_back(std::to_string(this->my_photo_file_id_.size())); + output.emplace_back(","); + output.emplace_back("\"user_full_file_source_ids_\":"); output.emplace_back(std::to_string(this->user_full_file_source_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"chats_\":"); output.emplace_back(std::to_string(this->chats_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"chats_full_\":"); output.emplace_back(std::to_string(this->chats_full_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"unknown_chats_\":"); output.emplace_back(std::to_string(this->unknown_chats_.size())); + output.emplace_back(","); + output.emplace_back("\"chat_full_file_source_ids_\":"); output.emplace_back(std::to_string(this->chat_full_file_source_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"min_channels_\":"); output.emplace_back(std::to_string(this->min_channels_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"channels_\":"); output.emplace_back(std::to_string(this->channels_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"channels_full_\":"); output.emplace_back(std::to_string(this->channels_full_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"unknown_channels_\":"); output.emplace_back(std::to_string(this->unknown_channels_.size())); + output.emplace_back(","); + output.emplace_back("\"invalidated_channels_full_\":"); output.emplace_back(std::to_string(this->invalidated_channels_full_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"channel_full_file_source_ids_\":"); output.emplace_back(std::to_string(this->channel_full_file_source_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"secret_chats_\":"); output.emplace_back(std::to_string(this->secret_chats_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"unknown_secret_chats_\":"); output.emplace_back(std::to_string(this->unknown_secret_chats_.size())); + output.emplace_back(","); + output.emplace_back("\"secret_chats_with_user_\":"); output.emplace_back(std::to_string(this->secret_chats_with_user_.size())); + output.emplace_back(","); + output.emplace_back("\"channel_recommended_dialogs_\":"); output.emplace_back(std::to_string(this->channel_recommended_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"get_channel_recommendations_queries_\":"); output.emplace_back(std::to_string(this->get_channel_recommendations_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"dialogs_for_discussion_\":"); output.emplace_back(std::to_string(this->dialogs_for_discussion_.size())); + output.emplace_back(","); + output.emplace_back("\"inactive_channel_ids_\":"); output.emplace_back(std::to_string(this->inactive_channel_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"load_user_from_database_queries_\":"); output.emplace_back(std::to_string(this->load_user_from_database_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"loaded_from_database_users_\":"); output.emplace_back(std::to_string(this->loaded_from_database_users_.size())); + output.emplace_back(","); + output.emplace_back("\"unavailable_user_fulls_\":"); output.emplace_back(std::to_string(this->unavailable_user_fulls_.size())); + output.emplace_back(","); + output.emplace_back("\"load_chat_from_database_queries_\":"); output.emplace_back(std::to_string(this->load_chat_from_database_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"loaded_from_database_chats_\":"); output.emplace_back(std::to_string(this->loaded_from_database_chats_.size())); + output.emplace_back(","); + output.emplace_back("\"unavailable_chat_fulls_\":"); output.emplace_back(std::to_string(this->unavailable_chat_fulls_.size())); + output.emplace_back(","); + output.emplace_back("\"load_channel_from_database_queries_\":"); output.emplace_back(std::to_string(this->load_channel_from_database_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"loaded_from_database_channels_\":"); output.emplace_back(std::to_string(this->loaded_from_database_channels_.size())); + output.emplace_back(","); + output.emplace_back("\"unavailable_channel_fulls_\":"); output.emplace_back(std::to_string(this->unavailable_channel_fulls_.size())); + output.emplace_back(","); + output.emplace_back("\"load_secret_chat_from_database_queries_\":"); output.emplace_back(std::to_string(this->load_secret_chat_from_database_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"loaded_from_database_secret_chats_\":"); output.emplace_back(std::to_string(this->loaded_from_database_secret_chats_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_suggested_actions_\":"); output.emplace_back(std::to_string(this->dialog_suggested_actions_.size())); + output.emplace_back(","); + output.emplace_back("\"dismiss_suggested_action_queries_\":"); output.emplace_back(std::to_string(this->dismiss_suggested_action_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"uploaded_profile_photos_\":"); output.emplace_back(std::to_string(this->uploaded_profile_photos_.size())); + output.emplace_back(","); + output.emplace_back("\"import_contact_tasks_\":"); output.emplace_back(std::to_string(this->import_contact_tasks_.size())); + output.emplace_back(","); + output.emplace_back("\"imported_contacts_\":"); output.emplace_back(std::to_string(this->imported_contacts_.size())); + output.emplace_back(","); + output.emplace_back("\"resolved_phone_numbers_\":"); output.emplace_back(std::to_string(this->resolved_phone_numbers_.size())); + output.emplace_back(","); + output.emplace_back("\"user_messages_\":"); output.emplace_back(std::to_string(this->user_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"channel_messages_\":"); output.emplace_back(std::to_string(this->channel_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"load_contacts_queries_\":"); output.emplace_back(std::to_string(this->load_contacts_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"load_imported_contacts_queries_\":"); output.emplace_back(std::to_string(this->load_imported_contacts_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"all_imported_contacts_\":"); output.emplace_back(std::to_string(this->all_imported_contacts_.size())); + output.emplace_back(","); + output.emplace_back("\"user_full_contact_require_premium_\":"); output.emplace_back(std::to_string(this->user_full_contact_require_premium_.size())); + output.emplace_back(","); + output.emplace_back("\"linked_channel_ids_\":"); output.emplace_back(std::to_string(this->linked_channel_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"restricted_user_ids_\":"); output.emplace_back(std::to_string(this->restricted_user_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"restricted_channel_ids_\":"); output.emplace_back(std::to_string(this->restricted_channel_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"next_all_imported_contacts_\":"); output.emplace_back(std::to_string(this->next_all_imported_contacts_.size())); + output.emplace_back(","); + output.emplace_back("\"imported_contacts_unique_id_\":"); output.emplace_back(std::to_string(this->imported_contacts_unique_id_.size())); + output.emplace_back(","); + output.emplace_back("\"imported_contacts_pos_\":"); output.emplace_back(std::to_string(this->imported_contacts_pos_.size())); + output.emplace_back(","); + output.emplace_back("\"imported_contact_user_ids_\":"); output.emplace_back(std::to_string(this->imported_contact_user_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"unimported_contact_invites_\":"); output.emplace_back(std::to_string(this->unimported_contact_invites_.size())); } + } // namespace td diff --git a/td/telegram/ContactsManager.h b/td/telegram/ContactsManager.h index d94ea45ea..9bf818ead 100644 --- a/td/telegram/ContactsManager.h +++ b/td/telegram/ContactsManager.h @@ -74,6 +74,7 @@ class Td; class ContactsManager final : public Actor { public: + void memory_stats(vector &output); ContactsManager(Td *td, ActorShared<> parent); ContactsManager(const ContactsManager &) = delete; ContactsManager &operator=(const ContactsManager &) = delete; @@ -83,8 +84,6 @@ class ContactsManager final : public Actor { static UserId load_my_id(); - void memory_stats(vector &output); - static UserId get_user_id(const tl_object_ptr &user); static ChatId get_chat_id(const tl_object_ptr &chat); static ChannelId get_channel_id(const tl_object_ptr &chat); diff --git a/td/telegram/CountryInfoManager.cpp b/td/telegram/CountryInfoManager.cpp index 06cacb7d8..3c8d7bed9 100644 --- a/td/telegram/CountryInfoManager.cpp +++ b/td/telegram/CountryInfoManager.cpp @@ -610,4 +610,8 @@ FlatHashMap> CountryInfoMana string CountryInfoManager::fragment_prefixes_str_; vector CountryInfoManager::fragment_prefixes_; +void CountryInfoManager::memory_stats(vector &output) { + output.emplace_back("\"pending_load_country_queries_\":"); output.emplace_back(std::to_string(this->pending_load_country_queries_.size())); +} + } // namespace td diff --git a/td/telegram/CountryInfoManager.h b/td/telegram/CountryInfoManager.h index 001c898f1..efee63bf7 100644 --- a/td/telegram/CountryInfoManager.h +++ b/td/telegram/CountryInfoManager.h @@ -25,6 +25,7 @@ class Td; class CountryInfoManager final : public Actor { public: + void memory_stats(vector &output); CountryInfoManager(Td *td, ActorShared<> parent); void get_countries(Promise> &&promise); diff --git a/td/telegram/DialogActionManager.cpp b/td/telegram/DialogActionManager.cpp index fa07adc94..8eed9211b 100644 --- a/td/telegram/DialogActionManager.cpp +++ b/td/telegram/DialogActionManager.cpp @@ -401,4 +401,10 @@ void DialogActionManager::clear_active_dialog_actions(DialogId dialog_id) { } } +void DialogActionManager::memory_stats(vector &output) { + output.emplace_back("\"active_dialog_actions_\":"); output.emplace_back(std::to_string(this->active_dialog_actions_.size())); + output.emplace_back(","); + output.emplace_back("\"set_typing_query_\":"); output.emplace_back(std::to_string(this->set_typing_query_.size())); +} + } // namespace td diff --git a/td/telegram/DialogActionManager.h b/td/telegram/DialogActionManager.h index 3cd87a6cf..5ea842916 100644 --- a/td/telegram/DialogActionManager.h +++ b/td/telegram/DialogActionManager.h @@ -25,6 +25,7 @@ class Td; class DialogActionManager final : public Actor { public: + void memory_stats(vector &output); DialogActionManager(Td *td, ActorShared<> parent); void on_dialog_action(DialogId dialog_id, MessageId top_thread_message_id, DialogId typing_dialog_id, diff --git a/td/telegram/DialogFilterManager.cpp b/td/telegram/DialogFilterManager.cpp index a2a2309a3..a6a155edf 100644 --- a/td/telegram/DialogFilterManager.cpp +++ b/td/telegram/DialogFilterManager.cpp @@ -2210,4 +2210,14 @@ void DialogFilterManager::get_current_state(vector &output) { + output.emplace_back("\"server_dialog_filters_\":"); output.emplace_back(std::to_string(this->server_dialog_filters_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_filters_\":"); output.emplace_back(std::to_string(this->dialog_filters_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_filter_reload_queries_\":"); output.emplace_back(std::to_string(this->dialog_filter_reload_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"recommended_dialog_filters_\":"); output.emplace_back(std::to_string(this->recommended_dialog_filters_.size())); +} + } // namespace td diff --git a/td/telegram/DialogFilterManager.h b/td/telegram/DialogFilterManager.h index 956fccf4e..560f6f061 100644 --- a/td/telegram/DialogFilterManager.h +++ b/td/telegram/DialogFilterManager.h @@ -28,6 +28,7 @@ class Td; class DialogFilterManager final : public Actor { public: + void memory_stats(vector &output); DialogFilterManager(Td *td, ActorShared<> parent); DialogFilterManager(const DialogFilterManager &) = delete; DialogFilterManager &operator=(const DialogFilterManager &) = delete; diff --git a/td/telegram/DialogInviteLinkManager.cpp b/td/telegram/DialogInviteLinkManager.cpp index f190dfd76..fa0a67958 100644 --- a/td/telegram/DialogInviteLinkManager.cpp +++ b/td/telegram/DialogInviteLinkManager.cpp @@ -1097,4 +1097,10 @@ void DialogInviteLinkManager::delete_all_revoked_dialog_invite_links(DialogId di ->send(dialog_id, std::move(input_user)); } +void DialogInviteLinkManager::memory_stats(vector &output) { + output.emplace_back("\"invite_link_infos_\":"); output.emplace_back(std::to_string(this->invite_link_infos_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_access_by_invite_link_\":"); output.emplace_back(std::to_string(this->dialog_access_by_invite_link_.size())); +} + } // namespace td diff --git a/td/telegram/DialogInviteLinkManager.h b/td/telegram/DialogInviteLinkManager.h index b073aa848..f5ccf33f2 100644 --- a/td/telegram/DialogInviteLinkManager.h +++ b/td/telegram/DialogInviteLinkManager.h @@ -28,6 +28,7 @@ class Td; class DialogInviteLinkManager final : public Actor { public: + void memory_stats(vector &output); DialogInviteLinkManager(Td *td, ActorShared<> parent); DialogInviteLinkManager(const DialogInviteLinkManager &) = delete; DialogInviteLinkManager &operator=(const DialogInviteLinkManager &) = delete; diff --git a/td/telegram/DialogManager.cpp b/td/telegram/DialogManager.cpp index 66e26c604..fd05d7e95 100644 --- a/td/telegram/DialogManager.cpp +++ b/td/telegram/DialogManager.cpp @@ -2161,4 +2161,16 @@ void DialogManager::drop_username(const string &username) { } } +void DialogManager::memory_stats(vector &output) { + output.emplace_back("\"being_uploaded_dialog_photos_\":"); output.emplace_back(std::to_string(this->being_uploaded_dialog_photos_.size())); + output.emplace_back(","); + output.emplace_back("\"resolved_usernames_\":"); output.emplace_back(std::to_string(this->resolved_usernames_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"inaccessible_resolved_usernames_\":"); output.emplace_back(std::to_string(this->inaccessible_resolved_usernames_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"reload_voice_chat_on_search_usernames_\":"); output.emplace_back(std::to_string(this->reload_voice_chat_on_search_usernames_.size())); + output.emplace_back(","); + output.emplace_back("\"resolve_dialog_username_queries_\":"); output.emplace_back(std::to_string(this->resolve_dialog_username_queries_.size())); +} + } // namespace td diff --git a/td/telegram/DialogManager.h b/td/telegram/DialogManager.h index b6e7e49f9..1febf5e26 100644 --- a/td/telegram/DialogManager.h +++ b/td/telegram/DialogManager.h @@ -42,6 +42,7 @@ class Usernames; class DialogManager final : public Actor { public: + void memory_stats(vector &output); DialogManager(Td *td, ActorShared<> parent); DialogManager(const DialogManager &) = delete; DialogManager &operator=(const DialogManager &) = delete; diff --git a/td/telegram/DialogParticipantManager.cpp b/td/telegram/DialogParticipantManager.cpp index 15ac8bfc7..db60c8e9f 100644 --- a/td/telegram/DialogParticipantManager.cpp +++ b/td/telegram/DialogParticipantManager.cpp @@ -2995,4 +2995,18 @@ void DialogParticipantManager::get_current_state(vector &output) { + output.emplace_back("\"dialog_online_member_counts_\":"); output.emplace_back(std::to_string(this->dialog_online_member_counts_.size())); + output.emplace_back(","); + output.emplace_back("\"user_online_member_dialogs_\":"); output.emplace_back(std::to_string(this->user_online_member_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_administrators_\":"); output.emplace_back(std::to_string(this->dialog_administrators_.size())); + output.emplace_back(","); + output.emplace_back("\"channel_participants_\":"); output.emplace_back(std::to_string(this->channel_participants_.size())); + output.emplace_back(","); + output.emplace_back("\"cached_channel_participants_\":"); output.emplace_back(std::to_string(this->cached_channel_participants_.size())); + output.emplace_back(","); + output.emplace_back("\"join_channel_queries_\":"); output.emplace_back(std::to_string(this->join_channel_queries_.size())); +} + } // namespace td diff --git a/td/telegram/DialogParticipantManager.h b/td/telegram/DialogParticipantManager.h index c7b554e1f..4a1b3f541 100644 --- a/td/telegram/DialogParticipantManager.h +++ b/td/telegram/DialogParticipantManager.h @@ -35,6 +35,7 @@ class Td; class DialogParticipantManager final : public Actor { public: + void memory_stats(vector &output); DialogParticipantManager(Td *td, ActorShared<> parent); DialogParticipantManager(const DialogParticipantManager &) = delete; DialogParticipantManager &operator=(const DialogParticipantManager &) = delete; diff --git a/td/telegram/DocumentsManager.cpp b/td/telegram/DocumentsManager.cpp index 940cdbb7c..ee2198a98 100644 --- a/td/telegram/DocumentsManager.cpp +++ b/td/telegram/DocumentsManager.cpp @@ -757,9 +757,6 @@ void DocumentsManager::merge_documents(FileId new_id, FileId old_id) { LOG_STATUS(td_->file_manager_->merge(new_id, old_id)); } -void DocumentsManager::memory_stats(vector &output) { - output.push_back("\"documents_\":"); output.push_back(std::to_string(documents_.calc_size())); -} string DocumentsManager::get_document_search_text(FileId file_id) const { auto document = get_document(file_id); @@ -782,4 +779,8 @@ string DocumentsManager::get_document_search_text(FileId file_id) const { return sb.as_cslice().str(); } +void DocumentsManager::memory_stats(vector &output) { + output.emplace_back("\"documents_\":"); output.emplace_back(std::to_string(this->documents_.calc_size())); +} + } // namespace td diff --git a/td/telegram/DocumentsManager.h b/td/telegram/DocumentsManager.h index 5ce738915..d453b7e7b 100644 --- a/td/telegram/DocumentsManager.h +++ b/td/telegram/DocumentsManager.h @@ -30,6 +30,7 @@ class Td; class DocumentsManager { public: + void memory_stats(vector &output); explicit DocumentsManager(Td *td); DocumentsManager(const DocumentsManager &) = delete; DocumentsManager &operator=(const DocumentsManager &) = delete; @@ -82,7 +83,6 @@ class DocumentsManager { tl_object_ptr get_document_object(FileId file_id, PhotoFormat thumbnail_format) const; - void memory_stats(vector &output); enum class Subtype : int32 { Background, Pattern, Ringtone, Story, Other }; Document on_get_document(RemoteDocument remote_document, DialogId owner_dialog_id, diff --git a/td/telegram/DownloadManager.cpp b/td/telegram/DownloadManager.cpp index 4b3e015dc..669a32174 100644 --- a/td/telegram/DownloadManager.cpp +++ b/td/telegram/DownloadManager.cpp @@ -839,4 +839,7 @@ void DownloadManager::Counters::parse(ParserT &parser) { td::parse(downloaded_size, parser); } +void DownloadManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/DownloadManager.h b/td/telegram/DownloadManager.h index b352b31ed..65133cf51 100644 --- a/td/telegram/DownloadManager.h +++ b/td/telegram/DownloadManager.h @@ -20,6 +20,7 @@ namespace td { class DownloadManager : public Actor { public: + void memory_stats(vector &output); struct Counters { int64 total_size{}; int32 total_count{}; diff --git a/td/telegram/FileReferenceManager.cpp b/td/telegram/FileReferenceManager.cpp index f4e1095dc..e0664c7c4 100644 --- a/td/telegram/FileReferenceManager.cpp +++ b/td/telegram/FileReferenceManager.cpp @@ -508,9 +508,7 @@ td_api::object_ptr FileReferenceManager::get_message_object(Fil } void FileReferenceManager::memory_stats(vector &output) { - output.push_back("\"nodes_\":"); output.push_back(std::to_string(nodes_.calc_size())); - output.push_back(","); - output.push_back("\"file_sources_\":"); output.push_back(std::to_string(file_sources_.size())); + output.emplace_back("\"nodes_\":"); output.emplace_back(std::to_string(this->nodes_.calc_size())); } } // namespace td diff --git a/td/telegram/FileReferenceManager.h b/td/telegram/FileReferenceManager.h index a2938dd94..a37f7d478 100644 --- a/td/telegram/FileReferenceManager.h +++ b/td/telegram/FileReferenceManager.h @@ -38,6 +38,7 @@ extern int VERBOSITY_NAME(file_references); class FileReferenceManager final : public Actor { public: + void memory_stats(vector &output); explicit FileReferenceManager(ActorShared<> parent); FileReferenceManager(const FileReferenceManager &) = delete; FileReferenceManager &operator=(const FileReferenceManager &) = delete; @@ -94,8 +95,6 @@ class FileReferenceManager final : public Actor { template FileSourceId parse_file_source(Td *td, ParserT &parser); - void memory_stats(vector &output); - private: struct Destination { NodeId node_id; diff --git a/td/telegram/ForumTopicManager.cpp b/td/telegram/ForumTopicManager.cpp index 878a9a1c0..5c279a28c 100644 --- a/td/telegram/ForumTopicManager.cpp +++ b/td/telegram/ForumTopicManager.cpp @@ -1228,4 +1228,8 @@ void ForumTopicManager::on_topic_message_count_changed(DialogId dialog_id, Messa } } +void ForumTopicManager::memory_stats(vector &output) { + output.emplace_back("\"dialog_topics_\":"); output.emplace_back(std::to_string(this->dialog_topics_.calc_size())); +} + } // namespace td diff --git a/td/telegram/ForumTopicManager.h b/td/telegram/ForumTopicManager.h index 34d1ecd29..d24a78258 100644 --- a/td/telegram/ForumTopicManager.h +++ b/td/telegram/ForumTopicManager.h @@ -32,6 +32,7 @@ class Td; class ForumTopicManager final : public Actor { public: + void memory_stats(vector &output); ForumTopicManager(Td *td, ActorShared<> parent); ForumTopicManager(const ForumTopicManager &) = delete; ForumTopicManager &operator=(const ForumTopicManager &) = delete; diff --git a/td/telegram/GameManager.cpp b/td/telegram/GameManager.cpp index bbbff97f4..a05412d6a 100644 --- a/td/telegram/GameManager.cpp +++ b/td/telegram/GameManager.cpp @@ -305,4 +305,7 @@ td_api::object_ptr GameManager::get_game_high_scores_obj return result; } +void GameManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/GameManager.h b/td/telegram/GameManager.h index aae970a32..294fb7c54 100644 --- a/td/telegram/GameManager.h +++ b/td/telegram/GameManager.h @@ -22,6 +22,7 @@ class Td; class GameManager final : public Actor { public: + void memory_stats(vector &output); GameManager(Td *td, ActorShared<> parent); GameManager(const GameManager &) = delete; GameManager &operator=(const GameManager &) = delete; diff --git a/td/telegram/GroupCallManager.cpp b/td/telegram/GroupCallManager.cpp index 04529d154..27adfdf0e 100644 --- a/td/telegram/GroupCallManager.cpp +++ b/td/telegram/GroupCallManager.cpp @@ -1006,17 +1006,6 @@ void GroupCallManager::tear_down() { parent_.reset(); } -void GroupCallManager::memory_stats(vector &output) { - output.push_back("\"group_call_participants_\":"); output.push_back(std::to_string(group_call_participants_.size())); - output.push_back(","); - output.push_back("\"group_call_recent_speakers_\":"); output.push_back(std::to_string(group_call_recent_speakers_.size())); - output.push_back(","); - output.push_back("\"group_calls_\":"); output.push_back(std::to_string(group_calls_.size())); - output.push_back(","); - output.push_back("\"input_group_call_ids_\":"); output.push_back(std::to_string(input_group_call_ids_.size())); - output.push_back(","); - output.push_back("\"pending_join_requests_\":"); output.push_back(std::to_string(pending_join_requests_.size())); -} void GroupCallManager::on_update_group_call_participant_order_timeout_callback(void *group_call_manager_ptr, int64 group_call_id_int) { @@ -4915,4 +4904,22 @@ void GroupCallManager::send_update_group_call_participant(InputGroupCallId input send_update_group_call_participant(group_call->group_call_id, participant, source); } +void GroupCallManager::memory_stats(vector &output) { + output.emplace_back("\"input_group_call_ids_\":"); output.emplace_back(std::to_string(this->input_group_call_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"group_calls_\":"); output.emplace_back(std::to_string(this->group_calls_.size())); + output.emplace_back(","); + output.emplace_back("\"group_call_participants_\":"); output.emplace_back(std::to_string(this->group_call_participants_.size())); + output.emplace_back(","); + output.emplace_back("\"participant_id_to_group_call_id_\":"); output.emplace_back(std::to_string(this->participant_id_to_group_call_id_.size())); + output.emplace_back(","); + output.emplace_back("\"group_call_recent_speakers_\":"); output.emplace_back(std::to_string(this->group_call_recent_speakers_.size())); + output.emplace_back(","); + output.emplace_back("\"load_group_call_queries_\":"); output.emplace_back(std::to_string(this->load_group_call_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_join_requests_\":"); output.emplace_back(std::to_string(this->pending_join_requests_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_join_presentation_requests_\":"); output.emplace_back(std::to_string(this->pending_join_presentation_requests_.size())); +} + } // namespace td diff --git a/td/telegram/GroupCallManager.h b/td/telegram/GroupCallManager.h index fcb8057d2..4f5e7a13a 100644 --- a/td/telegram/GroupCallManager.h +++ b/td/telegram/GroupCallManager.h @@ -32,6 +32,7 @@ class Td; class GroupCallManager final : public Actor { public: + void memory_stats(vector &output); GroupCallManager(Td *td, ActorShared<> parent); GroupCallManager(const GroupCallManager &) = delete; GroupCallManager &operator=(const GroupCallManager &) = delete; @@ -39,8 +40,6 @@ class GroupCallManager final : public Actor { GroupCallManager &operator=(GroupCallManager &&) = delete; ~GroupCallManager() final; - void memory_stats(vector &output); - DialogId get_group_call_participant_id(const td_api::object_ptr &message_sender); bool is_group_call_being_joined(InputGroupCallId input_group_call_id) const; diff --git a/td/telegram/InlineQueriesManager.cpp b/td/telegram/InlineQueriesManager.cpp index bb6452726..ba7916431 100644 --- a/td/telegram/InlineQueriesManager.cpp +++ b/td/telegram/InlineQueriesManager.cpp @@ -2221,13 +2221,13 @@ void InlineQueriesManager::remove_recent_inline_bot(UserId bot_user_id, Promise< } void InlineQueriesManager::memory_stats(vector &output) { - output.push_back("\"recently_used_bot_user_ids_\":"); output.push_back(std::to_string(recently_used_bot_user_ids_.size())); - output.push_back(","); - output.push_back("\"inline_query_results_\":"); output.push_back(std::to_string(inline_query_results_.size())); - output.push_back(","); - output.push_back("\"inline_message_contents_\":"); output.push_back(std::to_string(inline_message_contents_.size())); - output.push_back(","); - output.push_back("\"query_id_to_bot_user_id_\":"); output.push_back(std::to_string(query_id_to_bot_user_id_.size())); + output.emplace_back("\"recently_used_bot_user_ids_\":"); output.emplace_back(std::to_string(this->recently_used_bot_user_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"inline_query_results_\":"); output.emplace_back(std::to_string(this->inline_query_results_.size())); + output.emplace_back(","); + output.emplace_back("\"inline_message_contents_\":"); output.emplace_back(std::to_string(this->inline_message_contents_.size())); + output.emplace_back(","); + output.emplace_back("\"query_id_to_bot_user_id_\":"); output.emplace_back(std::to_string(this->query_id_to_bot_user_id_.size())); } } // namespace td diff --git a/td/telegram/InlineQueriesManager.h b/td/telegram/InlineQueriesManager.h index 9b6c403b0..23f1a2de7 100644 --- a/td/telegram/InlineQueriesManager.h +++ b/td/telegram/InlineQueriesManager.h @@ -36,9 +36,8 @@ class Game; class InlineQueriesManager final : public Actor { public: - InlineQueriesManager(Td *td, ActorShared<> parent); - void memory_stats(vector &output); + InlineQueriesManager(Td *td, ActorShared<> parent); void after_get_difference(); diff --git a/td/telegram/LinkManager.cpp b/td/telegram/LinkManager.cpp index bfaa9d40a..7676a6320 100644 --- a/td/telegram/LinkManager.cpp +++ b/td/telegram/LinkManager.cpp @@ -3057,4 +3057,12 @@ Result LinkManager::get_message_link_info(Slice url) { return std::move(info); } +void LinkManager::memory_stats(vector &output) { + output.emplace_back("\"autologin_domains_\":"); output.emplace_back(std::to_string(this->autologin_domains_.size())); + output.emplace_back(","); + output.emplace_back("\"url_auth_domains_\":"); output.emplace_back(std::to_string(this->url_auth_domains_.size())); + output.emplace_back(","); + output.emplace_back("\"whitelisted_domains_\":"); output.emplace_back(std::to_string(this->whitelisted_domains_.size())); +} + } // namespace td diff --git a/td/telegram/LinkManager.h b/td/telegram/LinkManager.h index 1d302e6e8..0735be9b3 100644 --- a/td/telegram/LinkManager.h +++ b/td/telegram/LinkManager.h @@ -29,6 +29,7 @@ class Td; class LinkManager final : public Actor { public: + void memory_stats(vector &output); LinkManager(Td *td, ActorShared<> parent); LinkManager(const LinkManager &) = delete; diff --git a/td/telegram/MemoryManager.cpp b/td/telegram/MemoryManager.cpp index 59465d6eb..f70736580 100644 --- a/td/telegram/MemoryManager.cpp +++ b/td/telegram/MemoryManager.cpp @@ -11,30 +11,12 @@ #include "td/telegram/telegram_api.h" #include "td/telegram/AccessRights.h" -#include "td/telegram/AuthManager.h" -#include "td/telegram/ConfigManager.h" -#include "td/telegram/ContactsManager.h" #include "td/telegram/DialogId.h" #include "td/telegram/Document.h" -#include "td/telegram/DocumentsManager.h" -#include "td/telegram/FileReferenceManager.h" #include "td/telegram/files/FileLocation.h" -#include "td/telegram/files/FileManager.h" -#include "td/telegram/WebPagesManager.h" -#include "td/telegram/StickersManager.h" -#include "td/telegram/VideoNotesManager.h" -#include "td/telegram/VideosManager.h" -#include "td/telegram/AudiosManager.h" -#include "td/telegram/AnimationsManager.h" -#include "td/telegram/GroupCallManager.h" -#include "td/telegram/BackgroundManager.h" -#include "td/telegram/PollManager.h" -#include "td/telegram/InlineQueriesManager.h" #include "td/telegram/files/FileType.h" #include "td/telegram/Global.h" -#include "td/telegram/LanguagePackManager.h" #include "td/telegram/logevent/LogEvent.h" -#include "td/telegram/MessagesManager.h" #include "td/telegram/misc.h" #include "td/telegram/net/DcId.h" #include "td/telegram/net/MtprotoHeader.h" @@ -64,6 +46,60 @@ #include #include +#include "td/telegram/CallbackQueriesManager.h" +#include "td/telegram/CountryInfoManager.h" +#include "td/telegram/DownloadManager.h" +#include "td/telegram/GameManager.h" +#include "td/telegram/LinkManager.h" +#include "td/telegram/OptionManager.h" +#include "td/telegram/PrivacyManager.h" +#include "td/telegram/SponsoredMessageManager.h" +#include "td/telegram/ThemeManager.h" +#include "td/telegram/VoiceNotesManager.h" +#include "td/telegram/files/FileManager.h" +#include "td/telegram/AutosaveManager.h" +#include "td/telegram/TranslationManager.h" +#include "td/telegram/NotificationSettingsManager.h" +#include "td/telegram/ReactionManager.h" +#include "td/telegram/TopDialogManager.h" +#include "td/telegram/AttachMenuManager.h" +#include "td/telegram/AuthManager.h" +#include "td/telegram/BotInfoManager.h" +#include "td/telegram/ForumTopicManager.h" +#include "td/telegram/NotificationManager.h" +#include "td/telegram/AccountManager.h" +#include "td/telegram/StatisticsManager.h" +#include "td/telegram/BoostManager.h" +#include "td/telegram/CommonDialogManager.h" +#include "td/telegram/DialogActionManager.h" +#include "td/telegram/DialogInviteLinkManager.h" +#include "td/telegram/MessageImportManager.h" +#include "td/telegram/SavedMessagesManager.h" +#include "td/telegram/TranscriptionManager.h" +#include "td/telegram/BusinessManager.h" +#include "td/telegram/DialogFilterManager.h" +#include "td/telegram/DialogManager.h" +#include "td/telegram/DialogParticipantManager.h" +#include "td/telegram/PeopleNearbyManager.h" +#include "td/telegram/QuickReplyManager.h" +#include "td/telegram/StoryManager.h" +#include "td/telegram/TimeZoneManager.h" +#include "td/telegram/UpdatesManager.h" +#include "td/telegram/AnimationsManager.h" +#include "td/telegram/AudiosManager.h" +#include "td/telegram/BackgroundManager.h" +#include "td/telegram/ContactsManager.h" +#include "td/telegram/DocumentsManager.h" +#include "td/telegram/FileReferenceManager.h" +#include "td/telegram/GroupCallManager.h" +#include "td/telegram/InlineQueriesManager.h" +#include "td/telegram/MessagesManager.h" +#include "td/telegram/PollManager.h" +#include "td/telegram/StickersManager.h" +#include "td/telegram/VideoNotesManager.h" +#include "td/telegram/VideosManager.h" +#include "td/telegram/WebPagesManager.h" + namespace td { tl_object_ptr MemoryStats::get_memory_statistics_object() const { @@ -83,100 +119,13 @@ void MemoryManager::tear_down() { void MemoryManager::get_memory_stats(bool full, Promise promise) const { vector output = {"{"}; - output.push_back("\"memory_stats\":{"); + output.emplace_back("\"memory_stats\":{"); - output.push_back("\"messages_manager_\":{"); - td_->messages_manager_->memory_stats(output); - output.push_back("}"); + this->print_managers_memory_stats(output); - output.push_back(","); + output.emplace_back("}"); - output.push_back("\"contacts_manager_\":{"); - td_->contacts_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"web_pages_manager_\":{"); - td_->web_pages_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"stickers_manager_\":{"); - td_->stickers_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"documents_manager_\":{"); - td_->documents_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"video_notes_manager_\":{"); - td_->video_notes_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"videos_manager_\":{"); - td_->videos_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"audios_manager_\":{"); - td_->audios_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"animations_manager_\":{"); - td_->animations_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"file_manager_\":{"); - td_->file_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"file_reference_manager_\":{"); - td_->file_reference_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"group_call_manager_\":{"); - td_->group_call_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"background_manager_\":{"); - td_->background_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back(","); - - output.push_back("\"inline_queries_manager_\":{"); - td_->inline_queries_manager_->memory_stats(output); - output.push_back("}"); - - - output.push_back(","); - - output.push_back("\"poll_manager_\":{"); - td_->poll_manager_->memory_stats(output); - output.push_back("}"); - - output.push_back("}"); - - output.push_back("}"); + output.emplace_back("}"); string s; s = accumulate(output.begin(), output.end(), s); @@ -193,4 +142,112 @@ void MemoryManager::get_current_state(vector> // Never return updates } +void MemoryManager::print_managers_memory_stats(vector &output) const { + output.emplace_back("\"callback_queries_manager_\":{"); td_->callback_queries_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"country_info_manager_\":{"); td_->country_info_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"download_manager_\":{"); td_->download_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"game_manager_\":{"); td_->game_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"link_manager_\":{"); td_->link_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"option_manager_\":{"); td_->option_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"privacy_manager_\":{"); td_->privacy_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"sponsored_message_manager_\":{"); td_->sponsored_message_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"theme_manager_\":{"); td_->theme_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"voice_notes_manager_\":{"); td_->voice_notes_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"file_manager_\":{"); td_->file_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"autosave_manager_\":{"); td_->autosave_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"translation_manager_\":{"); td_->translation_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"notification_settings_manager_\":{"); td_->notification_settings_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"reaction_manager_\":{"); td_->reaction_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"top_dialog_manager_\":{"); td_->top_dialog_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"attach_menu_manager_\":{"); td_->attach_menu_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"auth_manager_\":{"); td_->auth_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"bot_info_manager_\":{"); td_->bot_info_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"forum_topic_manager_\":{"); td_->forum_topic_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"notification_manager_\":{"); td_->notification_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"account_manager_\":{"); td_->account_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"statistics_manager_\":{"); td_->statistics_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"boost_manager_\":{"); td_->boost_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"common_dialog_manager_\":{"); td_->common_dialog_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"dialog_action_manager_\":{"); td_->dialog_action_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"dialog_invite_link_manager_\":{"); td_->dialog_invite_link_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"message_import_manager_\":{"); td_->message_import_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"saved_messages_manager_\":{"); td_->saved_messages_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"transcription_manager_\":{"); td_->transcription_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"business_manager_\":{"); td_->business_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"dialog_filter_manager_\":{"); td_->dialog_filter_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"dialog_manager_\":{"); td_->dialog_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"dialog_participant_manager_\":{"); td_->dialog_participant_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"people_nearby_manager_\":{"); td_->people_nearby_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"quick_reply_manager_\":{"); td_->quick_reply_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"story_manager_\":{"); td_->story_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"time_zone_manager_\":{"); td_->time_zone_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"updates_manager_\":{"); td_->updates_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"animations_manager_\":{"); td_->animations_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"audios_manager_\":{"); td_->audios_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"background_manager_\":{"); td_->background_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"contacts_manager_\":{"); td_->contacts_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"documents_manager_\":{"); td_->documents_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"file_reference_manager_\":{"); td_->file_reference_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"group_call_manager_\":{"); td_->group_call_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"inline_queries_manager_\":{"); td_->inline_queries_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"messages_manager_\":{"); td_->messages_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"poll_manager_\":{"); td_->poll_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"stickers_manager_\":{"); td_->stickers_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"video_notes_manager_\":{"); td_->video_notes_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"videos_manager_\":{"); td_->videos_manager_->memory_stats(output); output.emplace_back("}"); + output.emplace_back(","); + output.emplace_back("\"web_pages_manager_\":{"); td_->web_pages_manager_->memory_stats(output); output.emplace_back("}"); +} + } // namespace td diff --git a/td/telegram/MemoryManager.h b/td/telegram/MemoryManager.h index 2f3e9c904..7303eb74b 100644 --- a/td/telegram/MemoryManager.h +++ b/td/telegram/MemoryManager.h @@ -56,6 +56,8 @@ class MemoryManager : public Actor { void tear_down() override; + void print_managers_memory_stats(vector &output) const; + Td *td_; ActorShared<> parent_; }; diff --git a/td/telegram/MessageImportManager.cpp b/td/telegram/MessageImportManager.cpp index 5ba528efd..0112f3539 100644 --- a/td/telegram/MessageImportManager.cpp +++ b/td/telegram/MessageImportManager.cpp @@ -579,4 +579,12 @@ void MessageImportManager::on_imported_message_attachments_uploaded(int64 random td_->create_handler(std::move(promise))->send(dialog_id, pending_message_import->import_id); } +void MessageImportManager::memory_stats(vector &output) { + output.emplace_back("\"being_uploaded_imported_messages_\":"); output.emplace_back(std::to_string(this->being_uploaded_imported_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"being_uploaded_imported_message_attachments_\":"); output.emplace_back(std::to_string(this->being_uploaded_imported_message_attachments_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_message_imports_\":"); output.emplace_back(std::to_string(this->pending_message_imports_.size())); +} + } // namespace td diff --git a/td/telegram/MessageImportManager.h b/td/telegram/MessageImportManager.h index 2c2a938ae..c3e286f37 100644 --- a/td/telegram/MessageImportManager.h +++ b/td/telegram/MessageImportManager.h @@ -27,6 +27,7 @@ class Td; class MessageImportManager final : public Actor { public: + void memory_stats(vector &output); MessageImportManager(Td *td, ActorShared<> parent); void get_message_file_type(const string &message_file_head, diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 9843df07f..1fad5c598 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -5698,69 +5698,6 @@ void MessagesManager::update_message_reply_count(Dialog *d, MessageId message_id } } -void MessagesManager::memory_stats(vector &output) { - output.push_back("\"being_sent_messages_\":"); output.push_back(std::to_string(this->being_sent_messages_.size())); - output.push_back(","); - output.push_back("\"being_loaded_secret_thumbnails_\":"); output.push_back(std::to_string(this->being_loaded_secret_thumbnails_.size())); - output.push_back(","); - output.push_back("\"being_uploaded_files_\":"); output.push_back(std::to_string(this->being_uploaded_files_.size())); - output.push_back(","); - output.push_back("\"being_uploaded_thumbnails_\":"); output.push_back(std::to_string(this->being_uploaded_thumbnails_.size())); - output.push_back(","); - output.push_back("\"dialog_folders_\":"); output.push_back(std::to_string(this->dialog_folders_.size())); - output.push_back(","); - output.push_back("\"dialog_lists_\":"); output.push_back(std::to_string(this->dialog_lists_.size())); - output.push_back(","); - output.push_back("\"dialogs_\":"); output.push_back(std::to_string(this->dialogs_.calc_size())); - output.push_back(","); - output.push_back("\"found_call_messages_\":"); output.push_back(std::to_string(this->found_call_messages_.size())); - output.push_back(","); - output.push_back("\"found_dialog_messages_\":"); output.push_back(std::to_string(this->found_dialog_messages_.size())); - output.push_back(","); - output.push_back("\"found_dialog_messages_dialog_id_\":"); output.push_back(std::to_string(this->found_dialog_messages_dialog_id_.size())); - output.push_back(","); - output.push_back("\"found_fts_messages_\":"); output.push_back(std::to_string(this->found_fts_messages_.size())); - output.push_back(","); - output.push_back("\"postponed_channel_updates_\":"); output.push_back(std::to_string(this->postponed_channel_updates_.size())); - output.push_back(","); - output.push_back("\"is_channel_difference_finished_\":"); output.push_back(std::to_string(this->is_channel_difference_finished_.size())); - output.push_back(","); - output.push_back("\"get_dialogs_tasks_\":"); output.push_back(std::to_string(this->get_dialogs_tasks_.size())); - output.push_back(","); - output.push_back("\"dialog_bot_command_message_ids_\":"); output.push_back(std::to_string(this->dialog_bot_command_message_ids_.size())); - output.push_back(","); - output.push_back("\"found_messages_\":"); output.push_back(std::to_string(this->found_messages_.size())); - output.push_back(","); - output.push_back("\"found_on_server_dialogs_\":"); output.push_back(std::to_string(this->found_on_server_dialogs_.size())); - output.push_back(","); - output.push_back("\"found_public_dialogs_\":"); output.push_back(std::to_string(this->found_public_dialogs_.size())); - output.push_back(","); - output.push_back("\"loaded_dialogs_\":"); output.push_back(std::to_string(this->loaded_dialogs_.size())); - output.push_back(","); - output.push_back("\"search_public_dialogs_queries_\":"); output.push_back(std::to_string(this->search_public_dialogs_queries_.size())); - output.push_back(","); - output.push_back("\"message_embedding_codes_\":"); output.push_back(std::to_string(this->message_embedding_codes_->size())); - output.push_back(","); - output.push_back("\"message_full_id_to_file_source_id_\":"); output.push_back(std::to_string(this->message_full_id_to_file_source_id_.calc_size())); - output.push_back(","); - output.push_back("\"get_dialog_message_by_date_results_\":"); output.push_back(std::to_string(this->get_dialog_message_by_date_results_.size())); - output.push_back(","); - output.push_back("\"get_dialog_query_log_event_id_\":"); output.push_back(std::to_string(this->get_dialog_query_log_event_id_.size())); - output.push_back(","); - output.push_back("\"get_channel_difference_to_log_event_id_\":"); output.push_back(std::to_string(this->get_channel_difference_to_log_event_id_.size())); - output.push_back(","); - output.push_back("\"last_clear_history_message_id_to_dialog_id_\":"); output.push_back(std::to_string(this->last_clear_history_message_id_to_dialog_id_.size())); - output.push_back(","); - output.push_back("\"last_outgoing_forwarded_message_date_\":"); output.push_back(std::to_string(this->last_outgoing_forwarded_message_date_.size())); - output.push_back(","); - output.push_back("\"load_active_live_location_messages_queries_\":"); output.push_back(std::to_string(this->load_active_live_location_messages_queries_.size())); - output.push_back(","); - output.push_back("\"notification_group_id_to_dialog_id_\":"); output.push_back(std::to_string(this->notification_group_id_to_dialog_id_.size())); - output.push_back(","); - output.push_back("\"previous_repaired_read_inbox_max_message_id_\":"); output.push_back(std::to_string(this->previous_repaired_read_inbox_max_message_id_.size())); - output.push_back(","); - output.push_back("\"channel_get_difference_retry_timeouts_\":"); output.push_back(std::to_string(this->channel_get_difference_retry_timeouts_.size())); -} bool MessagesManager::have_dialog_scheduled_messages_in_memory(const Dialog *d) { return d->scheduled_messages != nullptr && !d->scheduled_messages->scheduled_messages_.empty(); @@ -38439,4 +38376,150 @@ void MessagesManager::get_message_file_search_text(MessageFullId message_full_id return promise.set_error(Status::Error(200, "File not found")); } +void MessagesManager::memory_stats(vector &output) { + output.emplace_back("\"being_uploaded_files_\":"); output.emplace_back(std::to_string(this->being_uploaded_files_.size())); + output.emplace_back(","); + output.emplace_back("\"being_uploaded_thumbnails_\":"); output.emplace_back(std::to_string(this->being_uploaded_thumbnails_.size())); + output.emplace_back(","); + output.emplace_back("\"being_loaded_secret_thumbnails_\":"); output.emplace_back(std::to_string(this->being_loaded_secret_thumbnails_.size())); + output.emplace_back(","); + output.emplace_back("\"being_sent_messages_\":"); output.emplace_back(std::to_string(this->being_sent_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"update_message_ids_\":"); output.emplace_back(std::to_string(this->update_message_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_message_group_sends_\":"); output.emplace_back(std::to_string(this->pending_message_group_sends_.size())); + output.emplace_back(","); + output.emplace_back("\"message_id_to_dialog_id_\":"); output.emplace_back(std::to_string(this->message_id_to_dialog_id_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"last_clear_history_message_id_to_dialog_id_\":"); output.emplace_back(std::to_string(this->last_clear_history_message_id_to_dialog_id_.size())); + output.emplace_back(","); + output.emplace_back("\"created_public_broadcasts_\":"); output.emplace_back(std::to_string(this->created_public_broadcasts_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_created_dialogs_\":"); output.emplace_back(std::to_string(this->pending_created_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"dialogs_\":"); output.emplace_back(std::to_string(this->dialogs_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"loaded_dialogs_\":"); output.emplace_back(std::to_string(this->loaded_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"failed_to_load_dialogs_\":"); output.emplace_back(std::to_string(this->failed_to_load_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"postponed_chat_read_inbox_updates_\":"); output.emplace_back(std::to_string(this->postponed_chat_read_inbox_updates_.size())); + output.emplace_back(","); + output.emplace_back("\"search_public_dialogs_queries_\":"); output.emplace_back(std::to_string(this->search_public_dialogs_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"found_public_dialogs_\":"); output.emplace_back(std::to_string(this->found_public_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"found_on_server_dialogs_\":"); output.emplace_back(std::to_string(this->found_on_server_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"get_dialog_message_by_date_results_\":"); output.emplace_back(std::to_string(this->get_dialog_message_by_date_results_.size())); + output.emplace_back(","); + output.emplace_back("\"found_dialog_message_calendars_\":"); output.emplace_back(std::to_string(this->found_dialog_message_calendars_.size())); + output.emplace_back(","); + output.emplace_back("\"found_dialog_messages_\":"); output.emplace_back(std::to_string(this->found_dialog_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"found_dialog_messages_dialog_id_\":"); output.emplace_back(std::to_string(this->found_dialog_messages_dialog_id_.size())); + output.emplace_back(","); + output.emplace_back("\"found_messages_\":"); output.emplace_back(std::to_string(this->found_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"found_call_messages_\":"); output.emplace_back(std::to_string(this->found_call_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"found_fts_messages_\":"); output.emplace_back(std::to_string(this->found_fts_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"get_dialog_queries_\":"); output.emplace_back(std::to_string(this->get_dialog_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"get_dialog_query_log_event_id_\":"); output.emplace_back(std::to_string(this->get_dialog_query_log_event_id_.size())); + output.emplace_back(","); + output.emplace_back("\"replied_by_yet_unsent_messages_\":"); output.emplace_back(std::to_string(this->replied_by_yet_unsent_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"replied_yet_unsent_messages_\":"); output.emplace_back(std::to_string(this->replied_yet_unsent_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"message_to_replied_media_timestamp_messages_\":"); output.emplace_back(std::to_string(this->message_to_replied_media_timestamp_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"story_to_replied_media_timestamp_messages_\":"); output.emplace_back(std::to_string(this->story_to_replied_media_timestamp_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"notification_group_id_to_dialog_id_\":"); output.emplace_back(std::to_string(this->notification_group_id_to_dialog_id_.size())); + output.emplace_back(","); + output.emplace_back("\"active_get_channel_differences_\":"); output.emplace_back(std::to_string(this->active_get_channel_differences_.size())); + output.emplace_back(","); + output.emplace_back("\"get_channel_difference_to_log_event_id_\":"); output.emplace_back(std::to_string(this->get_channel_difference_to_log_event_id_.size())); + output.emplace_back(","); + output.emplace_back("\"channel_get_difference_retry_timeouts_\":"); output.emplace_back(std::to_string(this->channel_get_difference_retry_timeouts_.size())); + output.emplace_back(","); + output.emplace_back("\"postponed_channel_updates_\":"); output.emplace_back(std::to_string(this->postponed_channel_updates_.size())); + output.emplace_back(","); + output.emplace_back("\"is_channel_difference_finished_\":"); output.emplace_back(std::to_string(this->is_channel_difference_finished_.size())); + output.emplace_back(","); + output.emplace_back("\"expected_channel_pts_\":"); output.emplace_back(std::to_string(this->expected_channel_pts_.size())); + output.emplace_back(","); + output.emplace_back("\"expected_channel_max_message_id_\":"); output.emplace_back(std::to_string(this->expected_channel_max_message_id_.size())); + output.emplace_back(","); + output.emplace_back("\"active_live_location_message_full_ids_\":"); output.emplace_back(std::to_string(this->active_live_location_message_full_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"load_active_live_location_messages_queries_\":"); output.emplace_back(std::to_string(this->load_active_live_location_messages_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"load_scheduled_messages_from_database_queries_\":"); output.emplace_back(std::to_string(this->load_scheduled_messages_from_database_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"get_dialogs_tasks_\":"); output.emplace_back(std::to_string(this->get_dialogs_tasks_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_on_get_dialogs_\":"); output.emplace_back(std::to_string(this->pending_on_get_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_channel_on_get_dialogs_\":"); output.emplace_back(std::to_string(this->pending_channel_on_get_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"run_after_get_channel_difference_\":"); output.emplace_back(std::to_string(this->run_after_get_channel_difference_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_secret_message_ids_\":"); output.emplace_back(std::to_string(this->pending_secret_message_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_add_dialog_dependent_dialogs_\":"); output.emplace_back(std::to_string(this->pending_add_dialog_dependent_dialogs_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_add_dialog_data_\":"); output.emplace_back(std::to_string(this->pending_add_dialog_data_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_add_default_join_group_call_as_dialog_id_\":"); output.emplace_back(std::to_string(this->pending_add_default_join_group_call_as_dialog_id_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_add_default_send_message_as_dialog_id_\":"); output.emplace_back(std::to_string(this->pending_add_default_send_message_as_dialog_id_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_bot_command_message_ids_\":"); output.emplace_back(std::to_string(this->dialog_bot_command_message_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"viewed_live_location_tasks_\":"); output.emplace_back(std::to_string(this->viewed_live_location_tasks_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_viewed_live_locations_\":"); output.emplace_back(std::to_string(this->pending_viewed_live_locations_.size())); + output.emplace_back(","); + output.emplace_back("\"yet_unsent_media_queues_\":"); output.emplace_back(std::to_string(this->yet_unsent_media_queues_.size())); + output.emplace_back(","); + output.emplace_back("\"message_full_id_to_file_source_id_\":"); output.emplace_back(std::to_string(this->message_full_id_to_file_source_id_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"last_outgoing_forwarded_message_date_\":"); output.emplace_back(std::to_string(this->last_outgoing_forwarded_message_date_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_viewed_messages_\":"); output.emplace_back(std::to_string(this->dialog_viewed_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"being_reloaded_reactions_\":"); output.emplace_back(std::to_string(this->being_reloaded_reactions_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_dialog_group_call_updates_\":"); output.emplace_back(std::to_string(this->pending_dialog_group_call_updates_.size())); + output.emplace_back(","); + output.emplace_back("\"auth_notification_id_date_\":"); output.emplace_back(std::to_string(this->auth_notification_id_date_.size())); + output.emplace_back(","); + output.emplace_back("\"previous_repaired_read_inbox_max_message_id_\":"); output.emplace_back(std::to_string(this->previous_repaired_read_inbox_max_message_id_.size())); + output.emplace_back(","); + output.emplace_back("\"yet_unsent_message_full_id_to_persistent_message_id_\":"); output.emplace_back(std::to_string(this->yet_unsent_message_full_id_to_persistent_message_id_.size())); + output.emplace_back(","); + output.emplace_back("\"yet_unsent_thread_message_ids_\":"); output.emplace_back(std::to_string(this->yet_unsent_thread_message_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_suffix_load_queries_\":"); output.emplace_back(std::to_string(this->dialog_suffix_load_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_message_views_\":"); output.emplace_back(std::to_string(this->pending_message_views_.size())); + output.emplace_back(","); + output.emplace_back("\"read_history_log_event_ids_\":"); output.emplace_back(std::to_string(this->read_history_log_event_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"updated_read_history_message_ids_\":"); output.emplace_back(std::to_string(this->updated_read_history_message_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_reactions_\":"); output.emplace_back(std::to_string(this->pending_reactions_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_read_reactions_\":"); output.emplace_back(std::to_string(this->pending_read_reactions_.size())); + output.emplace_back(","); + output.emplace_back("\"active_reaction_types_\":"); output.emplace_back(std::to_string(this->active_reaction_types_.size())); + output.emplace_back(","); + output.emplace_back("\"active_reaction_pos_\":"); output.emplace_back(std::to_string(this->active_reaction_pos_.size())); + output.emplace_back(","); + output.emplace_back("\"get_history_queries_\":"); output.emplace_back(std::to_string(this->get_history_queries_.size())); +} + } // namespace td diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h index ccbdf6a4e..053bc3ae4 100644 --- a/td/telegram/MessagesManager.h +++ b/td/telegram/MessagesManager.h @@ -118,6 +118,7 @@ class Usernames; class MessagesManager final : public Actor { public: + void memory_stats(vector &output); static constexpr int32 SEND_MESSAGE_FLAG_DISABLE_WEB_PAGE_PREVIEW = 1 << 1; static constexpr int32 SEND_MESSAGE_FLAG_HAS_REPLY_MARKUP = 1 << 2; static constexpr int32 SEND_MESSAGE_FLAG_HAS_ENTITIES = 1 << 3; @@ -143,8 +144,6 @@ class MessagesManager final : public Actor { static bool is_invalid_poll_message(const telegram_api::Message *message); - void memory_stats(vector &output); - static int32 get_message_date(const tl_object_ptr &message_ptr); void on_get_empty_messages(DialogId dialog_id, const vector &empty_message_ids); diff --git a/td/telegram/NotificationManager.cpp b/td/telegram/NotificationManager.cpp index a7eafd5c1..cf2cf6204 100644 --- a/td/telegram/NotificationManager.cpp +++ b/td/telegram/NotificationManager.cpp @@ -4371,4 +4371,32 @@ void NotificationManager::on_binlog_events(vector &&events) { VLOG(notifications) << "Finish processing binlog events"; } +void NotificationManager::memory_stats(vector &output) { + output.emplace_back("\"running_get_chat_difference_\":"); output.emplace_back(std::to_string(this->running_get_chat_difference_.size())); + output.emplace_back(","); + output.emplace_back("\"group_keys_\":"); output.emplace_back(std::to_string(this->group_keys_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_updates_\":"); output.emplace_back(std::to_string(this->pending_updates_.size())); + output.emplace_back(","); + output.emplace_back("\"call_notification_group_ids_\":"); output.emplace_back(std::to_string(this->call_notification_group_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"available_call_notification_group_ids_\":"); output.emplace_back(std::to_string(this->available_call_notification_group_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"dialog_id_to_call_notification_group_id_\":"); output.emplace_back(std::to_string(this->dialog_id_to_call_notification_group_id_.size())); + output.emplace_back(","); + output.emplace_back("\"temporary_notification_log_event_ids_\":"); output.emplace_back(std::to_string(this->temporary_notification_log_event_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"temporary_edit_notification_log_event_ids_\":"); output.emplace_back(std::to_string(this->temporary_edit_notification_log_event_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"temporary_notifications_\":"); output.emplace_back(std::to_string(this->temporary_notifications_.size())); + output.emplace_back(","); + output.emplace_back("\"temporary_notification_object_ids_\":"); output.emplace_back(std::to_string(this->temporary_notification_object_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"push_notification_promises_\":"); output.emplace_back(std::to_string(this->push_notification_promises_.size())); + output.emplace_back(","); + output.emplace_back("\"active_call_notifications_\":"); output.emplace_back(std::to_string(this->active_call_notifications_.size())); + output.emplace_back(","); + output.emplace_back("\"announcement_id_date_\":"); output.emplace_back(std::to_string(this->announcement_id_date_.size())); +} + } // namespace td diff --git a/td/telegram/NotificationManager.h b/td/telegram/NotificationManager.h index 526e7c5e0..cf76e0e87 100644 --- a/td/telegram/NotificationManager.h +++ b/td/telegram/NotificationManager.h @@ -48,6 +48,7 @@ class Td; class NotificationManager final : public Actor { public: + void memory_stats(vector &output); static constexpr int32 MIN_NOTIFICATION_GROUP_COUNT_MAX = 0; static constexpr int32 MAX_NOTIFICATION_GROUP_COUNT_MAX = 25; static constexpr int32 MIN_NOTIFICATION_GROUP_SIZE_MAX = 1; diff --git a/td/telegram/NotificationSettingsManager.cpp b/td/telegram/NotificationSettingsManager.cpp index ef1d526ec..87a75ae0c 100644 --- a/td/telegram/NotificationSettingsManager.cpp +++ b/td/telegram/NotificationSettingsManager.cpp @@ -1572,4 +1572,18 @@ void NotificationSettingsManager::get_current_state(vector &output) { + output.emplace_back("\"saved_ringtone_file_ids_\":"); output.emplace_back(std::to_string(this->saved_ringtone_file_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"sorted_saved_ringtone_file_ids_\":"); output.emplace_back(std::to_string(this->sorted_saved_ringtone_file_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"being_uploaded_ringtones_\":"); output.emplace_back(std::to_string(this->being_uploaded_ringtones_.size())); + output.emplace_back(","); + output.emplace_back("\"reload_saved_ringtones_queries_\":"); output.emplace_back(std::to_string(this->reload_saved_ringtones_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"repair_saved_ringtones_queries_\":"); output.emplace_back(std::to_string(this->repair_saved_ringtones_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"get_dialog_notification_settings_queries_\":"); output.emplace_back(std::to_string(this->get_dialog_notification_settings_queries_.size())); +} + } // namespace td diff --git a/td/telegram/NotificationSettingsManager.h b/td/telegram/NotificationSettingsManager.h index 8d9468854..2509a819a 100644 --- a/td/telegram/NotificationSettingsManager.h +++ b/td/telegram/NotificationSettingsManager.h @@ -38,6 +38,7 @@ class Td; class NotificationSettingsManager final : public Actor { public: + void memory_stats(vector &output); NotificationSettingsManager(Td *td, ActorShared<> parent); NotificationSettingsManager(const NotificationSettingsManager &) = delete; NotificationSettingsManager &operator=(const NotificationSettingsManager &) = delete; @@ -45,7 +46,7 @@ class NotificationSettingsManager final : public Actor { NotificationSettingsManager &operator=(NotificationSettingsManager &&) = delete; ~NotificationSettingsManager() final; - int32 get_scope_mute_until(NotificationSettingsScope scope) const; + int32 get_scope_mute_until(NotificationSettingsScope scope) const; std::pair get_scope_mute_stories(NotificationSettingsScope scope) const; diff --git a/td/telegram/OptionManager.cpp b/td/telegram/OptionManager.cpp index 76fec7468..5f5c770e9 100644 --- a/td/telegram/OptionManager.cpp +++ b/td/telegram/OptionManager.cpp @@ -1062,4 +1062,8 @@ void OptionManager::get_current_state(vector> } } +void OptionManager::memory_stats(vector &output) { + output.emplace_back("\"pending_get_options_\":"); output.emplace_back(std::to_string(this->pending_get_options_.size())); +} + } // namespace td diff --git a/td/telegram/OptionManager.h b/td/telegram/OptionManager.h index 13bc7fdf6..1cd275add 100644 --- a/td/telegram/OptionManager.h +++ b/td/telegram/OptionManager.h @@ -24,6 +24,7 @@ class TsSeqKeyValue; class OptionManager { public: + void memory_stats(vector &output); explicit OptionManager(Td *td); OptionManager(const OptionManager &) = delete; OptionManager &operator=(const OptionManager &) = delete; diff --git a/td/telegram/PeopleNearbyManager.cpp b/td/telegram/PeopleNearbyManager.cpp index 300755da2..d8d22c784 100644 --- a/td/telegram/PeopleNearbyManager.cpp +++ b/td/telegram/PeopleNearbyManager.cpp @@ -446,4 +446,12 @@ void PeopleNearbyManager::update_is_location_visible() { td_->option_manager_->set_option_boolean("is_location_visible", expire_date != 0); } +void PeopleNearbyManager::memory_stats(vector &output) { + output.emplace_back("\"users_nearby_\":"); output.emplace_back(std::to_string(this->users_nearby_.size())); + output.emplace_back(","); + output.emplace_back("\"channels_nearby_\":"); output.emplace_back(std::to_string(this->channels_nearby_.size())); + output.emplace_back(","); + output.emplace_back("\"all_users_nearby_\":"); output.emplace_back(std::to_string(this->all_users_nearby_.size())); +} + } // namespace td diff --git a/td/telegram/PeopleNearbyManager.h b/td/telegram/PeopleNearbyManager.h index acf9f34f4..dd4002769 100644 --- a/td/telegram/PeopleNearbyManager.h +++ b/td/telegram/PeopleNearbyManager.h @@ -26,6 +26,7 @@ class Td; class PeopleNearbyManager final : public Actor { public: + void memory_stats(vector &output); PeopleNearbyManager(Td *td, ActorShared<> parent); void search_dialogs_nearby(const Location &location, Promise> &&promise); diff --git a/td/telegram/PollManager.cpp b/td/telegram/PollManager.cpp index fda892a42..4cc0e5462 100644 --- a/td/telegram/PollManager.cpp +++ b/td/telegram/PollManager.cpp @@ -1970,15 +1970,21 @@ void PollManager::on_binlog_events(vector &&events) { } void PollManager::memory_stats(vector &output) { - output.push_back("\"polls_\":"); output.push_back(std::to_string(polls_.calc_size())); - output.push_back(","); - output.push_back("\"pending_answers_\":"); output.push_back(std::to_string(pending_answers_.size())); - output.push_back(","); - output.push_back("\"poll_voters_\":"); output.push_back(std::to_string(poll_voters_.size())); - output.push_back(","); - output.push_back("\"loaded_from_database_polls_\":"); output.push_back(std::to_string(loaded_from_database_polls_.size())); - output.push_back(","); - output.push_back("\"being_closed_polls_\":"); output.push_back(std::to_string(being_closed_polls_.size())); + output.emplace_back("\"polls_\":"); output.emplace_back(std::to_string(this->polls_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"server_poll_messages_\":"); output.emplace_back(std::to_string(this->server_poll_messages_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"other_poll_messages_\":"); output.emplace_back(std::to_string(this->other_poll_messages_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"reply_poll_counts_\":"); output.emplace_back(std::to_string(this->reply_poll_counts_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"pending_answers_\":"); output.emplace_back(std::to_string(this->pending_answers_.size())); + output.emplace_back(","); + output.emplace_back("\"poll_voters_\":"); output.emplace_back(std::to_string(this->poll_voters_.size())); + output.emplace_back(","); + output.emplace_back("\"loaded_from_database_polls_\":"); output.emplace_back(std::to_string(this->loaded_from_database_polls_.size())); + output.emplace_back(","); + output.emplace_back("\"being_closed_polls_\":"); output.emplace_back(std::to_string(this->being_closed_polls_.size())); } } // namespace td diff --git a/td/telegram/PollManager.h b/td/telegram/PollManager.h index 7e7438a22..9cca98ba3 100644 --- a/td/telegram/PollManager.h +++ b/td/telegram/PollManager.h @@ -39,6 +39,7 @@ class Td; class PollManager final : public Actor { public: + void memory_stats(vector &output); PollManager(Td *td, ActorShared<> parent); PollManager(const PollManager &) = delete; @@ -47,8 +48,6 @@ class PollManager final : public Actor { PollManager &operator=(PollManager &&) = delete; ~PollManager() final; - void memory_stats(vector &output); - static bool is_local_poll_id(PollId poll_id); PollId create_poll(string &&question, vector &&options, bool is_anonymous, bool allow_multiple_answers, diff --git a/td/telegram/PrivacyManager.cpp b/td/telegram/PrivacyManager.cpp index 0da2084eb..dd2d7a061 100644 --- a/td/telegram/PrivacyManager.cpp +++ b/td/telegram/PrivacyManager.cpp @@ -245,4 +245,7 @@ void PrivacyManager::do_update_privacy(UserPrivacySetting user_privacy_setting, } } +void PrivacyManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/PrivacyManager.h b/td/telegram/PrivacyManager.h index fd8e0d379..b87f877df 100644 --- a/td/telegram/PrivacyManager.h +++ b/td/telegram/PrivacyManager.h @@ -25,6 +25,7 @@ class Td; class PrivacyManager final : public Actor { public: + void memory_stats(vector &output); PrivacyManager(Td *td, ActorShared<> parent); void get_privacy(tl_object_ptr key, diff --git a/td/telegram/QuickReplyManager.cpp b/td/telegram/QuickReplyManager.cpp index 4d16e4b55..98a7fa411 100644 --- a/td/telegram/QuickReplyManager.cpp +++ b/td/telegram/QuickReplyManager.cpp @@ -1793,4 +1793,14 @@ void QuickReplyManager::get_current_state(vector &output) { + output.emplace_back("\"deleted_shortcut_ids_\":"); output.emplace_back(std::to_string(this->deleted_shortcut_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"get_shortcut_messages_queries_\":"); output.emplace_back(std::to_string(this->get_shortcut_messages_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"deleted_message_full_ids_\":"); output.emplace_back(std::to_string(this->deleted_message_full_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"message_full_id_to_file_source_id_\":"); output.emplace_back(std::to_string(this->message_full_id_to_file_source_id_.size())); +} + } // namespace td diff --git a/td/telegram/QuickReplyManager.h b/td/telegram/QuickReplyManager.h index 2590ab546..a9a9bef24 100644 --- a/td/telegram/QuickReplyManager.h +++ b/td/telegram/QuickReplyManager.h @@ -36,6 +36,7 @@ class Td; class QuickReplyManager final : public Actor { public: + void memory_stats(vector &output); QuickReplyManager(Td *td, ActorShared<> parent); static Status check_shortcut_name(CSlice name); diff --git a/td/telegram/ReactionManager.cpp b/td/telegram/ReactionManager.cpp index 93e78e90b..07654fcde 100644 --- a/td/telegram/ReactionManager.cpp +++ b/td/telegram/ReactionManager.cpp @@ -1184,4 +1184,14 @@ void ReactionManager::get_current_state(vector &output) { + output.emplace_back("\"pending_get_emoji_reaction_queries_\":"); output.emplace_back(std::to_string(this->pending_get_emoji_reaction_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"active_reaction_types_\":"); output.emplace_back(std::to_string(this->active_reaction_types_.size())); + output.emplace_back(","); + output.emplace_back("\"topic_tags_\":"); output.emplace_back(std::to_string(this->topic_tags_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_all_saved_reaction_tags_queries_\":"); output.emplace_back(std::to_string(this->pending_get_all_saved_reaction_tags_queries_.size())); +} + } // namespace td diff --git a/td/telegram/ReactionManager.h b/td/telegram/ReactionManager.h index eb18a7698..155bef4fb 100644 --- a/td/telegram/ReactionManager.h +++ b/td/telegram/ReactionManager.h @@ -31,6 +31,7 @@ class Td; class ReactionManager final : public Actor { public: + void memory_stats(vector &output); ReactionManager(Td *td, ActorShared<> parent); ReactionManager(const ReactionManager &) = delete; ReactionManager &operator=(const ReactionManager &) = delete; diff --git a/td/telegram/SavedMessagesManager.cpp b/td/telegram/SavedMessagesManager.cpp index eba0299d8..116e9566e 100644 --- a/td/telegram/SavedMessagesManager.cpp +++ b/td/telegram/SavedMessagesManager.cpp @@ -1049,4 +1049,8 @@ const SavedMessagesManager::TopicDate SavedMessagesManager::MIN_TOPIC_DATE{std:: SavedMessagesTopicId()}; const SavedMessagesManager::TopicDate SavedMessagesManager::MAX_TOPIC_DATE{0, SavedMessagesTopicId()}; +void SavedMessagesManager::memory_stats(vector &output) { + output.emplace_back("\"saved_messages_topics_\":"); output.emplace_back(std::to_string(this->saved_messages_topics_.size())); +} + } // namespace td diff --git a/td/telegram/SavedMessagesManager.h b/td/telegram/SavedMessagesManager.h index 3c939ad93..3d2fe2a73 100644 --- a/td/telegram/SavedMessagesManager.h +++ b/td/telegram/SavedMessagesManager.h @@ -29,6 +29,7 @@ class Td; class SavedMessagesManager final : public Actor { public: + void memory_stats(vector &output); SavedMessagesManager(Td *td, ActorShared<> parent); SavedMessagesTopicId get_topic_id(int64 topic_id) const; diff --git a/td/telegram/SponsoredMessageManager.cpp b/td/telegram/SponsoredMessageManager.cpp index 94859b86d..24916ecfc 100644 --- a/td/telegram/SponsoredMessageManager.cpp +++ b/td/telegram/SponsoredMessageManager.cpp @@ -511,4 +511,8 @@ void SponsoredMessageManager::click_sponsored_message(DialogId dialog_id, Messag ->send(dialog_id.get_channel_id(), random_id_it->second.random_id_); } +void SponsoredMessageManager::memory_stats(vector &output) { + output.emplace_back("\"dialog_sponsored_messages_\":"); output.emplace_back(std::to_string(this->dialog_sponsored_messages_.size())); +} + } // namespace td diff --git a/td/telegram/SponsoredMessageManager.h b/td/telegram/SponsoredMessageManager.h index 41dce961e..816e512cb 100644 --- a/td/telegram/SponsoredMessageManager.h +++ b/td/telegram/SponsoredMessageManager.h @@ -25,6 +25,7 @@ class Td; class SponsoredMessageManager final : public Actor { public: + void memory_stats(vector &output); SponsoredMessageManager(Td *td, ActorShared<> parent); SponsoredMessageManager(const SponsoredMessageManager &) = delete; SponsoredMessageManager &operator=(const SponsoredMessageManager &) = delete; diff --git a/td/telegram/StatisticsManager.cpp b/td/telegram/StatisticsManager.cpp index 046f1d84d..b66123448 100644 --- a/td/telegram/StatisticsManager.cpp +++ b/td/telegram/StatisticsManager.cpp @@ -738,4 +738,7 @@ void StatisticsManager::get_channel_differences_if_needed( source); } +void StatisticsManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/StatisticsManager.h b/td/telegram/StatisticsManager.h index bc87973cd..15cbea98e 100644 --- a/td/telegram/StatisticsManager.h +++ b/td/telegram/StatisticsManager.h @@ -25,6 +25,7 @@ class Td; class StatisticsManager final : public Actor { public: + void memory_stats(vector &output); StatisticsManager(Td *td, ActorShared<> parent); void get_channel_statistics(DialogId dialog_id, bool is_dark, diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 23e3e2389..287381631 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -10150,27 +10150,87 @@ void StickersManager::get_current_state(vector &output) { - output.push_back("\"archived_sticker_set_ids_\":"); output.push_back(std::to_string(archived_sticker_set_ids_->size())); - output.push_back(","); - output.push_back("\"attached_sticker_sets_\":"); output.push_back(std::to_string(attached_sticker_sets_.size())); - output.push_back(","); - output.push_back("\"favorite_sticker_file_ids_\":"); output.push_back(std::to_string(favorite_sticker_file_ids_.size())); - output.push_back(","); - output.push_back("\"favorite_sticker_ids_\":"); output.push_back(std::to_string(favorite_sticker_ids_.size())); - output.push_back(","); - output.push_back("\"installed_sticker_set_ids_\":"); output.push_back(std::to_string(installed_sticker_set_ids_->size())); - output.push_back(","); - output.push_back("\"recent_sticker_file_ids_\":"); output.push_back(std::to_string(recent_sticker_file_ids_->size())); - output.push_back(","); - output.push_back("\"recent_sticker_ids_\":"); output.push_back(std::to_string(recent_sticker_ids_->size())); - output.push_back(","); - output.push_back("\"short_name_to_sticker_set_id_\":"); output.push_back(std::to_string(short_name_to_sticker_set_id_.calc_size())); - output.push_back(","); - output.push_back("\"special_sticker_sets_\":"); output.push_back(std::to_string(special_sticker_sets_.size())); - output.push_back(","); - output.push_back("\"sticker_sets_\":"); output.push_back(std::to_string(sticker_sets_.calc_size())); - output.push_back(","); - output.push_back("\"stickers_\":"); output.push_back(std::to_string(stickers_.calc_size())); + output.emplace_back("\"stickers_\":"); output.emplace_back(std::to_string(this->stickers_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"sticker_sets_\":"); output.emplace_back(std::to_string(this->sticker_sets_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"short_name_to_sticker_set_id_\":"); output.emplace_back(std::to_string(this->short_name_to_sticker_set_id_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"favorite_sticker_ids_\":"); output.emplace_back(std::to_string(this->favorite_sticker_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"load_old_featured_sticker_sets_queries_\":"); output.emplace_back(std::to_string(this->load_old_featured_sticker_sets_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"load_favorite_stickers_queries_\":"); output.emplace_back(std::to_string(this->load_favorite_stickers_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"repair_favorite_stickers_queries_\":"); output.emplace_back(std::to_string(this->repair_favorite_stickers_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"sticker_set_reload_queries_\":"); output.emplace_back(std::to_string(this->sticker_set_reload_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"favorite_sticker_file_ids_\":"); output.emplace_back(std::to_string(this->favorite_sticker_file_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"attached_sticker_sets_\":"); output.emplace_back(std::to_string(this->attached_sticker_sets_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_viewed_featured_sticker_set_ids_\":"); output.emplace_back(std::to_string(this->pending_viewed_featured_sticker_set_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"special_sticker_sets_\":"); output.emplace_back(std::to_string(this->special_sticker_sets_.size())); + output.emplace_back(","); + output.emplace_back("\"sticker_set_load_requests_\":"); output.emplace_back(std::to_string(this->sticker_set_load_requests_.size())); + output.emplace_back(","); + output.emplace_back("\"custom_emoji_load_queries_\":"); output.emplace_back(std::to_string(this->custom_emoji_load_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_new_sticker_sets_\":"); output.emplace_back(std::to_string(this->pending_new_sticker_sets_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_add_sticker_to_sets_\":"); output.emplace_back(std::to_string(this->pending_add_sticker_to_sets_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_set_sticker_set_thumbnails_\":"); output.emplace_back(std::to_string(this->pending_set_sticker_set_thumbnails_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_animated_emoji_queries_\":"); output.emplace_back(std::to_string(this->pending_get_animated_emoji_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_premium_gift_option_sticker_queries_\":"); output.emplace_back(std::to_string(this->pending_get_premium_gift_option_sticker_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_generic_animations_queries_\":"); output.emplace_back(std::to_string(this->pending_get_generic_animations_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_default_statuses_queries_\":"); output.emplace_back(std::to_string(this->pending_get_default_statuses_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_default_channel_statuses_queries_\":"); output.emplace_back(std::to_string(this->pending_get_default_channel_statuses_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_default_topic_icons_queries_\":"); output.emplace_back(std::to_string(this->pending_get_default_topic_icons_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_get_animated_emoji_click_stickers_\":"); output.emplace_back(std::to_string(this->pending_get_animated_emoji_click_stickers_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_on_animated_emoji_message_clicked_\":"); output.emplace_back(std::to_string(this->pending_on_animated_emoji_message_clicked_.size())); + output.emplace_back(","); + output.emplace_back("\"being_uploaded_files_\":"); output.emplace_back(std::to_string(this->being_uploaded_files_.size())); + output.emplace_back(","); + output.emplace_back("\"emoji_language_codes_\":"); output.emplace_back(std::to_string(this->emoji_language_codes_.size())); + output.emplace_back(","); + output.emplace_back("\"emoji_language_code_versions_\":"); output.emplace_back(std::to_string(this->emoji_language_code_versions_.size())); + output.emplace_back(","); + output.emplace_back("\"emoji_language_code_last_difference_times_\":"); output.emplace_back(std::to_string(this->emoji_language_code_last_difference_times_.size())); + output.emplace_back(","); + output.emplace_back("\"reloaded_emoji_keywords_\":"); output.emplace_back(std::to_string(this->reloaded_emoji_keywords_.size())); + output.emplace_back(","); + output.emplace_back("\"load_emoji_keywords_queries_\":"); output.emplace_back(std::to_string(this->load_emoji_keywords_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"load_language_codes_queries_\":"); output.emplace_back(std::to_string(this->load_language_codes_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"emoji_suggestions_urls_\":"); output.emplace_back(std::to_string(this->emoji_suggestions_urls_.size())); + output.emplace_back(","); + output.emplace_back("\"premium_gift_messages_\":"); output.emplace_back(std::to_string(this->premium_gift_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"dice_messages_\":"); output.emplace_back(std::to_string(this->dice_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"emoji_messages_\":"); output.emplace_back(std::to_string(this->emoji_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"custom_emoji_messages_\":"); output.emplace_back(std::to_string(this->custom_emoji_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"dice_emojis_\":"); output.emplace_back(std::to_string(this->dice_emojis_.size())); + output.emplace_back(","); + output.emplace_back("\"dice_success_values_\":"); output.emplace_back(std::to_string(this->dice_success_values_.size())); + output.emplace_back(","); + output.emplace_back("\"emoji_sounds_\":"); output.emplace_back(std::to_string(this->emoji_sounds_.size())); + output.emplace_back(","); + output.emplace_back("\"custom_emoji_to_sticker_id_\":"); output.emplace_back(std::to_string(this->custom_emoji_to_sticker_id_.calc_size())); } } // namespace td diff --git a/td/telegram/StickersManager.h b/td/telegram/StickersManager.h index a5614fe66..e7803f865 100644 --- a/td/telegram/StickersManager.h +++ b/td/telegram/StickersManager.h @@ -55,9 +55,8 @@ class Td; class StickersManager final : public Actor { public: - static constexpr int64 GREAT_MINDS_SET_ID = 1842540969984001; - void memory_stats(vector &output); + static constexpr int64 GREAT_MINDS_SET_ID = 1842540969984001; static vector convert_sticker_set_ids(const vector &sticker_set_ids); static vector convert_sticker_set_ids(const vector &sticker_set_ids); diff --git a/td/telegram/StoryManager.cpp b/td/telegram/StoryManager.cpp index 3c6b32c37..069a1424a 100644 --- a/td/telegram/StoryManager.cpp +++ b/td/telegram/StoryManager.cpp @@ -5702,4 +5702,70 @@ void StoryManager::on_binlog_events(vector &&events) { } } +void StoryManager::memory_stats(vector &output) { + output.emplace_back("\"story_full_id_to_file_source_id_\":"); output.emplace_back(std::to_string(this->story_full_id_to_file_source_id_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"stories_\":"); output.emplace_back(std::to_string(this->stories_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"stories_by_global_id_\":"); output.emplace_back(std::to_string(this->stories_by_global_id_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"inaccessible_story_full_ids_\":"); output.emplace_back(std::to_string(this->inaccessible_story_full_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"deleted_story_full_ids_\":"); output.emplace_back(std::to_string(this->deleted_story_full_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"failed_to_load_story_full_ids_\":"); output.emplace_back(std::to_string(this->failed_to_load_story_full_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"story_messages_\":"); output.emplace_back(std::to_string(this->story_messages_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"active_stories_\":"); output.emplace_back(std::to_string(this->active_stories_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"updated_active_stories_\":"); output.emplace_back(std::to_string(this->updated_active_stories_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"max_read_story_ids_\":"); output.emplace_back(std::to_string(this->max_read_story_ids_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"failed_to_load_active_stories_\":"); output.emplace_back(std::to_string(this->failed_to_load_active_stories_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"load_expiring_stories_log_event_ids_\":"); output.emplace_back(std::to_string(this->load_expiring_stories_log_event_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"being_edited_stories_\":"); output.emplace_back(std::to_string(this->being_edited_stories_.size())); + output.emplace_back(","); + output.emplace_back("\"edit_generations_\":"); output.emplace_back(std::to_string(this->edit_generations_.size())); + output.emplace_back(","); + output.emplace_back("\"pending_story_views_\":"); output.emplace_back(std::to_string(this->pending_story_views_.size())); + output.emplace_back(","); + output.emplace_back("\"opened_stories_with_view_count_\":"); output.emplace_back(std::to_string(this->opened_stories_with_view_count_.size())); + output.emplace_back(","); + output.emplace_back("\"opened_stories_\":"); output.emplace_back(std::to_string(this->opened_stories_.size())); + output.emplace_back(","); + output.emplace_back("\"reload_story_queries_\":"); output.emplace_back(std::to_string(this->reload_story_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"being_uploaded_files_\":"); output.emplace_back(std::to_string(this->being_uploaded_files_.size())); + output.emplace_back(","); + output.emplace_back("\"yet_unsent_stories_\":"); output.emplace_back(std::to_string(this->yet_unsent_stories_.size())); + output.emplace_back(","); + output.emplace_back("\"yet_unsent_story_ids_\":"); output.emplace_back(std::to_string(this->yet_unsent_story_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"being_sent_stories_\":"); output.emplace_back(std::to_string(this->being_sent_stories_.size())); + output.emplace_back(","); + output.emplace_back("\"being_sent_story_random_ids_\":"); output.emplace_back(std::to_string(this->being_sent_story_random_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"being_uploaded_file_ids_\":"); output.emplace_back(std::to_string(this->being_uploaded_file_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"update_story_ids_\":"); output.emplace_back(std::to_string(this->update_story_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"delete_yet_unsent_story_queries_\":"); output.emplace_back(std::to_string(this->delete_yet_unsent_story_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"ready_to_send_stories_\":"); output.emplace_back(std::to_string(this->ready_to_send_stories_.size())); + output.emplace_back(","); + output.emplace_back("\"being_reloaded_active_stories_dialog_ids_\":"); output.emplace_back(std::to_string(this->being_reloaded_active_stories_dialog_ids_.size())); + output.emplace_back(","); + output.emplace_back("\"channels_to_send_stories_\":"); output.emplace_back(std::to_string(this->channels_to_send_stories_.size())); + output.emplace_back(","); + output.emplace_back("\"get_dialogs_to_send_stories_queries_\":"); output.emplace_back(std::to_string(this->get_dialogs_to_send_stories_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"being_set_story_reactions_\":"); output.emplace_back(std::to_string(this->being_set_story_reactions_.size())); + output.emplace_back(","); + output.emplace_back("\"current_yet_unsent_story_ids_\":"); output.emplace_back(std::to_string(this->current_yet_unsent_story_ids_.size())); +} + } // namespace td diff --git a/td/telegram/StoryManager.h b/td/telegram/StoryManager.h index f9463732f..2a572dcce 100644 --- a/td/telegram/StoryManager.h +++ b/td/telegram/StoryManager.h @@ -193,6 +193,7 @@ class StoryManager final : public Actor { }; public: + void memory_stats(vector &output); StoryManager(Td *td, ActorShared<> parent); StoryManager(const StoryManager &) = delete; StoryManager &operator=(const StoryManager &) = delete; diff --git a/td/telegram/ThemeManager.cpp b/td/telegram/ThemeManager.cpp index ee5a934e2..2d7d37de9 100644 --- a/td/telegram/ThemeManager.cpp +++ b/td/telegram/ThemeManager.cpp @@ -1130,4 +1130,7 @@ void ThemeManager::get_current_state(vector> } } +void ThemeManager::memory_stats(vector &output) { +} + } // namespace td diff --git a/td/telegram/ThemeManager.h b/td/telegram/ThemeManager.h index f6af72723..594cd4f74 100644 --- a/td/telegram/ThemeManager.h +++ b/td/telegram/ThemeManager.h @@ -24,6 +24,7 @@ class Td; class ThemeManager final : public Actor { public: + void memory_stats(vector &output); ThemeManager(Td *td, ActorShared<> parent); void init(); diff --git a/td/telegram/TimeZoneManager.cpp b/td/telegram/TimeZoneManager.cpp index db3e61888..cff370a25 100644 --- a/td/telegram/TimeZoneManager.cpp +++ b/td/telegram/TimeZoneManager.cpp @@ -192,4 +192,8 @@ void TimeZoneManager::save_time_zones() { G()->td_db()->get_binlog_pmc()->set(get_time_zones_database_key(), log_event_store(time_zones_).as_slice().str()); } +void TimeZoneManager::memory_stats(vector &output) { + output.emplace_back("\"get_time_zones_queries_\":"); output.emplace_back(std::to_string(this->get_time_zones_queries_.size())); +} + } // namespace td diff --git a/td/telegram/TimeZoneManager.h b/td/telegram/TimeZoneManager.h index c73fbbfc5..3876f8951 100644 --- a/td/telegram/TimeZoneManager.h +++ b/td/telegram/TimeZoneManager.h @@ -21,6 +21,7 @@ class Td; class TimeZoneManager final : public Actor { public: + void memory_stats(vector &output); TimeZoneManager(Td *td, ActorShared<> parent); TimeZoneManager(const TimeZoneManager &) = delete; TimeZoneManager &operator=(const TimeZoneManager &) = delete; diff --git a/td/telegram/TopDialogManager.cpp b/td/telegram/TopDialogManager.cpp index 3ad6a7cc2..d3de4531f 100644 --- a/td/telegram/TopDialogManager.cpp +++ b/td/telegram/TopDialogManager.cpp @@ -679,4 +679,8 @@ void TopDialogManager::loop() { } } +void TopDialogManager::memory_stats(vector &output) { + output.emplace_back("\"pending_get_top_dialogs_\":"); output.emplace_back(std::to_string(this->pending_get_top_dialogs_.size())); +} + } // namespace td diff --git a/td/telegram/TopDialogManager.h b/td/telegram/TopDialogManager.h index 347c61e35..b8ae0891c 100644 --- a/td/telegram/TopDialogManager.h +++ b/td/telegram/TopDialogManager.h @@ -27,6 +27,7 @@ class Td; class TopDialogManager final : public Actor { public: + void memory_stats(vector &output); TopDialogManager(Td *td, ActorShared<> parent); void init(); diff --git a/td/telegram/TranscriptionManager.cpp b/td/telegram/TranscriptionManager.cpp index 8dd5c642b..9e72304dc 100644 --- a/td/telegram/TranscriptionManager.cpp +++ b/td/telegram/TranscriptionManager.cpp @@ -441,4 +441,12 @@ void TranscriptionManager::get_current_state(vector &output) { + output.emplace_back("\"pending_audio_transcriptions_\":"); output.emplace_back(std::to_string(this->pending_audio_transcriptions_.size())); + output.emplace_back(","); + output.emplace_back("\"voice_messages_\":"); output.emplace_back(std::to_string(this->voice_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"message_file_ids_\":"); output.emplace_back(std::to_string(this->message_file_ids_.size())); +} + } // namespace td diff --git a/td/telegram/TranscriptionManager.h b/td/telegram/TranscriptionManager.h index adad70994..e2b971082 100644 --- a/td/telegram/TranscriptionManager.h +++ b/td/telegram/TranscriptionManager.h @@ -32,6 +32,7 @@ class Td; class TranscriptionManager final : public Actor { public: + void memory_stats(vector &output); TranscriptionManager(Td *td, ActorShared<> parent); TranscriptionManager(const TranscriptionManager &) = delete; TranscriptionManager &operator=(const TranscriptionManager &) = delete; diff --git a/td/telegram/TranslationManager.cpp b/td/telegram/TranslationManager.cpp index 7e443ea37..9edba1988 100644 --- a/td/telegram/TranslationManager.cpp +++ b/td/telegram/TranslationManager.cpp @@ -126,4 +126,7 @@ void TranslationManager::on_get_translated_texts(vector &output) { +} + } // namespace td diff --git a/td/telegram/TranslationManager.h b/td/telegram/TranslationManager.h index 67d454d84..4f6264781 100644 --- a/td/telegram/TranslationManager.h +++ b/td/telegram/TranslationManager.h @@ -21,6 +21,7 @@ class Td; class TranslationManager final : public Actor { public: + void memory_stats(vector &output); TranslationManager(Td *td, ActorShared<> parent); void translate_text(td_api::object_ptr &&text, const string &to_language_code, diff --git a/td/telegram/UpdatesManager.cpp b/td/telegram/UpdatesManager.cpp index 42911a7a1..fcc8c4933 100644 --- a/td/telegram/UpdatesManager.cpp +++ b/td/telegram/UpdatesManager.cpp @@ -4509,4 +4509,8 @@ void UpdatesManager::on_update(tl_object_ptr &output) { + output.emplace_back("\"session_infos_\":"); output.emplace_back(std::to_string(this->session_infos_.size())); +} + } // namespace td diff --git a/td/telegram/UpdatesManager.h b/td/telegram/UpdatesManager.h index e608b3c62..fe4e76344 100644 --- a/td/telegram/UpdatesManager.h +++ b/td/telegram/UpdatesManager.h @@ -95,6 +95,7 @@ class updateSentMessage final : public telegram_api::Update { class UpdatesManager final : public Actor { public: + void memory_stats(vector &output); UpdatesManager(Td *td, ActorShared<> parent); void on_get_updates(tl_object_ptr &&updates_ptr, Promise &&promise); diff --git a/td/telegram/VideoNotesManager.cpp b/td/telegram/VideoNotesManager.cpp index e818e5124..569dd92b4 100644 --- a/td/telegram/VideoNotesManager.cpp +++ b/td/telegram/VideoNotesManager.cpp @@ -265,7 +265,7 @@ tl_object_ptr VideoNotesManager::get_input_media( } void VideoNotesManager::memory_stats(vector &output) { - output.push_back("\"video_notes_\":"); output.push_back(std::to_string(video_notes_.calc_size())); + output.emplace_back("\"video_notes_\":"); output.emplace_back(std::to_string(this->video_notes_.calc_size())); } } // namespace td diff --git a/td/telegram/VideoNotesManager.h b/td/telegram/VideoNotesManager.h index b43806e80..37bf49f71 100644 --- a/td/telegram/VideoNotesManager.h +++ b/td/telegram/VideoNotesManager.h @@ -26,6 +26,7 @@ class Td; class VideoNotesManager final : public Actor { public: + void memory_stats(vector &output); VideoNotesManager(Td *td, ActorShared<> parent); VideoNotesManager(const VideoNotesManager &) = delete; VideoNotesManager &operator=(const VideoNotesManager &) = delete; @@ -33,8 +34,6 @@ class VideoNotesManager final : public Actor { VideoNotesManager &operator=(VideoNotesManager &&) = delete; ~VideoNotesManager() final; - void memory_stats(vector &output); - int32 get_video_note_duration(FileId file_id) const; TranscriptionInfo *get_video_note_transcription_info(FileId file_id, bool allow_creation); diff --git a/td/telegram/VideosManager.cpp b/td/telegram/VideosManager.cpp index 375b32aee..bd21cf9c2 100644 --- a/td/telegram/VideosManager.cpp +++ b/td/telegram/VideosManager.cpp @@ -335,7 +335,7 @@ string VideosManager::get_video_search_text(FileId file_id) const { } void VideosManager::memory_stats(vector &output) { - output.push_back("\"videos_\":"); output.push_back(std::to_string(videos_.calc_size())); + output.emplace_back("\"videos_\":"); output.emplace_back(std::to_string(this->videos_.calc_size())); } } // namespace td diff --git a/td/telegram/VideosManager.h b/td/telegram/VideosManager.h index 086f16cb1..482d6e702 100644 --- a/td/telegram/VideosManager.h +++ b/td/telegram/VideosManager.h @@ -23,6 +23,7 @@ class Td; class VideosManager { public: + void memory_stats(vector &output); explicit VideosManager(Td *td); VideosManager(const VideosManager &) = delete; VideosManager &operator=(const VideosManager &) = delete; @@ -30,8 +31,6 @@ class VideosManager { VideosManager &operator=(VideosManager &&) = delete; ~VideosManager(); - void memory_stats(vector &output); - int32 get_video_duration(FileId file_id) const; td_api::object_ptr get_video_object(FileId file_id) const; diff --git a/td/telegram/VoiceNotesManager.cpp b/td/telegram/VoiceNotesManager.cpp index 826ae3dbe..7a516422a 100644 --- a/td/telegram/VoiceNotesManager.cpp +++ b/td/telegram/VoiceNotesManager.cpp @@ -219,4 +219,8 @@ tl_object_ptr VoiceNotesManager::get_input_media( return nullptr; } +void VoiceNotesManager::memory_stats(vector &output) { + output.emplace_back("\"voice_notes_\":"); output.emplace_back(std::to_string(this->voice_notes_.calc_size())); +} + } // namespace td diff --git a/td/telegram/VoiceNotesManager.h b/td/telegram/VoiceNotesManager.h index da35585fd..362ebf15d 100644 --- a/td/telegram/VoiceNotesManager.h +++ b/td/telegram/VoiceNotesManager.h @@ -23,6 +23,7 @@ class Td; class VoiceNotesManager final : public Actor { public: + void memory_stats(vector &output); VoiceNotesManager(Td *td, ActorShared<> parent); VoiceNotesManager(const VoiceNotesManager &) = delete; VoiceNotesManager &operator=(const VoiceNotesManager &) = delete; diff --git a/td/telegram/WebPagesManager.cpp b/td/telegram/WebPagesManager.cpp index dddcceae9..768cdc05e 100644 --- a/td/telegram/WebPagesManager.cpp +++ b/td/telegram/WebPagesManager.cpp @@ -1960,16 +1960,21 @@ vector WebPagesManager::get_web_page_file_ids(const WebPage *web_page) c } void WebPagesManager::memory_stats(vector &output) { - output.push_back("\"web_pages_\":"); output.push_back(std::to_string(web_pages_.calc_size())); - output.push_back(","); - output.push_back("\"loaded_from_database_web_pages_\":"); output.push_back(std::to_string(loaded_from_database_web_pages_.size())); - output.push_back(","); - output.push_back("\"web_page_messages_\":"); output.push_back(std::to_string(web_page_messages_.size())); - output.push_back(","); - output.push_back("\"url_to_web_page_id_\":"); output.push_back(std::to_string(url_to_web_page_id_.size())); - output.push_back(","); - output.push_back("\"url_to_file_source_id_\":"); output.push_back(std::to_string(url_to_file_source_id_.size())); - + output.emplace_back("\"web_pages_\":"); output.emplace_back(std::to_string(this->web_pages_.calc_size())); + output.emplace_back(","); + output.emplace_back("\"load_web_page_from_database_queries_\":"); output.emplace_back(std::to_string(this->load_web_page_from_database_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"loaded_from_database_web_pages_\":"); output.emplace_back(std::to_string(this->loaded_from_database_web_pages_.size())); + output.emplace_back(","); + output.emplace_back("\"load_web_page_instant_view_queries_\":"); output.emplace_back(std::to_string(this->load_web_page_instant_view_queries_.size())); + output.emplace_back(","); + output.emplace_back("\"web_page_messages_\":"); output.emplace_back(std::to_string(this->web_page_messages_.size())); + output.emplace_back(","); + output.emplace_back("\"story_web_pages_\":"); output.emplace_back(std::to_string(this->story_web_pages_.size())); + output.emplace_back(","); + output.emplace_back("\"url_to_web_page_id_\":"); output.emplace_back(std::to_string(this->url_to_web_page_id_.size())); + output.emplace_back(","); + output.emplace_back("\"url_to_file_source_id_\":"); output.emplace_back(std::to_string(this->url_to_file_source_id_.size())); } } // namespace td diff --git a/td/telegram/WebPagesManager.h b/td/telegram/WebPagesManager.h index b606ded0a..81e7ed1f6 100644 --- a/td/telegram/WebPagesManager.h +++ b/td/telegram/WebPagesManager.h @@ -38,9 +38,8 @@ class Td; class WebPagesManager final : public Actor { public: - WebPagesManager(Td *td, ActorShared<> parent); - void memory_stats(vector &output); + WebPagesManager(Td *td, ActorShared<> parent); WebPagesManager(const WebPagesManager &) = delete; WebPagesManager &operator=(const WebPagesManager &) = delete; diff --git a/td/telegram/files/FileManager.cpp b/td/telegram/files/FileManager.cpp index 387b30f92..37ea346a6 100644 --- a/td/telegram/files/FileManager.cpp +++ b/td/telegram/files/FileManager.cpp @@ -4173,16 +4173,6 @@ void FileManager::hangup() { stop(); } -void FileManager::memory_stats(vector &output) { - output.push_back("\"file_id_info_\":"); output.push_back(std::to_string(file_id_info_.size())); - output.push_back(","); - output.push_back("\"file_nodes_\":"); output.push_back(std::to_string(file_nodes_.size())); - output.push_back(","); - output.push_back("\"file_hash_to_file_id_\":"); output.push_back(std::to_string(file_hash_to_file_id_.calc_size())); - output.push_back(","); - output.push_back("\"empty_file_ids_\":"); output.push_back(std::to_string(empty_file_ids_.size())); -} - void FileManager::tear_down() { parent_.reset(); @@ -4195,4 +4185,8 @@ constexpr int64 FileManager::KEEP_DOWNLOAD_LIMIT; constexpr int64 FileManager::KEEP_DOWNLOAD_OFFSET; constexpr int64 FileManager::IGNORE_DOWNLOAD_LIMIT; +void FileManager::memory_stats(vector &output) { + output.emplace_back("\"file_hash_to_file_id_\":"); output.emplace_back(std::to_string(this->file_hash_to_file_id_.calc_size())); +} + } // namespace td diff --git a/td/telegram/files/FileManager.h b/td/telegram/files/FileManager.h index 2dfd5caa2..62b739b16 100644 --- a/td/telegram/files/FileManager.h +++ b/td/telegram/files/FileManager.h @@ -379,7 +379,6 @@ class FileView { class FileManager final : public FileLoadManager::Callback { public: void memory_stats(vector &output); - static constexpr int64 KEEP_DOWNLOAD_LIMIT = -1; static constexpr int64 KEEP_DOWNLOAD_OFFSET = -1; static constexpr int64 IGNORE_DOWNLOAD_LIMIT = -2;