Sese Framework  x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
sese::archive::ArchiveReader类 参考

存档读取器 更多...

#include <ArchiveReader.h>

Public 类型

using ExtractCallback = std::function<bool(const std::filesystem::path &base_path, Config::EntryType type, io::InputStream *input, size_t readable)>
 解压回调函数
 

Public 成员函数

 ArchiveReader (io::InputStream *input)
 
virtual ~ArchiveReader ()
 
int setPassword (const std::string &pwd) const
 
int setOptions (const std::string &opt) const
 
bool extract (const ExtractCallback &callback)
 
int getError () const
 
const char * getErrorString () const
 

静态 Public 成员函数

static bool extract (const std::filesystem::path &src_path, const std::filesystem::path &dest_path, const std::string &pwd={})
 
static int openCallback (void *a, ArchiveReader *archive_this)
 
static int64_t readCallback (void *a, ArchiveReader *archive_this, const void **buffer)
 
static int closeCallback (void *a, ArchiveReader *archive_this)
 

Protected 属性

char buffer [4096] {}
 
void * archive {}
 
io::InputStreaminput {}
 

详细描述

存档读取器

成员类型定义说明

◆ ExtractCallback

using sese::archive::ArchiveReader::ExtractCallback = std::function<bool(const std::filesystem::path &base_path, Config::EntryType type, io::InputStream *input, size_t readable)>

解压回调函数

构造及析构函数说明

◆ ArchiveReader()

ArchiveReader::ArchiveReader ( io::InputStream * input)
explicit

从输入流中读取存档

参数
input输入流

◆ ~ArchiveReader()

ArchiveReader::~ArchiveReader ( )
virtual

引用了 XX.

成员函数说明

◆ closeCallback()

int ArchiveReader::closeCallback ( void * a,
ArchiveReader * archive_this )
static

被这些函数引用 close().

◆ extract() [1/2]

bool ArchiveReader::extract ( const ExtractCallback & callback)

执行解压操作

参数
callback解压回调函数
返回
解压是否成功

引用了 archive, callback(), close(), sese::archive::Config::fromValue(), open(), read() , 以及 XX.

◆ extract() [2/2]

bool ArchiveReader::extract ( const std::filesystem::path & src_path,
const std::filesystem::path & dest_path,
const std::string & pwd = {} )
static

将存档解压至指定位置

参数
src_path存档路径
dest_path解压目的路径
pwd密码,可选的
返回
是否成功

引用了 a, archive, sese::io::FileStream::B_WRITE_TRUNC, buffer , 以及 write().

◆ getError()

int ArchiveReader::getError ( ) const
nodiscard

获取当前错误码

返回
错误码

引用了 XX.

◆ getErrorString()

const char * ArchiveReader::getErrorString ( ) const
nodiscard

获取当前错误字符串

返回
错误字符串

引用了 XX.

◆ openCallback()

int ArchiveReader::openCallback ( void * a,
ArchiveReader * archive_this )
static

被这些函数引用 open().

◆ readCallback()

int64_t ArchiveReader::readCallback ( void * a,
ArchiveReader * archive_this,
const void ** buffer )
static

引用了 buffer, input , 以及 sese::io::InputStream::read().

被这些函数引用 read().

◆ setOptions()

int ArchiveReader::setOptions ( const std::string & opt) const
nodiscard

为当前的存档设置 libarchive 选项

参数
opt选项字符串
返回
成功返回 0

引用了 XX.

◆ setPassword()

int ArchiveReader::setPassword ( const std::string & pwd) const
nodiscard

为当前读取的文档设置使用的密码

参数
pwd欲使用的密码
返回
成功返回 0

引用了 XX.

类成员变量说明

◆ archive

void* sese::archive::ArchiveReader::archive {}
protected

被这些函数引用 extract() , 以及 extract().

◆ buffer

char sese::archive::ArchiveReader::buffer[4096] {}
protected

被这些函数引用 extract() , 以及 readCallback().

◆ input

io::InputStream* sese::archive::ArchiveReader::input {}
protected

被这些函数引用 readCallback().


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