|
| DownloadFileJob (QString serverName, QString mediaId, const QString &localFilename={}) |
|
| DownloadFileJob (QString serverName, QString mediaId, const EncryptedFileMetadata &file, const QString &localFilename={}) |
|
QString | targetFileName () const |
|
| BaseJob (HttpVerb verb, const QString &name, QByteArray endpoint, bool needsToken=true) |
|
| BaseJob (HttpVerb verb, const QString &name, QByteArray endpoint, const QUrlQuery &query, RequestData &&data={}, bool needsToken=true) |
|
QUrl | requestUrl () const |
|
bool | isBackground () const |
|
Status | status () const |
| Current status of the job.
|
|
QString | statusCaption () const |
| Short human-friendly message on the job status.
|
|
QByteArray | rawData (int bytesAtMost) const |
| Get first bytes of the raw response body as received from the server.
|
|
const QByteArray & | rawData () const |
| Access the whole response body as received from the server.
|
|
QString | rawDataSample (int bytesAtMost=65535) const |
| Get UI-friendly sample of raw data.
|
|
QJsonObject | jsonData () const |
| Get the response body as a JSON object.
|
|
QJsonArray | jsonItems () const |
| Get the response body as a JSON array.
|
|
template<typename T > |
T | loadFromJson (auto keyName, T &&defaultValue={}) const |
| Load the property from the JSON response assuming a given C++ type.
|
|
template<typename T > |
T | takeFromJson (auto key, T &&defaultValue={}) |
| Load the property from the JSON response and delete it from JSON.
|
|
int | error () const |
| Error (more generally, status) code.
|
|
virtual QString | errorString () const |
| Error-specific message, as returned by the server.
|
|
QUrl | errorUrl () const |
| A URL to help/clarify the error, if provided by the server.
|
|
int | maxRetries () const |
|
void | setMaxRetries (int newMaxRetries) |
|
JobBackoffStrategy | currentBackoffStrategy () const |
| Get the back-off strategy for this job instance.
|
|
void | setBackoffStrategy (JobBackoffStrategy strategy) |
| Set the back-off strategy for this specific job instance.
|
|
JobBackoffStrategy::duration_t | getCurrentTimeout () const |
|
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | getCurrentTimeoutMs () const |
|
JobBackoffStrategy::duration_t | getNextRetryInterval () const |
|
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | getNextRetryMs () const |
|
std::chrono::milliseconds | timeToRetry () const |
|
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | millisToRetry () const |
|
|
enum | StatusCode {
Success = 0
, NoError = Success
, Pending = 1
, WarningLevel = 20
,
UnexpectedResponseType = 21
, UnexpectedResponseTypeWarning = UnexpectedResponseType
, Unprepared = 25
, Abandoned = 50
,
ErrorLevel = 100
, NetworkError = 101
, Timeout
, Unauthorised
,
ContentAccessError
, NotFound
, IncorrectRequest
, IncorrectResponse
,
TooManyRequests
, RateLimited = TooManyRequests
, RequestNotImplemented
, UnsupportedRoomVersion
,
NetworkAuthRequired
, UserConsentRequired
, CannotLeaveRoom
, UserDeactivated
,
FileError
, AccountLocked
, UserDefinedError = 256
} |
| Job status codes. More...
|
|
using | duration_ms_t = std::chrono::milliseconds::rep |
|
void | initiate (Quotient::ConnectionData *connData, bool inBackground) |
|
void | abandon () |
| Abandon the result of this job, arrived or unarrived.
|
|
void | aboutToSendRequest (QNetworkRequest *req) |
| The job is about to send a network request.
|
|
void | sentRequest () |
| The job has sent a network request.
|
|
void | statusChanged (Quotient::BaseJob::Status newStatus) |
| The job has changed its status.
|
|
void | retryScheduled (int nextRetryNumber, Quotient::BaseJob::duration_ms_t inMilliseconds) |
| A retry of the network request is scheduled after the previous request failed.
|
|
void | rateLimited () |
| The job has been rate-limited.
|
|
void | finished (Quotient::BaseJob *job) |
| The job has finished - either with a result, or abandoned.
|
|
void | result (Quotient::BaseJob *job) |
| The job has finished with a result, successful or unsuccessful.
|
|
void | success (Quotient::BaseJob *) |
| The job has finished with a successful result.
|
|
void | failure (Quotient::BaseJob *) |
| The job has finished with a failure result Emitted together with result() when the job resulted in an error. Mutually exclusive with success(): after result() is emitted, exactly one of success() and failure() will be emitted next. Will not be emitted in case of abandon()ing.
|
|
void | downloadProgress (qint64 bytesReceived, qint64 bytesTotal) |
|
void | uploadProgress (qint64 bytesSent, qint64 bytesTotal) |
|
using | headers_t = QHash< QByteArray, QByteArray > |
|
void | timeout () |
|
QByteArray | apiEndpoint () const |
|
void | setApiEndpoint (QByteArray apiEndpoint) |
|
const headers_t & | requestHeaders () const |
|
void | setRequestHeader (const headers_t::key_type &headerName, const headers_t::mapped_type &headerValue) |
|
void | setRequestHeaders (const headers_t &headers) |
|
QUrlQuery | query () const |
|
void | setRequestQuery (const QUrlQuery &query) |
|
const RequestData & | requestData () const |
|
void | setRequestData (RequestData &&data) |
|
const QByteArrayList & | expectedContentTypes () const |
|
void | addExpectedContentType (const QByteArray &contentType) |
|
void | setExpectedContentTypes (const QByteArrayList &contentTypes) |
|
QStringList | expectedKeys () const |
|
void | addExpectedKey (QString key) |
|
void | setExpectedKeys (const QStringList &keys) |
|
const QNetworkReply * | reply () const |
|
QNetworkReply * | reply () |
|
virtual Status | checkReply (const QNetworkReply *reply) const |
| Check the pending or received reply for upfront issues.
|
|
virtual Status | prepareError (Status currentStatus) |
| Process details of the error.
|
|
QJsonValue | takeValueFromJson (QAnyStringView key) |
| Retrieve a value for one specific key and delete it from the JSON response object.
|
|
void | setStatus (Status s) |
|
void | setStatus (int code, QString message) |
|
void | forceResult (QJsonDocument resultDoc, Status s={ Success }) |
| Force completion of the job for sake of testing.
|
|
void | setLoggingCategory (QMessageLogger::CategoryFunction lcf) |
| Set the logging category for the given job instance.
|
|
| ~BaseJob () override |
|
static QUrl | makeRequestUrl (const HomeserverData &hsData, const QByteArray &encodedPath, const QUrlQuery &query={}) |
| Construct a URL out of baseUrl, path and query.
|
|
QUrl | requestUrl |
|
int | maxRetries |
|
int | statusCode |
|
Definition at line 11 of file downloadfilejob.h.