20 #include <ubuntu/download_manager/metatypes.h>
24 const QString DBUS_ERROR_STRING =
"DBusError: %1 - %2";
25 const QString AUTH_ERROR_STRING =
"AuthError: %1 - %2";
26 const QString HTTP_ERROR_STRING =
"HttpError: %1 - %2";
27 const QString NETWORK_ERROR_STRING =
"NetworkError: %1 - %2";
28 const QString PROCESS_ERROR_STRING =
"ProcessError: %1 - %2\nExit code: %3\nStdout: %4\nStderr:%5";
33 namespace DownloadManager {
40 Q_DECLARE_PUBLIC(Error)
43 ErrorPrivate(Error::Type type, Error* parent)
52 QString errorString() {
59 return "NetworkError";
61 return "ProcessError";
72 class DBusErrorPrivate {
73 Q_DECLARE_PUBLIC(DBusError)
76 DBusErrorPrivate(QDBusError err, DBusError* parent)
81 inline QString message() {
82 return _err.message();
85 inline QString name() {
89 inline QString errorString() {
90 return DBUS_ERROR_STRING.arg(_err.name(), _err.message());
98 class AuthErrorPrivate {
99 Q_DECLARE_PUBLIC(AuthError)
102 AuthErrorPrivate(Transfers::Errors::AuthErrorStruct err, AuthError* parent)
108 switch(_err.getType()) {
109 case Transfers::Errors::AuthErrorStruct::Proxy:
116 inline QString getTypeString() {
117 switch(_err.getType()) {
118 case Transfers::Errors::AuthErrorStruct::Proxy:
125 inline QString phrase() {
126 return _err.getPhrase();
129 inline QString errorString() {
130 return AUTH_ERROR_STRING.arg(getTypeString(), _err.getPhrase());
134 Transfers::Errors::AuthErrorStruct _err;
138 class HttpErrorPrivate {
139 Q_DECLARE_PUBLIC(HttpError)
142 HttpErrorPrivate(Transfers::Errors::HttpErrorStruct err, HttpError* parent)
148 return _err.getCode();
151 inline QString phrase() {
152 return _err.getPhrase();
155 inline QString errorString() {
156 return HTTP_ERROR_STRING.arg(QString::number(_err.getCode()),
161 Transfers::Errors::HttpErrorStruct _err;
165 class NetworkErrorPrivate {
166 Q_DECLARE_PUBLIC(NetworkError)
169 NetworkErrorPrivate(Transfers::Errors::NetworkErrorStruct err,
170 NetworkError* parent)
180 inline QString phrase() {
181 return _err.getPhrase();
184 inline QString errorString() {
185 return NETWORK_ERROR_STRING.arg(QString::number(_err.getCode()),
190 Transfers::Errors::NetworkErrorStruct _err;
194 class ProcessErrorPrivate {
195 Q_DECLARE_PUBLIC(ProcessError)
198 ProcessErrorPrivate(Transfers::Errors::ProcessErrorStruct err,
199 ProcessError* parent)
204 QProcess::ProcessError code() {
205 auto code =
static_cast<QProcess::ProcessError
>(_err.getCode());
210 return _err.getPhrase();
213 inline int exitCode() {
214 return _err.getExitCode();
217 inline QString standardOut() {
218 return _err.getStandardOutput();
221 inline QString standardError() {
222 return _err.getStandardError();
225 inline QString errorString() {
226 return PROCESS_ERROR_STRING.arg(QString::number(_err.getCode()),
227 _err.getPhrase(), QString::number(_err.getExitCode()),
228 _err.getStandardOutput(), _err.getStandardError());
232 Transfers::Errors::ProcessErrorStruct _err;
242 d_ptr(new ErrorPrivate(type, this)) {
258 return d->errorString();
263 d_ptr(new DBusErrorPrivate(err, this)) {
266 DBusError::~DBusError() {
271 DBusError::message() {
283 DBusError::errorString() {
285 return d->errorString();
290 d_ptr(new AuthErrorPrivate(err, this)) {
312 return d->errorString();
317 d_ptr(new HttpErrorPrivate(err, this)) {
339 return d->errorString();
345 d_ptr(new NetworkErrorPrivate(err, this)) {
367 return d->errorString();
373 d_ptr(new ProcessErrorPrivate(err, this)) {
386 QProcess::ProcessError
395 return d->exitCode();
401 return d->standardOut();
407 return d->standardError();
413 return d->errorString();
The Error class is the base class that represents an error in the download manager API...
QString errorString() override
QString errorString() override
QString errorString() override
QProcess::ProcessError code()
ProcessError(Transfers::Errors::ProcessErrorStruct err, QObject *parent)
NetworkError(Transfers::Errors::NetworkErrorStruct err, QObject *parent)
DBusError(QDBusError err, QObject *parent=0)
HttpError(Transfers::Errors::HttpErrorStruct err, QObject *parent)
AuthError(Transfers::Errors::AuthErrorStruct err, QObject *parent)
Error(Type type, QObject *parent=0)
The NetworkError represents an error that occurred during the download request.
virtual QString errorString()
The HttpError represents an error that occurred during the download request.
QString errorString() override
The ProcessError represents an error that occurred during the post processing of a downloaded file...
The AuthError represents an authentication error that occurred during the request of the download...