From ca37831410968dd2654177c22b1cdec77d5cf91a Mon Sep 17 00:00:00 2001 From: Wannabe Date: Sat, 10 May 2025 15:06:38 +0800 Subject: [PATCH] Optimise the transmission mechanism of the backup framework. Signed-off-by: Wannabe --- .../native/backup_ext/include/ext_extension.h | 21 ++- .../native/backup_ext/src/ext_extension.cpp | 72 ++++---- .../backup_ext/src/sub_ext_extension.cpp | 161 ++++++++++++++++++ .../src/module_ipc/svc_session_manager.cpp | 2 + utils/BUILD.gn | 1 + utils/include/b_resources/b_constants.h | 2 +- utils/include/b_utils/scan_file_singleton.h | 69 ++++++++ utils/src/b_filesystem/b_dir.cpp | 13 +- utils/src/b_utils/scan_file_singleton.cpp | 105 ++++++++++++ 9 files changed, 405 insertions(+), 41 deletions(-) create mode 100644 utils/include/b_utils/scan_file_singleton.h create mode 100644 utils/src/b_utils/scan_file_singleton.cpp diff --git a/frameworks/native/backup_ext/include/ext_extension.h b/frameworks/native/backup_ext/include/ext_extension.h index 9d7ab287b..15d294e59 100644 --- a/frameworks/native/backup_ext/include/ext_extension.h +++ b/frameworks/native/backup_ext/include/ext_extension.h @@ -99,11 +99,22 @@ private: * @brief backup * * @param bigFileInfo bigfiles to be backup + * @param bigFileInfoBackuped bigfiles have been backuped * @param smallFiles smallfiles to be backup * @param includesNum sizeof includes * @param excludesNum sizeof excludes */ - int DoBackup(TarMap &bigFileInfo, map &smallFiles, uint32_t includesNum, uint32_t excludesNum); + int DoBackup(TarMap &bigFileInfo, TarMap &bigFileInfoBackuped, map &smallFiles, + uint32_t includesNum, uint32_t excludesNum); + + /** + * @brief backup + * + * @param bigFileInfo bigfiles to be backup + * @param backupedFileSize backuped file size + */ + int DoBackupBigFiles(TarMap &bigFileInfo, uint_32 backupedFileSize); + /** * @brief restore @@ -210,7 +221,7 @@ private: int DoIncrementalBackupTask(UniqueFd incrementalFd, UniqueFd manifestFd); ErrCode IncrementalBigFileReady(TarMap &pkgInfo, const vector &bigInfos, sptr proxy); - ErrCode BigFileReady(TarMap &bigFileInfo, sptr proxy); + ErrCode BigFileReady(TarMap &bigFileInfo, sptr proxy, unint32_t BackupedFileSize); void WaitToSendFd(std::chrono::system_clock::time_point &startTime, int &fdSendNum); void RefreshTimeInfo(std::chrono::system_clock::time_point &startTime, int &fdSendNum); void IncrementalPacket(const vector &infos, TarMap &tar, sptr proxy); @@ -362,6 +373,12 @@ private: void OnRestoreExFinish(); void DoBackupStart(); void DoBackupEnd(); + void CalculateDataSizeTask(const string &config); + void DoBackUpTask(const string &config); + TarMap Transfer2Bigfiles(std::map files); + void PreDealExcludes(std::vector &excludes); + template