libschauer  0.0.1
Qt based library to access the Docker HTTP API.
Properties | Public Member Functions | Signals | Protected Member Functions | List of all members
Schauer::Job Class Reference

Base class for all API jobs. More...

#include <job.h>

Inheritance diagram for Schauer::Job:
Inheritance graph
[legend]

Properties

Schauer::AbstractConfiguration configuration
 Pointer to an object providing configuration data. More...
 
- Properties inherited from Schauer::SJob
Schauer::SJob::Capabilities capabilities
 Capabilities of this job. More...
 
int error
 Error code. More...
 
QString errorString
 Human-readable error message. More...
 
QString errorText
 Additional error text. More...
 
ulong percent
 Overall progress of the job. More...
 

Public Member Functions

 ~Job () override
 Destroys the Job object. More...
 
AbstractConfigurationconfiguration () const
 Getter function for the configuraion property. More...
 
QString errorString () const override
 Returns a human readable and translated error string. More...
 
QJsonDocument replyData () const
 Returns the API reply data after successful request. More...
 
void setConfiguration (AbstractConfiguration *configuration)
 Setter function for the configuration property. More...
 
- Public Member Functions inherited from Schauer::SJob
 SJob (QObject *parent=nullptr)
 Stores a combination of Capability values. More...
 
 ~SJob () override
 Desconstructs the SJob obejct. More...
 
Capabilities capabilities () const
 Returns the capabilities of this job. More...
 
int error () const
 Returns the error code, if there has been an error. More...
 
QString errorText () const
 Returns the error text if there has been an error. More...
 
bool exec ()
 Executes the job synchronously. More...
 
bool isAutoDelete () const
 Returns true if this job automatically deletes itself once the job is finished. More...
 
bool isFinishedNotificationHidden () const
 
bool isSuspended () const
 Returns true if the job was suspended with the suspend() call. More...
 
unsigned long percent () const
 Returns the overall progress of this job. More...
 
Q_SCRIPTABLE qulonglong processedAmount (Unit unit) const
 Returns the processed amount of a given unit for this job. More...
 
void setAutoDelete (bool autodelete)
 Sets the auto-delete property of the job. More...
 
void setFinishedNotificationHidden (bool hide=true)
 
virtual Q_SCRIPTABLE void start ()=0
 Starts the job asynchronously. More...
 
Q_SCRIPTABLE qulonglong totalAmount (Unit unit) const
 Returns the total amount of a given unit for this job. More...
 

Signals

void configurationChanged (Schauer::AbstractConfiguration *configuration)
 Notifier signal for the configuration property. More...
 
void failed (int errorCode, const QString &errorString)
 Emitted when the API request has been failed. More...
 
void succeeded (const QJsonDocument &json)
 Emitted when the API request ha been successfully finished. More...
 
- Signals inherited from Schauer::SJob
void description (Schauer::SJob *job, const QString &title, const QPair< QString, QString > &field1=QPair< QString, QString >(), const QPair< QString, QString > &field2=QPair< QString, QString >())
 Emitted to display general description of this job. More...
 
void finished (Schauer::SJob *job)
 Emitted when the job is finished, in any case. More...
 
void infoMessage (Schauer::SJob *job, const QString &plain, const QString &rich=QString())
 Emitted to display state information about this job. More...
 
void percent (Schauer::SJob *job, unsigned long percent)
 Progress signal showing the overall progress of the job This is valid for any kind of job, and allows using a a progress bar very easily. More...
 
void percentChanged (Schauer::SJob *job, unsigned long percent)
 Progress signal showing the overall progress of the job This is valid for any kind of job, and allows using a a progress bar very easily. More...
 
void processedAmount (Schauer::SJob *job, SJob::Unit unit, qulonglong amount)
 Regularly emitted to show the progress of this job by giving the current amount. More...
 
void processedAmountChanged (Schauer::SJob *job, SJob::Unit unit, qulonglong amount)
 Regularly emitted to show the progress of this job by giving the current amount. More...
 
void processedSize (Schauer::SJob *job, qulonglong size)
 Regularly emitted to show the progress of this job (current data size in bytes for transfers, entries listed, etc.). More...
 
void result (Schauer::SJob *job)
 Emitted when the job is finished (except when killed with SJob::Quietly). More...
 
void resumed (Schauer::SJob *job)
 Emitted when the job is resumed. More...
 
void speed (Schauer::SJob *job, unsigned long speed)
 Emitted to display information about the speed of this job. More...
 
void suspended (Schauer::SJob *job)
 Emitted when the job is suspended. More...
 
void totalAmount (Schauer::SJob *job, SJob::Unit unit, qulonglong amount)
 Emitted when we know the amount the job will have to process. More...
 
void totalAmountChanged (Schauer::SJob *job, SJob::Unit unit, qulonglong amount)
 Emitted when we know the amount the job will have to process. More...
 
void totalSize (Schauer::SJob *job, qulonglong size)
 Emitted when we know the size of this job (data size in bytes for transfers, number of entries for listings, etc). More...
 
void warning (Schauer::SJob *job, const QString &plain, const QString &rich=QString())
 Emitted to display a warning about this job. More...
 

Protected Member Functions

 Job (QObject *parent=nullptr)
 Constructs a new Job object with the given parent. More...
 
void sendRequest ()
 Performs basic checks, sets up and sends the request. More...
 
