DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DA::DAAbstractArchiveTask类 参考abstract

针对 更多...

#include <DAAbstractArchiveTask.h>

类 DA::DAAbstractArchiveTask 继承关系图:
DA::DAZipArchiveTask_ArchiveFile DA::DAZipArchiveTask_ByteArray DA::DAZipArchiveTask_ChartItem DA::DAZipArchiveTask_LoadDataManager DA::DAZipArchiveTask_Xml

Public 类型

enum  Mode { ReadMode , WriteMode }
 模式用来区分读写
 
using FpLoadedCallBack = std::function< void(std::shared_ptr< DAAbstractArchiveTask >) >
 

Public 成员函数

virtual bool exec (DAAbstractArchive *archive, Mode mode)=0
 执行任务
 
int getCode () const
 获取流水号
 
void setCode (int code)
 设置流水号
 
QString getName () const
 
void setName (const QString &name)
 
QString getDescribe () const
 
void setDescribe (const QString &describe)
 
void setLoadedCallBack (const FpLoadedCallBack &callBack)
 
FpLoadedCallBack getLoadedCallBack () const
 

详细描述

针对

参见
DAZipArchiveThreadWrapper 的任务
DAZipArchiveThreadWrapper 内部有个任务队列,在保存和加载需要推入任务,具体执行时会逐个任务进行执行, 有特殊的读取和写入需求时,只要派生一个特殊的任务即可
注解
注意任务的执行是在别的线程中,不要在任务中操作ui

成员函数说明

◆ exec()

virtual bool DA::DAAbstractArchiveTask::exec ( DAAbstractArchive archive,
Mode  mode 
)
pure virtual

执行任务

参数
archive传入的档案基类
mode写或读模式
返回
任务执行成功失败的返回
注解
注意任务的执行是在别的线程中,不要在任务中操作ui

示例

{
if (!archive) {
return false;
}
DAZipArchive* zip = static_cast< DAZipArchive* >(archive);
if (mode == DAAbstractArchiveTask::WriteMode) {
// 写模式
if (!zip->isOpened()) {
if (!zip->create()) {
qDebug() << QString("create archive error:%1").arg(zip->getBaseFilePath());
return false;
}
}
if (!zip->write(mPath, mData)) {
qDebug() << QString("write data to \"%1\" error").arg(mPath);
return false;
}
} else {
// 读取数据模式
if (!zip->isOpened()) {
if (!zip->open()) {
qDebug() << QString("open archive error:%1").arg(zip->getBaseFilePath());
return false;
}
}
mData = zip->read(mPath);
if (mData.isEmpty()) {
qDebug() << QString("can not read %1 from %2").arg(mPath, zip->getBaseFilePath());
return false;
}
}
return true;
}
Mode
模式用来区分读写
Definition DAAbstractArchiveTask.h:26
持久化的基类
Definition DAAbstractArchive.h:16
virtual bool exec(DAAbstractArchive *archive, DAAbstractArchiveTask::Mode mode) override
执行任务
Definition DAZipArchiveTask_ByteArray.cpp:47
zip档案
Definition DAZipArchive.h:12
bool open()
打开一个压缩包,主要为了读取
Definition DAZipArchive.cpp:233
QByteArray read(const QString &relatePath) override
读数据
Definition DAZipArchive.cpp:378
bool write(const QString &relatePath, const QByteArray &byte) override
写数据
Definition DAZipArchive.cpp:292
bool create()
创建一个压缩包
Definition DAZipArchive.cpp:251
bool isOpened() const
判断是否打开文件
Definition DAZipArchive.cpp:269

DA::DAZipArchiveTask_LoadDataManager, DA::DAZipArchiveTask_ArchiveFile, DA::DAZipArchiveTask_ByteArray, DA::DAZipArchiveTask_ChartItem , 以及 DA::DAZipArchiveTask_Xml 内被实现.

◆ getCode()

int DA::DAAbstractArchiveTask::getCode ( ) const

获取流水号

流水号是为了方便知道这个任务的内容,用户可以设置任意数字,只要自己程序知道具体数字含义是什么即可

返回

◆ setCode()

void DA::DAAbstractArchiveTask::setCode ( int  code)

设置流水号

流水号是为了方便知道这个任务的内容,用户可以设置任意数字,只要自己程序知道具体数字含义是什么即可

参数
code

该类的文档由以下文件生成: