FileDownloader 类
class KDUpdater::FileDownloaderFileDownloader 类是 KDUpdater 中使用的文件下载器的基类。《详情...》
头文件 | #include <FileDownloader> |
继承自 | QObject |
继承 | KDUpdater::HttpDownloader、KDUpdater::LocalFileDownloader 和 KDUpdater::ResourceFileDownloader |
属性
- autoRemoveDownloadedFile : bool
- scheme : QString
- url : QUrl
公共函数
FileDownloader(const QString &scheme, QObject *parent = 0) | |
virtual | ~FileDownloader() |
QByteArray | assumedSha1Sum() const |
QAuthenticator | authenticator() const |
virtual bool | canDownload() const = 0 |
virtual KDUpdater::FileDownloader * | clone(QObject *parent = 0) const = 0 |
void | download() |
virtual QString | downloadedFileName() const = 0 |
QString | errorString() const |
bool | followRedirects() const |
qint64 | getBytesReceived() const |
bool | ignoreSslErrors() |
bool | isAutoRemoveDownloadedFile() const |
virtual bool | isDownloaded() const = 0 |
KDUpdater::FileDownloaderProxyFactory * | proxyFactory() const |
QString | scheme() const |
void | setAssumedSha1Sum(const QByteArray &sum) |
void | setAuthenticator(const QAuthenticator &authenticator) |
void | setAutoRemoveDownloadedFile(bool val) |
virtual void | setDownloadedFileName(const QString &name) = 0 |
void | setFollowRedirects(bool val) |
void | setIgnoreSslErrors(bool ignore) |
void | setProxyFactory(KDUpdater::FileDownloaderProxyFactory *factory) |
void | setScheme(const QString &scheme) |
void | setUrl(const QUrl &url) |
QByteArray | sha1Sum() const |
QUrl | url() const |
公共槽函数
virtual void | cancelDownload() |
信号
void | authenticatorChanged(const QAuthenticator &authenticator) |
void | downloadAborted(const QString &errorMessage) |
void | downloadCanceled() |
void | downloadCompleted() |
void | downloadProgress(double progress) |
void | downloadProgress(qint64 bytesReceived, qint64 bytesToReceive) |
void | downloadSpeed(qint64 bytesPerSecond) |
void | downloadStarted() |
void | downloadStatus(const QString &status) |
void | estimatedDownloadTime(int seconds) |
受保护函数
void | addCheckSumData(const QByteArray &data) |
void | addSample(qint64 sample) |
qint64 | bytesDownloadedBeforeResume() |
void | clearBytesDownloadedBeforeResume() |
int | downloadDeadlineTimerId() const |
int | downloadSpeedTimerId() const |
void | emitDownloadProgress() |
void | emitDownloadSpeed() |
void | emitDownloadStatus() |
void | emitEstimatedDownloadTime() |
bool | isDownloadPaused() |
bool | isDownloadResumed() |
virtual void | onError() = 0 |
virtual void | onSuccess() = 0 |
void | resetCheckSumData() |
void | runDownloadDeadlineTimer() |
void | runDownloadSpeedTimer() |
void | setDownloadAborted(const QString &error) |
void | setDownloadCanceled() |
void | setDownloadCompleted() |
void | setDownloadPaused(bool paused) |
void | setDownloadResumed(bool resumed) |
void | setProgress(qint64 bytesReceived, qint64 bytesToReceive) |
void | stopDownloadDeadlineTimer() |
void | stopDownloadSpeedTimer() |
qint64 | totalBytesDownloadedBeforeResume() |
void | updateBytesDownloadedBeforeResume(qint64 bytes) |
void | updateTotalBytesDownloadedBeforeResume() |
详细信息
文件下载器由 KDUpdater::Update 类用于下载更新文件。FileDownloader 的每个子类都可以从特定类别的源(例如代码 local
、ftp
、http
)下载文件。
这是一个内部类,不是公共 API 的一部分。目前我们有以下 FileDownloader 的子类:
- HttpDownloader 用于在 Qt 配置 SSL 时,通过 FTP、HTTP 或 HTTPS 下载文件。
- LocalFileDownloader 用于从本地文件系统复制文件。
- ResourceFileDownloader 用于下载资源文件。
属性文档
autoRemoveDownloadedFile : bool
此属性表示下载的文件在下载完成后并且类超出作用域时是否应自动删除。
访问函数
bool | isAutoRemoveDownloadedFile() const |
void | setAutoRemoveDownloadedFile(bool val) |
scheme : QString
此属性表示用于下载文件的方案。
访问函数
QString | scheme() const |
void | setScheme(const QString &scheme) |
url : QUrl
此属性表示用于下载文件的 URL。
访问函数
QUrl | url() const |
void | setUrl(const QUrl &url) |
成员函数文档
[显式]
FileDownloader::FileDownloader(const QString &scheme, QObject *parent = 0)
创建一个具有方案 scheme 和父对象 parent 的文件下载器。
[虚函数]
FileDownloader::~FileDownloader()
销毁文件下载器。
[保护权限]
void FileDownloader::addCheckSumData(const QByteArray &data)
此函数重载 addCheckSumData()。
[保护权限]
void FileDownloader::addSample(qint64 sample)
将 sample 添加到当前的高速率分箱。
QByteArray FileDownloader::assumedSha1Sum() const
返回要下载文件的假定的 SHA-1 校验和。
另请参阅setAssumedSha1Sum。
QAuthenticator FileDownloader::authenticator() const
返回此 FileDownloader 对象正在使用的验证程序副本,用于设置下载请求的用户名和密码。
另请参阅setAuthenticator。
[信号]
void FileDownloader::authenticatorChanged(const QAuthenticator &authenticator)
当验证程序更改为 authenticator 时,发出此信号。
[保护权限]
qint64 FileDownloader::bytesDownloadedBeforeResume()
获取在下载恢复之前下载的字节数。
[纯虚函数]
bool FileDownloader::canDownload() const
如果文件存在且可读,则返回 true
。
[虚拟槽]
void FileDownloader::cancelDownload()
取消文件下载。
[保护权限]
void FileDownloader::clearBytesDownloadedBeforeResume()
清除在下载恢复之前已经下载的字节数。
[纯虚函数]
KDUpdater::FileDownloader *FileDownloader::clone(QObject *parent = 0) const
克隆本地文件下载器并分配具有父对象 parent。
void FileDownloader::download()
下载文件。
[signal]
void FileDownloader::downloadAborted(const QString &errorMessage)
当文件下载因错误信息 errorMessage 而中断时,会发出此信号。
另请参阅 setDownloadAborted。
[signal]
void FileDownloader::downloadCanceled()
如果取消下载文件,则会发出此信号。
另请参阅 setDownloadCanceled。
[signal]
void FileDownloader::downloadCompleted()
文件下载结束时,会发出此信号。
另请参阅 setDownloadCompleted。
[protected]
int FileDownloader::downloadDeadlineTimerId() const
返回下载截止日期计时器ID。
[signal]
void FileDownloader::downloadProgress(double progress)
以此下载进度值发出此信号。
注意:此类中信号 downloadProgress 被重载。要使用函数指针语法连接到此信号,Qt提供了一个方便的辅助工具,如下例所示
connect(fileDownloader, QOverload<double>::of(&FileDownloader::downloadProgress), [=](double progress){ /* ... */ });
[signal]
void FileDownloader::downloadProgress(qint64 bytesReceived, qint64 bytesToReceive)
以接收的字节数 bytesReceived 和要下载的文件的总体大小 bytesToReceive 发出此信号。
注意:此类中信号 downloadProgress 被重载。要使用函数指针语法连接到此信号,Qt提供了一个方便的辅助工具,如下例所示
connect(fileDownloader, QOverload<qint64, qint64>::of(&FileDownloader::downloadProgress), [=](qint64 bytesReceived, qint64 bytesToReceive){ /* ... */ });
[signal]
void FileDownloader::downloadSpeed(qint64 bytesPerSecond)
以此每秒字节数 bytesPerSecond 发出下载速度信号。
[protected]
int FileDownloader::downloadSpeedTimerId() const
返回下载速度计时器ID。
[signal]
void FileDownloader::downloadStarted()
当开始下载文件时,会发出此信号。
[signal]
void FileDownloader::downloadStatus(const QString &status)
以以下格式 <>"100 MiB of 150 MiB - (天) (小时) (分钟) (秒) 剩余" 发出当前下载状态的文本表示: status
[pure virtual]
QString FileDownloader::downloadedFileName() const
返回已下载文件的文件名。
另请参阅 setDownloadedFileName。
[protected]
void FileDownloader::emitDownloadProgress()
发出下载进度。
[受保护的]
void FileDownloader::emitDownloadSpeed()
计算每秒下载数据的字节数,并发出downloadSpeed() 信号。
[受保护的]
void FileDownloader::emitDownloadStatus()
按照以下格式构建下载状态的文本表示:“100 MiB of 150 MiB - 剩余 (天) (小时) (分钟) (秒)”。
发出downloadStatus() 信号。
[受保护的]
void FileDownloader::emitEstimatedDownloadTime()
发出预计的下载数据时间。
QString FileDownloader::errorString() const
返回错误消息。
[信号]
void FileDownloader::estimatedDownloadTime(int seconds)
该信号以秒为单位发出预计下载数据时间。
bool FileDownloader::followRedirects() const
返回是否应跟随重定向。
另见 setFollowRedirects().
qint64 FileDownloader::getBytesReceived() const
返回已接收的字节数。
bool FileDownloader::ignoreSslErrors()
返回true
如果应该忽略SSL错误。
另见 setIgnoreSslErrors().
[受保护的]
bool FileDownloader::isDownloadPaused()
返回下载暂停状态。
[受保护的]
bool FileDownloader::isDownloadResumed()
返回下载恢复状态。
[纯净虚函数]
bool FileDownloader::isDownloaded() const
返回true
如果文件已下载。
[纯净虚保护]
void FileDownloader::onError()
如果在复制期间发生错误,则关闭目标文件并停止下载速度计时器。
[纯净虚保护]
void FileDownloader::onSuccess()
在成功复制后关闭目标文件,并停止下载速度计时器。
KDUpdater::FileDownloaderProxyFactory *FileDownloader::proxyFactory() const
返回一个代理工厂副本,该代理工厂被这个 FileDownloader 对象使用以确定用于请求的代理。
另见 setProxyFactory().
[受保护]
void FileDownloader::resetCheckSumData()
重置已下载文件的SHA-1校验和数据。
[受保护]
void FileDownloader::runDownloadDeadlineTimer()
重新启动下载截止时间计时器。
[受保护]
void FileDownloader::runDownloadSpeedTimer()
启动下载速度计时器。
void FileDownloader::setAssumedSha1Sum(const QByteArray &sum)
将待下载文件的假定SHA-1校验和设置为sum。
另见 assumedSha1Sum。
void FileDownloader::setAuthenticator(const QAuthenticator &authenticator)
将此类使用的认证器对象设置为authenticator。认证器用于传递所需的认证信息。这可能仅对HTTP或FTP请求有用。在新的使用认证器时发出认证器已更改的信号。
另见 authenticator。
[受保护]
void FileDownloader::setDownloadAborted(const QString &error)
将最后发生的错误的可读性描述设置为error。发出downloadStatus()和downloadAborted()信号。
另见 downloadAborted。
[受保护]
void FileDownloader::setDownloadCanceled()
发出downloadCanceled()和downloadStatus()信号。
另见 downloadCanceled。
[受保护]
void FileDownloader::setDownloadCompleted()
将下载状态设置为completed
并显示状态消息。
如果设置了假定SHA-1校验和并且实际计算出的校验和不匹配,则将状态设置为error
。如果没有假定SHA-1,则不执行检查,并将状态设置为success
。
在成功时发出downloadCompleted()和downloadStatus()信号。
[受保护]
void FileDownloader::setDownloadPaused(bool paused)
将下载设置为休眠状态paused。
另见 isDownloadPaused。
[受保护]
void FileDownloader::setDownloadResumed(bool resumed)
将下载状态设置为恢复状态。
另请参阅isDownloadResumed()。
[纯虚]
void FileDownloader::setDownloadedFileName(const QString &name)
将下载文件的文件名设置为name。
另请参阅downloadedFileName()。
void FileDownloader::setFollowRedirects(bool val)
如果val为true
,则确定应遵循重定向。
另请参阅followRedirects()。
void FileDownloader::setIgnoreSslErrors(bool ignore)
如果ignore为true
,则确定忽略SSL错误。
另请参阅ignoreSslErrors()。
[保护]
void FileDownloader::setProgress(qint64 bytesReceived, qint64 bytesToReceive)
设置文件下载进度为接收的字节数,bytesReceived,以及总接收字节数,bytesToReceive。
void FileDownloader::setProxyFactory(KDUpdater::FileDownloaderProxyFactory *factory)
将此类的代理工厂设置为factory。代理工厂用于确定用于给定请求的更具体的代理列表,而不是尝试对所有请求使用相同的代理值。这仅适用于HTTP或FTP请求。
另请参阅proxyFactory()。
QByteArray FileDownloader::sha1Sum() const
返回下载文件的SHA-1校验和。
[保护]
void FileDownloader::stopDownloadDeadlineTimer()
停止下载截止时间计时器。
[保护]
void FileDownloader::stopDownloadSpeedTimer()
停止下载速度计时器。
[保护]
qint64 FileDownloader::totalBytesDownloadedBeforeResume()
获取下载恢复前下载的总字节数。
[保护]
void FileDownloader::updateBytesDownloadedBeforeResume(qint64 bytes)
更新下载恢复前的字节数。
[保护]
void FileDownloader::updateTotalBytesDownloadedBeforeResume()
更新下载恢复前的总字节数。
©2021(Qt公司有限公司。本文件中包含的文档贡献是各自所有者的版权。本文件提供的文档是根据Free Software Foundation发布的GNU自由文档许可协议版本1.3许可的。Qt公司、Qt及其相应的标志是芬兰和其他世界上Qt公司的商标。所有其他商标均为各自所有者的财产。