diff --git a/backup.gni b/backup.gni index 7dc5c0e8790cf156fdbdcfc131128191634fe5c5..18af02ca6c1a9a661b1bb823d424ef3ce3258bd2 100644 --- a/backup.gni +++ b/backup.gni @@ -25,7 +25,7 @@ path_jsoncpp = "//third_party/jsoncpp" path_napi = "//foundation/arkui/napi" path_samgr = "//foundation/systemabilitymgr/samgr" path_init = "//base/startup/init" - +path_filemgmt_libn = "//foundation/filemanagement/file_api/utils/filemgmt_libn" path_backup_mock = "//foundation/filemanagement/app_file_service/tests/mock" backup_mock_parcel_include_dirs = [ "$path_backup_mock/parcel/include" ] diff --git a/tests/unittests/backup_utils/BUILD.gn b/tests/unittests/backup_utils/BUILD.gn index 9da04ca4c8d0e483a343d4798441e8b5f93a54f9..3e7a4d4bc623aced7b22f25516b8c77a7b110d24 100644 --- a/tests/unittests/backup_utils/BUILD.gn +++ b/tests/unittests/backup_utils/BUILD.gn @@ -79,7 +79,10 @@ ohos_unittest("b_tarball_cmdline_test") { "${path_backup}/utils/include", ] - deps = [ "${path_backup}/tests/utils:backup_test_utils" ] + deps = [ + "${path_backup}/tests/utils:backup_test_utils", + "${path_backup}/utils/:backup_utils", + ] external_deps = [ "c_utils:utils" ] use_exceptions = true diff --git a/utils/BUILD.gn b/utils/BUILD.gn index e05117dfb17ae95a9a22c41e4e65f9f02c014f58..2bc20ad1b47d190e48d7db12ce3ba47c5f1dd620 100644 --- a/utils/BUILD.gn +++ b/utils/BUILD.gn @@ -25,6 +25,10 @@ config("utils_public_config") { include_dirs = [ "include", "${path_base}/include", + "${path_filemgmt_libn}/include", + "${path_napi}/interfaces/inner_api", + "${path_napi}/interfaces/kits", + "//third_party/node/src", ] } diff --git a/utils/include/b_error/b_error.h b/utils/include/b_error/b_error.h index 058361d2bda372b4fa5f941b53feaf52233d2273..dd58e794c40631e7067778eaa3fcc29589b81eb2 100644 --- a/utils/include/b_error/b_error.h +++ b/utils/include/b_error/b_error.h @@ -30,6 +30,8 @@ #include #include +#include "n_error.h" + #if __has_builtin(__builtin_FILE) && __has_builtin(__builtin_LINE) && __has_builtin(__builtin_FUNCTION) #define DEFINE_SOURCE_LOCATION \ int lineNo = __builtin_LINE(), const char *fileName = __builtin_FILE(), \ @@ -39,6 +41,8 @@ #endif namespace OHOS::FileManagement::Backup { +using ErrCode = int; + class BError : public std::exception { public: /** @@ -85,14 +89,7 @@ public: * * @return int 标注错误码 */ - int GetCode() const - { - if (code_ == Codes::OK) { - return 0; - } else { - return -1 * (static_cast(code_) | ErrCodeOffset(SUBSYS_FILEMANAGEMENT, codeSubsystem_)); - } - } + int GetCode() const; /** * @brief 返回原始错误码 @@ -200,8 +197,38 @@ private: {Codes::EXT_BROKEN_IPC, "Extension failed to do IPC"}, }; + static inline const std::map errCodeTable_ { + {static_cast(Codes::OK), static_cast(Codes::OK)}, + {static_cast(Codes::UTILS_INVAL_JSON_ENTITY), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_INVAL}, + {static_cast(Codes::UTILS_INVAL_FILE_HANDLE), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_INVAL}, + {static_cast(Codes::UTILS_INVAL_TARBALL_ARG), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_UKERR}, + {static_cast(Codes::UTILS_INVAL_PROCESS_ARG), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_UKERR}, + {static_cast(Codes::UTILS_INTERRUPTED_PROCESS), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_UKERR}, + {static_cast(Codes::TOOL_INVAL_ARG), LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_UKERR}, + {static_cast(Codes::SA_INVAL_ARG), LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_INVAL}, + {static_cast(Codes::SA_BROKEN_IPC), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfStorageService::E_IPCSS}, + {static_cast(Codes::SA_REFUSED_ACT), LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_PERM}, + {static_cast(Codes::SA_BROKEN_ROOT_DIR), LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_UKERR}, + {static_cast(Codes::SDK_INVAL_ARG), LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_INVAL}, + {static_cast(Codes::SDK_BROKEN_IPC), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfStorageService::E_IPCSS}, + {static_cast(Codes::SDK_MIXED_SCENARIO), LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_INVAL}, + {static_cast(Codes::EXT_INVAL_ARG), LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_INVAL}, + {static_cast(Codes::EXT_BROKEN_FRAMEWORK), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_UKERR}, + {static_cast(Codes::EXT_BROKEN_BACKUP_SA), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfStorageService::E_IPCSS}, + {static_cast(Codes::EXT_BROKEN_IPC), + LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfStorageService::E_IPCSS}, + }; + private: - const int codeSubsystem_ {1}; Codes code_ {Codes::OK}; std::string msg_; diff --git a/utils/src/b_error/b_error.cpp b/utils/src/b_error/b_error.cpp index e6e108153f080d1da12e6476ca3a8d0720524def..74987d5be14aedad4cba39db0cdaeb3b3224d83a 100644 --- a/utils/src/b_error/b_error.cpp +++ b/utils/src/b_error/b_error.cpp @@ -15,6 +15,7 @@ #include "b_error/b_error.h" +#include #include #include @@ -49,4 +50,18 @@ string BError::WrapMessageWithExtraInfos(const char *fileName, HiviewDFX::HiLog::Error(FILEMGMT_LOG_LABEL, "%{public}s", res.c_str()); return res; } + +int BError::GetCode() const +{ + int code = static_cast(GetRawCode()); + if (LibN::errCodeTable.find(code) != LibN::errCodeTable.end()) { + auto [err, msg] = LibN::errCodeTable.at(code); + return err; + } + if (errCodeTable_.find(code) != errCodeTable_.end()) { + return errCodeTable_.at(code); + } + HILOGE("Unknown code : %{public}d", code); + return LibN::FILEIO_SYS_CAP_TAG + LibN::ErrCodeSuffixOfFileIO::E_UKERR; +} } // namespace OHOS::FileManagement::Backup \ No newline at end of file