目录
目录README.md

应用目录差异分析&增量备份服务

一:介绍

这是一个差分备份存储系统,采用了增量存储模式。它支持以线性形式对版本信息进行存储,也即差分备份、全量备份,合并两组差分备份数据。

二:如何运行

代码内在Main.cpp实现了一个简单的交互系统,详细信息见代码内注释。

三:接口

这份代码提供了五个接口,其函数签名如下:

函数名 功能
Backup(Path1, Path2, BackupPath); 将两个目录差分备份,以我们设计的协议格式将差分备份数据输出至备份目录
Backup(Path, BackupPath) 全量备份一个目录,以我们设计的协议输出至备份目录
DiffMerge(BackupList, Output) 合并两份(可支持多份)顺次差分备份信息,以同样的协议输出
ShowBackup(BackupPath) 以简要的格式输出目录下的备份信息
Recover(Path1, Path2) 把备份数据作用于工作目录,恢复最后一次备份时的数据

四:CMake在项目中的使用

CMake见源代码根目录下方CMake文件中的注释,多线程与内存池参数等见介绍注释。

五:性能

性能数据详见同目录下方PPT介绍。

六:构建并运行

Windows或Linux下直接运行CMakeLists.txt即可。也可以用Visual Studio等IDE自行构建。

HarmonyOS运行环境见下。

七:有关HarmonyOS测试环境搭建的细节

  1. Dev请务必使用最新版本的HarmonyOS NEXT Developer Beta2版本的DevEco Studio。

  2. 虚拟机请使用配套的版本,需要在华为官网上申请测试权限才能使用。

  3. 创建一个C++开发示例,API版本需要最新的12。

  4. 拷贝除Main以外的源代码进去。

  5. CMakeLists.txt文件内添加:

    target_link_libraries(entry PUBLIC libhilog_ndk.z.so)
    add_definitions(-DHarmonyOSLog)
  6. 需要新开一个文件,按照示例实现注册表,以及添加接口供前端调用,参照DevEco Studio C++ Template实现。其余有关的文件(如Index.d.ts)也需要作更改。

  7. module.json5文件内添加请求权限的声明:

    "requestPermissions": [
            {
            "name" : "ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY",
            "reason": "$string:reason",
            "usedScene": {
              "abilities": [
                "FormAbility"
              ],
              "when":"inuse"
            }
          }
        ]
  8. HarmonyOS的文件系统与Linux相仿,这里使用的基础目录是/data/storage/el2/base/files

  9. 运行时先需要先申请访问权限,再执行样例。

八:引用开源项目

本项目线程池引用progschj/ThreadPool: A simple C++11 Thread Pool implementation (github.com)并遵守其协议开源。

关于
98.5 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号