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

保存/加载xml文件的任务 更多...

#include <DAZipArchiveTask_Xml.h>

类 DA::DAZipArchiveTask_Xml 继承关系图:
DA::DAAbstractArchiveTask

Public 成员函数

 DAZipArchiveTask_Xml (const QString &path)
 
 DAZipArchiveTask_Xml (const QString &path, const QDomDocument &doc)
 
QDomDocument getDomDocument () const
 
void setDomDocument (const QDomDocument &domDocument)
 
QString getPath () const
 
void setPath (const QString &path)
 
QString getLastErrorString () const
 
void setLastErrorString (const QString &lastErrorString)
 
virtual bool exec (DAAbstractArchive *archive, DAAbstractArchiveTask::Mode mode) override
 执行任务
 
- Public 成员函数 继承自 DA::DAAbstractArchiveTask
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
 

额外继承的成员函数

- Public 类型 继承自 DA::DAAbstractArchiveTask
enum  Mode { ReadMode , WriteMode }
 模式用来区分读写
 
using FpLoadedCallBack = std::function< void(std::shared_ptr< DAAbstractArchiveTask >) >
 

详细描述

保存/加载xml文件的任务

成员函数说明

◆ exec()

bool DA::DAZipArchiveTask_Xml::exec ( DAAbstractArchive archive,
DAAbstractArchiveTask::Mode  mode 
)
overridevirtual

执行任务

参数
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::DAAbstractArchiveTask.


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