🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
ast::FileDownloadReceiver类 参考

#include <NetworkStreamReceiver.hpp>

+ 类 ast::FileDownloadReceiver 继承关系图:

Public 成员函数

 FileDownloadReceiver (const std::string &filepath, const DownloadProgressCallback &progress)
 
 FileDownloadReceiver (const FileDownloadReceiver &other)=delete
 
FileDownloadReceiver & operator= (const FileDownloadReceiver &other)=delete
 
errc_t onHeaders (int statusCode, const std::map< std::string, std::string > &headers) override
 
errc_t onData (const char *data, size_t size) override
 
void onError (errc_t) override
 
uint64_t downloaded () const
 
uint64_t total () const
 
errc_t finish ()
 
void discard ()
 
- Public 成员函数 继承自 ast::NetworkStreamReceiver
virtual void onComplete ()
 

详细描述

将流式响应体写入文件并在写盘过程中报告下载进度

仅在 HTTP 200 后写入临时文件 <filepath>.part,成功时由 finish() 原子改名到 filepath, 出错时由外部调用 discard() 清理临时文件;这样失败的下载不会破坏 filepath 上已存在的文件。

成员函数说明

◆ finish()

errc_t ast::FileDownloadReceiver::finish ( )

成功时关闭文件句柄并把临时文件改名到目标路径(覆盖已存在文件)

返回
eNoError 成功;否则保留/清理临时文件并返回错误码

◆ onData()

errc_t ast::FileDownloadReceiver::onData ( const char * data,
size_t size )
overridevirtual

收到一块响应体数据(可能被多次调用)

参数
data数据指针
size数据长度
返回
0 继续接收,非 0 取消流式接收

实现了 ast::NetworkStreamReceiver.

◆ onError()

void ast::FileDownloadReceiver::onError ( errc_t error)
inlineoverridevirtual

发生网络错误

参数
error错误码

重载 ast::NetworkStreamReceiver .

◆ onHeaders()

errc_t ast::FileDownloadReceiver::onHeaders ( int statusCode,
const std::map< std::string, std::string > & headers )
overridevirtual

收到 HTTP 响应头(在 onData 之前触发一次)

参数
statusCodeHTTP 状态码
headers响应头(键值对)
返回
0 继续接收;非 0 表示基于响应头拒绝/中止(不会再读取响应体)

重载 ast::NetworkStreamReceiver .


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