File indexing completed on 2024-04-21 03:53:52

0001 /*
0002     SPDX-FileCopyrightText: 2016 Sandro Knauß <sknauss@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDAV_DAVERROR_H
0008 #define KDAV_DAVERROR_H
0009 
0010 #include "kdav_export.h"
0011 
0012 #include <KJob>
0013 
0014 #include <QSharedDataPointer>
0015 #include <QString>
0016 
0017 namespace KDAV
0018 {
0019 /** DAV operation error codes. */
0020 enum ErrorNumber {
0021     NO_ERR = 0,
0022     ERR_PROBLEM_WITH_REQUEST = KJob::UserDefinedError + 200, // it would be better to request KIO about uts UserDefinedError space.
0023     ERR_NO_MULTIGET,
0024     ERR_SERVER_UNRECOVERABLE,
0025     ERR_COLLECTIONDELETE = ERR_PROBLEM_WITH_REQUEST + 10,
0026     ERR_COLLECTIONFETCH = ERR_PROBLEM_WITH_REQUEST + 20,
0027     ERR_COLLECTIONFETCH_XQUERY_SETFOCUS,
0028     ERR_COLLECTIONFETCH_XQUERY_INVALID,
0029     ERR_COLLECTIONMODIFY = ERR_PROBLEM_WITH_REQUEST + 30,
0030     ERR_COLLECTIONMODIFY_NO_PROPERITES,
0031     ERR_COLLECTIONMODIFY_RESPONSE,
0032     ERR_ITEMCREATE = ERR_PROBLEM_WITH_REQUEST + 100,
0033     ERR_ITEMDELETE = ERR_PROBLEM_WITH_REQUEST + 110,
0034     ERR_ITEMMODIFY = ERR_PROBLEM_WITH_REQUEST + 120,
0035     ERR_ITEMLIST = ERR_PROBLEM_WITH_REQUEST + 130,
0036     ERR_ITEMLIST_NOMIMETYPE,
0037 };
0038 
0039 class ErrorPrivate;
0040 
0041 /**
0042  * @class Error daverror.h <KDAV/DavError>
0043  *
0044  * DAV operation error.
0045  */
0046 class KDAV_EXPORT Error
0047 {
0048 public:
0049     explicit Error();
0050     explicit Error(ErrorNumber errNo, int responseCode, const QString &errorText, int jobErrorCode);
0051     Error(const Error &);
0052     Error(Error &&);
0053     ~Error();
0054     Error &operator=(const Error &);
0055     Error &operator=(Error &&);
0056 
0057     Q_REQUIRED_RESULT ErrorNumber errorNumber() const;
0058     Q_REQUIRED_RESULT int responseCode() const;
0059     Q_REQUIRED_RESULT QString internalErrorText() const;
0060     Q_REQUIRED_RESULT int jobErrorCode() const;
0061     Q_REQUIRED_RESULT QString translatedJobError() const;
0062     Q_REQUIRED_RESULT QString errorText() const;
0063 
0064 private:
0065     QSharedDataPointer<ErrorPrivate> d;
0066 };
0067 }
0068 
0069 #endif