Add source to load_database_files.
This commit is contained in:
parent
515bd488fb
commit
da564df855
@ -79,18 +79,18 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void after_get_difference() final {
|
void after_get_difference() final {
|
||||||
load_database_files();
|
load_database_files("after_get_difference");
|
||||||
}
|
}
|
||||||
|
|
||||||
void toggle_is_paused(FileId file_id, bool is_paused, Promise<Unit> promise) final {
|
void toggle_is_paused(FileId file_id, bool is_paused, Promise<Unit> promise) final {
|
||||||
TRY_STATUS_PROMISE(promise, check_is_active());
|
TRY_STATUS_PROMISE(promise, check_is_active("toggle_is_paused"));
|
||||||
TRY_RESULT_PROMISE(promise, file_info_ptr, get_file_info(file_id));
|
TRY_RESULT_PROMISE(promise, file_info_ptr, get_file_info(file_id));
|
||||||
toggle_is_paused(*file_info_ptr, is_paused);
|
toggle_is_paused(*file_info_ptr, is_paused);
|
||||||
promise.set_value(Unit());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
void toggle_all_is_paused(bool is_paused, Promise<Unit> promise) final {
|
void toggle_all_is_paused(bool is_paused, Promise<Unit> promise) final {
|
||||||
TRY_STATUS_PROMISE(promise, check_is_active());
|
TRY_STATUS_PROMISE(promise, check_is_active("toggle_all_is_paused"));
|
||||||
|
|
||||||
vector<FileId> to_toggle;
|
vector<FileId> to_toggle;
|
||||||
for (auto &it : files_) {
|
for (auto &it : files_) {
|
||||||
@ -118,7 +118,7 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void remove_all_files(bool only_active, bool only_completed, bool delete_from_cache, Promise<Unit> promise) final {
|
void remove_all_files(bool only_active, bool only_completed, bool delete_from_cache, Promise<Unit> promise) final {
|
||||||
TRY_STATUS_PROMISE(promise, check_is_active());
|
TRY_STATUS_PROMISE(promise, check_is_active("remove_all_files"));
|
||||||
vector<FileId> to_remove;
|
vector<FileId> to_remove;
|
||||||
for (auto &it : files_) {
|
for (auto &it : files_) {
|
||||||
FileInfo &file_info = *it.second;
|
FileInfo &file_info = *it.second;
|
||||||
@ -138,7 +138,7 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
|
|
||||||
void add_file(FileId file_id, FileSourceId file_source_id, string search_text, int8 priority,
|
void add_file(FileId file_id, FileSourceId file_source_id, string search_text, int8 priority,
|
||||||
Promise<td_api::object_ptr<td_api::file>> promise) final {
|
Promise<td_api::object_ptr<td_api::file>> promise) final {
|
||||||
TRY_STATUS_PROMISE(promise, check_is_active());
|
TRY_STATUS_PROMISE(promise, check_is_active("add_file"));
|
||||||
|
|
||||||
remove_file_impl(file_id, {}, false);
|
remove_file_impl(file_id, {}, false);
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_is_active().is_error()) {
|
if (check_is_active("change_search_text").is_error()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto r_file_info_ptr = get_file_info(file_id, file_source_id);
|
auto r_file_info_ptr = get_file_info(file_id, file_source_id);
|
||||||
@ -192,7 +192,7 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
void do_search(string query, bool only_active, bool only_completed, string offset, int32 limit,
|
void do_search(string query, bool only_active, bool only_completed, string offset, int32 limit,
|
||||||
Promise<td_api::object_ptr<td_api::foundFileDownloads>> promise, Result<Unit>) {
|
Promise<td_api::object_ptr<td_api::foundFileDownloads>> promise, Result<Unit>) {
|
||||||
TRY_STATUS_PROMISE(promise, G()->close_status());
|
TRY_STATUS_PROMISE(promise, G()->close_status());
|
||||||
TRY_STATUS_PROMISE(promise, check_is_active());
|
TRY_STATUS_PROMISE(promise, check_is_active("do_search"));
|
||||||
|
|
||||||
if (!is_search_inited_) {
|
if (!is_search_inited_) {
|
||||||
Promise<Unit> lock;
|
Promise<Unit> lock;
|
||||||
@ -358,8 +358,8 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
Counters counters_;
|
Counters counters_;
|
||||||
Counters sent_counters_;
|
Counters sent_counters_;
|
||||||
FileCounters file_counters_;
|
FileCounters file_counters_;
|
||||||
|
const char *database_loading_source_ = nullptr;
|
||||||
bool is_inited_{false};
|
bool is_inited_{false};
|
||||||
bool is_database_being_loaded_{false};
|
|
||||||
bool is_database_loaded_{false};
|
bool is_database_loaded_{false};
|
||||||
bool is_search_inited_{false};
|
bool is_search_inited_{false};
|
||||||
int64 max_download_id_{0};
|
int64 max_download_id_{0};
|
||||||
@ -462,7 +462,7 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
add_file_info(std::move(file_info), "");
|
add_file_info(std::move(file_info), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
void load_database_files() {
|
void load_database_files(const char *source) {
|
||||||
if (is_database_loaded_) {
|
if (is_database_loaded_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -472,8 +472,8 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
CHECK(is_inited_);
|
CHECK(is_inited_);
|
||||||
CHECK(!is_database_being_loaded_);
|
LOG_CHECK(database_loading_source_ == nullptr) << database_loading_source_ << ' ' << source;
|
||||||
is_database_being_loaded_ = true;
|
database_loading_source_ = source;
|
||||||
|
|
||||||
LOG(INFO) << "Start Download Manager database loading";
|
LOG(INFO) << "Start Download Manager database loading";
|
||||||
|
|
||||||
@ -489,7 +489,7 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
is_database_loaded_ = true;
|
is_database_loaded_ = true;
|
||||||
is_database_being_loaded_ = false;
|
database_loading_source_ = nullptr;
|
||||||
update_counters();
|
update_counters();
|
||||||
check_completed_downloads_size();
|
check_completed_downloads_size();
|
||||||
|
|
||||||
@ -574,7 +574,7 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
|
|
||||||
Status remove_file_impl(FileId file_id, FileSourceId file_source_id, bool delete_from_cache) {
|
Status remove_file_impl(FileId file_id, FileSourceId file_source_id, bool delete_from_cache) {
|
||||||
LOG(INFO) << "Remove from downloads file " << file_id << " from " << file_source_id;
|
LOG(INFO) << "Remove from downloads file " << file_id << " from " << file_source_id;
|
||||||
TRY_STATUS(check_is_active());
|
TRY_STATUS(check_is_active("remove_file_impl"));
|
||||||
TRY_RESULT(file_info_ptr, get_file_info(file_id, file_source_id));
|
TRY_RESULT(file_info_ptr, get_file_info(file_id, file_source_id));
|
||||||
auto &file_info = *file_info_ptr;
|
auto &file_info = *file_info_ptr;
|
||||||
auto download_id = file_info.download_id;
|
auto download_id = file_info.download_id;
|
||||||
@ -603,7 +603,7 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Status remove_file_if_finished_impl(FileId file_id) {
|
Status remove_file_if_finished_impl(FileId file_id) {
|
||||||
TRY_STATUS(check_is_active());
|
TRY_STATUS(check_is_active("remove_file_if_finished_impl"));
|
||||||
TRY_RESULT(file_info_ptr, get_file_info(file_id, {}));
|
TRY_RESULT(file_info_ptr, get_file_info(file_id, {}));
|
||||||
if (!is_completed(*file_info_ptr)) {
|
if (!is_completed(*file_info_ptr)) {
|
||||||
return Status::Error("File is active");
|
return Status::Error("File is active");
|
||||||
@ -803,13 +803,13 @@ class DownloadManagerImpl final : public DownloadManager {
|
|||||||
register_file_info(file_info);
|
register_file_info(file_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
Status check_is_active() {
|
Status check_is_active(const char *source) {
|
||||||
if (!callback_) {
|
if (!callback_) {
|
||||||
LOG(ERROR) << "DownloadManager is closed";
|
LOG(ERROR) << "DownloadManager is closed in " << source;
|
||||||
return Status::Error(500, "DownloadManager is closed");
|
return Status::Error(500, "DownloadManager is closed");
|
||||||
}
|
}
|
||||||
CHECK(is_inited_);
|
CHECK(is_inited_);
|
||||||
load_database_files();
|
load_database_files(source);
|
||||||
return Status::OK();
|
return Status::OK();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user