- Protected Member Functions inherited from Schauer::SJob
virtual bool doKill ()
 Aborts this job quietly. More...
 
virtual bool doResume ()
 Resumes this job. More...
 
virtual bool doSuspend ()
 Suspends this job. More...
 
void emitPercent (qulonglong processedAmount, qulonglong totalAmount)
 Utility function for inherited jobs. More...
 
void emitResult ()
 Utility function to emit the result signal, and suicide this job. More...
 
void emitSpeed (unsigned long speed)
 Utility function for inherited jobs. More...
 
bool isFinished () const
 Returns true if the job has been finished and has emitted the finished() signal. More...
 
void setCapabilities (Capabilities capabilities)
 Sets the capabilities for this job. More...
 
void setError (int errorCode)
 Sets the error code. More...
 
void setErrorText (const QString &errorText)
 Sets the error text. More...
 
void setPercent (unsigned long percentage)
 Sets the overall progress of the job. More...
 
void setProcessedAmount (Unit unit, qulonglong amount)
 Sets the processed size. More...
 
void setProgressUnit (Unit unit)
 Sets the unit that will be used internally to calculate the progress percentage. More...
 
void setTotalAmount (Unit unit, qulonglong amount)
 Sets the total size. More...
 

Additional Inherited Members

- Public Types inherited from Schauer::SJob
enum  { NoError = 0, KilledJobError = 1, UserDefinedError = 100 }
 Error codes. More...
 
enum  Capability { NoCapabilities = 0x0000, Killable = 0x0001, Suspendable = 0x0002 }
 Job capabilities. More...
 
enum  Unit { Bytes = 0, Files, Directories, Items }
 Describes the unit used in the methods that handle reporting the job progress info. More...
 
- Public Slots inherited from Schauer::SJob
bool kill (Schauer::SJob::KillVerbosity verbosity=Quietly)
 Aborts this job. More...
 
bool resume ()
 Resumes this job. More...
 
bool suspend ()
 Suspends this job. More...
 

Detailed Description

Base class for all API jobs.

This class is used by all classes that perform API requests. It is not meant to be used by itself. It provides basic properties and functions used by all classes that perform API requests.

Example usages
auto job = new GetVersionJob(this);
connect(job, &Job::result, this, [this](SJob *sjob){
if (sjob->error()) {
handleError(sjob->error(), sjob->errorString());
} else {
Job *job = qobject_cast<Job *>(sjob);
handleResult(job->replyData());
}
});
job->start();

You can also directly use the JSON result with the succeeded() signal.

auto job = new GetVersionJob(this);
connect(job, &Job::succeeded, this, &MyClass:handleJsonResult);
job->start();

Or you can use the synchronous way.

auto job = new GetVersionJob(this);
if (job->exec()) {
handleJsonResult(job->replyData());
} else {
handleError(job->error(), job->errorString());
}

Property Documentation

◆ configuration

AbstractConfiguration * Job::configuration
readwrite

Pointer to an object providing configuration data.

This property holds a pointer to an object of a class derived from AbstractConfiguration that provides configuration information for the API request. It especialls provides the remote host and port. See AbstractConfiguration for more information.

You can also set a global default configuration via Schauer::setDefaultConfiguration() that will be used if no local configuration is available.

Access functions
  • AbstractConfiguration *configuration() const
  • void setConfiguration(AbstractCofiguration *configuration)
Notifier signal

Constructor & Destructor Documentation

◆ ~Job()

Job::~Job ( )
overridedefault

Destroys the Job object.

◆ Job()

Job::Job ( QObject parent = nullptr)
explicitprotected

Constructs a new Job object with the given parent.

Member Function Documentation

◆ configuration()

AbstractConfiguration* Schauer::Job::configuration ( ) const

Getter function for the configuraion property.

See also
setConfiguration(), configurationChanged()

◆ configurationChanged

void Schauer::Job::configurationChanged ( Schauer::AbstractConfiguration configuration)
signal

Notifier signal for the configuration property.

See also
configuration(), setConfiguration()

◆ errorString()

QString Job::errorString ( ) const
overridevirtual

Returns a human readable and translated error string.

If SJob::error() returns not 0, an error occured and the humand readable description can be returned by this function.

Reimplemented from Schauer::SJob.

◆ failed

void Schauer::Job::failed ( int  errorCode,
const QString errorString 
)
signal

Emitted when the API request has been failed.

This signal is triggered together with SJob::finished() and SJob::result() if the API request has been failed. errroCode will be the code of the error occured, errorString will contain a human-readable error message.

See also
error(), errorString()

◆ replyData()

QJsonDocument Job::replyData ( ) const

Returns the API reply data after successful request.

If the API request has been successful and SJob::error() returns 0, this function returns the requested JSON data (if any).

See also
succeeded()

◆ sendRequest()

void Job::sendRequest ( )
protected

Performs basic checks, sets up and sends the request.

This will be called in the reimplementation of BJob::start() by classes derived from Job.

◆ setConfiguration()

void Job::setConfiguration ( AbstractConfiguration configuration)

Setter function for the configuration property.

See also
configuration(), configurationChanged()

◆ succeeded

void Schauer::Job::succeeded ( const QJsonDocument json)
signal

Emitted when the API request ha been successfully finished.

This signal is triggered together with SJob::finished() and SJob::result() if the API request was successful. json will contain the data requested from the remote server.

See also
replyData()

The documentation for this class was generated from the following files: