File indexing completed on 2025-02-09 04:18:51
0001 /* 0002 This file is part of KDE. 0003 0004 SPDX-FileCopyrightText: 2009 Frederik Gladhorn <gladhorn@kde.org> 0005 SPDX-FileCopyrightText: 2011 Laszlo Papp <djszapi@archlinux.us> 0006 0007 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0008 */ 0009 0010 #ifndef ATTICA_ITEMJOB_H 0011 #define ATTICA_ITEMJOB_H 0012 0013 #include "attica_export.h" 0014 #include "deletejob.h" 0015 #include "getjob.h" 0016 #include "postjob.h" 0017 #include "putjob.h" 0018 0019 namespace Attica 0020 { 0021 class Provider; 0022 0023 /** 0024 * @class ItemJob itemjob.h <Attica/ItemJob> 0025 * 0026 * Represents an item get job. 0027 */ 0028 template<class T> 0029 class ATTICA_EXPORT ItemJob : public GetJob 0030 { 0031 public: 0032 T result() const; 0033 0034 private: 0035 ItemJob(PlatformDependent *, const QNetworkRequest &request); 0036 void parse(const QString &xml) override; 0037 T m_item; 0038 friend class Attica::Provider; 0039 }; 0040 0041 /** 0042 * @class ItemDeleteJob itemjob.h <Attica/ItemJob> 0043 * 0044 * Represents an item delete job. 0045 */ 0046 template<class T> 0047 class ATTICA_EXPORT ItemDeleteJob : public DeleteJob 0048 { 0049 public: 0050 T result() const; 0051 0052 private: 0053 ItemDeleteJob(PlatformDependent *, const QNetworkRequest &request); 0054 void parse(const QString &xml) override; 0055 T m_item; 0056 friend class Attica::Provider; 0057 }; 0058 0059 /** 0060 * @class ItemPostJob itemjob.h <Attica/ItemJob> 0061 * 0062 * Represents an item post job. 0063 */ 0064 template<class T> 0065 class ATTICA_EXPORT ItemPostJob : public PostJob 0066 { 0067 public: 0068 T result() const; 0069 0070 private: 0071 ItemPostJob(PlatformDependent *internals, const QNetworkRequest &request, QIODevice *data); 0072 ItemPostJob(PlatformDependent *internals, const QNetworkRequest &request, const StringMap ¶meters = StringMap()); 0073 0074 void parse(const QString &xml) override; 0075 T m_item; 0076 friend class Attica::Provider; 0077 }; 0078 0079 /** 0080 * @class ItemPutJob itemjob.h <Attica/ItemJob> 0081 * 0082 * Represents an item put job. 0083 */ 0084 template<class T> 0085 class ATTICA_EXPORT ItemPutJob : public PutJob 0086 { 0087 public: 0088 T result() const; 0089 0090 private: 0091 ItemPutJob(PlatformDependent *internals, const QNetworkRequest &request, QIODevice *data); 0092 ItemPutJob(PlatformDependent *internals, const QNetworkRequest &request, const StringMap ¶meters = StringMap()); 0093 0094 void parse(const QString &xml) override; 0095 T m_item; 0096 friend class Attica::Provider; 0097 }; 0098 0099 } 0100 0101 #endif