Move class NotificationGroupInfo to a separate header.

This commit is contained in:
levlam 2023-08-21 18:52:56 +03:00
parent 08ead89f31
commit d2cf780a1f
6 changed files with 98 additions and 53 deletions

View File

@ -426,6 +426,7 @@ set(TDLIB_SOURCE
td/telegram/net/SessionProxy.cpp
td/telegram/net/SessionMultiProxy.cpp
td/telegram/NewPasswordState.cpp
td/telegram/NotificationGroupInfo.cpp
td/telegram/NotificationManager.cpp
td/telegram/NotificationSettingsScope.cpp
td/telegram/NotificationSettingsManager.cpp
@ -715,6 +716,7 @@ set(TDLIB_SOURCE
td/telegram/NewPasswordState.h
td/telegram/Notification.h
td/telegram/NotificationGroupId.h
td/telegram/NotificationGroupInfo.h
td/telegram/NotificationGroupKey.h
td/telegram/NotificationGroupType.h
td/telegram/NotificationId.h
@ -847,6 +849,7 @@ set(TDLIB_SOURCE
td/telegram/MessageReaction.hpp
td/telegram/MessageReplyInfo.hpp
td/telegram/MinChannel.hpp
td/telegram/NotificationGroupInfo.hpp
td/telegram/OrderInfo.hpp
td/telegram/Photo.hpp
td/telegram/PhotoSize.hpp

View File

@ -49,6 +49,7 @@
#include "td/telegram/misc.h"
#include "td/telegram/net/DcId.h"
#include "td/telegram/net/NetQuery.h"
#include "td/telegram/NotificationGroupInfo.hpp"
#include "td/telegram/NotificationGroupType.h"
#include "td/telegram/NotificationManager.h"
#include "td/telegram/NotificationSettingsManager.h"
@ -5197,28 +5198,6 @@ void MessagesManager::Message::parse(ParserT &parser) {
}
}
template <class StorerT>
void MessagesManager::NotificationGroupInfo::store(StorerT &storer) const {
using td::store;
store(group_id, storer);
store(last_notification_date, storer);
store(last_notification_id, storer);
store(max_removed_notification_id, storer);
store(max_removed_message_id, storer);
}
template <class ParserT>
void MessagesManager::NotificationGroupInfo::parse(ParserT &parser) {
using td::parse;
parse(group_id, parser);
parse(last_notification_date, parser);
parse(last_notification_id, parser);
parse(max_removed_notification_id, parser);
if (parser.version() >= static_cast<int32>(Version::AddNotificationGroupInfoMaxRemovedMessageId)) {
parse(max_removed_message_id, parser);
}
}
template <class StorerT>
void MessagesManager::Dialog::store(StorerT &storer) const {
using td::store;
@ -28912,14 +28891,14 @@ void MessagesManager::send_update_new_message(const Dialog *d, const Message *m)
td_api::make_object<td_api::updateNewMessage>(get_message_object(d->dialog_id, m, "send_update_new_message")));
}
MessagesManager::NotificationGroupInfo &MessagesManager::get_notification_group_info(Dialog *d, bool from_mentions) {
NotificationGroupInfo &MessagesManager::get_notification_group_info(Dialog *d, bool from_mentions) {
CHECK(d != nullptr);
auto notification_info = add_dialog_notification_info(d);
return from_mentions ? notification_info->mention_notification_group_
: notification_info->message_notification_group_;
}
MessagesManager::NotificationGroupInfo &MessagesManager::get_notification_group_info(Dialog *d, const Message *m) {
NotificationGroupInfo &MessagesManager::get_notification_group_info(Dialog *d, const Message *m) {
return get_notification_group_info(d, is_from_mention_notification_group(m));
}
@ -37020,20 +36999,10 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
<< d->first_database_message_id << ", last database " << d->last_database_message_id << ", last "
<< d->last_message_id << " with order " << d->order;
if (d->notification_info != nullptr) {
VLOG(notifications) << "Have " << dialog_id << " with message "
<< d->notification_info->message_notification_group_.group_id << " with last "
<< d->notification_info->message_notification_group_.last_notification_id << " sent at "
<< d->notification_info->message_notification_group_.last_notification_date << ", max removed "
<< d->notification_info->message_notification_group_.max_removed_notification_id << "/"
<< d->notification_info->message_notification_group_.max_removed_message_id
VLOG(notifications) << "Have " << dialog_id << " with message " << d->notification_info->message_notification_group_
<< " and new secret chat " << d->notification_info->new_secret_chat_notification_id_;
VLOG(notifications) << "Have " << dialog_id << " with mention "
<< d->notification_info->mention_notification_group_.group_id << " with last "
<< d->notification_info->mention_notification_group_.last_notification_id << " sent at "
<< d->notification_info->mention_notification_group_.last_notification_date << ", max removed "
<< d->notification_info->mention_notification_group_.max_removed_notification_id << "/"
<< d->notification_info->mention_notification_group_.max_removed_message_id << " and pinned "
<< d->notification_info->pinned_message_notification_message_id_;
VLOG(notifications) << "Have " << dialog_id << " with mention " << d->notification_info->mention_notification_group_
<< " and pinned " << d->notification_info->pinned_message_notification_message_id_;
VLOG(notifications) << "In " << dialog_id << " have last_read_inbox_message_id = " << d->last_read_inbox_message_id
<< ", last_new_message_id = " << d->last_new_message_id
<< ", max_notification_message_id = " << d->notification_info->max_notification_message_id_;

View File

@ -48,6 +48,7 @@
#include "td/telegram/net/NetQuery.h"
#include "td/telegram/Notification.h"
#include "td/telegram/NotificationGroupId.h"
#include "td/telegram/NotificationGroupInfo.h"
#include "td/telegram/NotificationGroupKey.h"
#include "td/telegram/NotificationGroupType.h"
#include "td/telegram/NotificationId.h"
@ -1286,22 +1287,6 @@ class MessagesManager final : public Actor {
~Message() = default;
};
struct NotificationGroupInfo {
NotificationGroupId group_id;
int32 last_notification_date = 0; // date of last notification in the group
NotificationId last_notification_id; // identifier of last notification in the group
NotificationId max_removed_notification_id; // notification identifier, up to which all notifications are removed
MessageId max_removed_message_id; // message identifier, up to which all notifications are removed
bool is_changed = false; // true, if the group needs to be saved to database
bool try_reuse = false; // true, if the group needs to be deleted from database and tried to be reused
template <class StorerT>
void store(StorerT &storer) const;
template <class ParserT>
void parse(ParserT &parser);
};
struct DialogScheduledMessages {
FlatHashMap<ScheduledServerMessageId, int32, ScheduledServerMessageIdHash> scheduled_message_date_;

View File

@ -0,0 +1,17 @@
//
// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
#include "td/telegram/NotificationGroupInfo.h"
namespace td {
StringBuilder &operator<<(StringBuilder &string_builder, const NotificationGroupInfo &group_info) {
return string_builder << group_info.group_id << " with last " << group_info.last_notification_id << " sent at "
<< group_info.last_notification_date << ", max removed "
<< group_info.max_removed_notification_id << '/' << group_info.max_removed_message_id;
}
} // namespace td

View File

@ -0,0 +1,33 @@
//
// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
#pragma once
#include "td/telegram/MessageId.h"
#include "td/telegram/NotificationGroupId.h"
#include "td/telegram/NotificationId.h"
namespace td {
struct NotificationGroupInfo {
NotificationGroupId group_id;
int32 last_notification_date = 0; // date of last notification in the group
NotificationId last_notification_id; // identifier of last notification in the group
NotificationId max_removed_notification_id; // notification identifier, up to which all notifications are removed
MessageId max_removed_message_id; // message identifier, up to which all notifications are removed
bool is_changed = false; // true, if the group needs to be saved to database
bool try_reuse = false; // true, if the group needs to be deleted from database and tried to be reused
template <class StorerT>
void store(StorerT &storer) const;
template <class ParserT>
void parse(ParserT &parser);
};
StringBuilder &operator<<(StringBuilder &string_builder, const NotificationGroupInfo &group_info);
} // namespace td

View File

@ -0,0 +1,38 @@
//
// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
#pragma once
#include "td/telegram/NotificationGroupInfo.h"
#include "td/utils/common.h"
#include "td/utils/tl_helpers.h"
namespace td {
template <class StorerT>
void NotificationGroupInfo::store(StorerT &storer) const {
using td::store;
store(group_id, storer);
store(last_notification_date, storer);
store(last_notification_id, storer);
store(max_removed_notification_id, storer);
store(max_removed_message_id, storer);
}
template <class ParserT>
void NotificationGroupInfo::parse(ParserT &parser) {
using td::parse;
parse(group_id, parser);
parse(last_notification_date, parser);
parse(last_notification_id, parser);
parse(max_removed_notification_id, parser);
if (parser.version() >= static_cast<int32>(Version::AddNotificationGroupInfoMaxRemovedMessageId)) {
parse(max_removed_message_id, parser);
}
}
} // namespace td