Skip to content

Commit

Permalink
Add SetAccountTtlOnServerLogEvent.
Browse files Browse the repository at this point in the history
  • Loading branch information
levlam committed Sep 22, 2023
1 parent 6600f92 commit fb85920
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 1 deletion.
37 changes: 36 additions & 1 deletion td/telegram/AccountManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -815,10 +815,38 @@ void AccountManager::get_default_message_ttl(Promise<int32> &&promise) {
td_->create_handler<GetDefaultHistoryTtlQuery>(std::move(promise))->send();
}

void AccountManager::set_account_ttl(int32 account_ttl, Promise<Unit> &&promise) {
class AccountManager::SetAccountTtlOnServerLogEvent {
public:
int32 account_ttl_;

template <class StorerT>
void store(StorerT &storer) const {
td::store(account_ttl_, storer);
}

template <class ParserT>
void parse(ParserT &parser) {
td::parse(account_ttl_, parser);
}
};

void AccountManager::set_account_ttl_on_server(int32 account_ttl, uint64 log_event_id, Promise<Unit> &&promise) {
if (log_event_id == 0) {
SetAccountTtlOnServerLogEvent log_event{account_ttl};
log_event_id = binlog_add(G()->td_db()->get_binlog(), LogEvent::HandlerType::SetAccountTtlOnServer,
get_log_event_storer(log_event));
}

auto new_promise = get_erase_log_event_promise(log_event_id, std::move(promise));
promise = std::move(new_promise); // to prevent self-move

td_->create_handler<SetAccountTtlQuery>(std::move(promise))->send(account_ttl);
}

void AccountManager::set_account_ttl(int32 account_ttl, Promise<Unit> &&promise) {
set_account_ttl_on_server(account_ttl, 0, std::move(promise));
}

void AccountManager::get_account_ttl(Promise<int32> &&promise) {
td_->create_handler<GetAccountTtlQuery>(std::move(promise))->send();
}
Expand Down Expand Up @@ -1148,6 +1176,13 @@ void AccountManager::on_binlog_events(vector<BinlogEvent> &&events) {
reset_authorizations_on_server(event.id_, Auto());
break;
}
case LogEvent::HandlerType::SetAccountTtlOnServer: {
SetAccountTtlOnServerLogEvent log_event;
log_event_parse(log_event, event.get_data()).ensure();

set_account_ttl_on_server(log_event.account_ttl_, event.id_, Auto());
break;
}
case LogEvent::HandlerType::SetDefaultHistoryTtlOnServer: {
SetDefaultHistoryTtlOnServerLogEvent log_event;
log_event_parse(log_event, event.get_data()).ensure();
Expand Down
3 changes: 3 additions & 0 deletions td/telegram/AccountManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ class AccountManager final : public Actor {
class ChangeAuthorizationSettingsOnServerLogEvent;
class ResetAuthorizationOnServerLogEvent;
class ResetAuthorizationsOnServerLogEvent;
class SetAccountTtlOnServerLogEvent;
class SetDefaultHistoryTtlOnServerLogEvent;

void start_up() final;
Expand Down Expand Up @@ -110,6 +111,8 @@ class AccountManager final : public Actor {

void reset_authorizations_on_server(uint64 log_event_id, Promise<Unit> &&promise);

void set_account_ttl_on_server(int32 account_ttl, uint64 log_event_id, Promise<Unit> &&promise);

void set_default_history_ttl_on_server(int32 message_ttl, uint64 log_event_id, Promise<Unit> &&promise);

Td *td_;
Expand Down
1 change: 1 addition & 0 deletions td/telegram/TdDb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ Status init_binlog(Binlog &binlog, string path, BinlogKeyValue<Binlog> &binlog_p
case LogEvent::HandlerType::ResetAuthorizationOnServer:
case LogEvent::HandlerType::ResetAuthorizationsOnServer:
case LogEvent::HandlerType::SetDefaultHistoryTtlOnServer:
case LogEvent::HandlerType::SetAccountTtlOnServer:
events.to_account_manager.push_back(event.clone());
break;
case LogEvent::HandlerType::BinlogPmcMagic:
Expand Down
1 change: 1 addition & 0 deletions td/telegram/logevent/LogEvent.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ class LogEvent {
ResetAuthorizationOnServer = 0x501,
ResetAuthorizationsOnServer = 0x502,
SetDefaultHistoryTtlOnServer = 0x503,
SetAccountTtlOnServer = 0x504,
ConfigPmcMagic = 0x1f18,
BinlogPmcMagic = 0x4327
};
Expand Down

0 comments on commit fb85920

Please sign in to comment.