Libkdav2

davitem.h
1 /*
2  Copyright (c) 2009 GrĂ©gory Oestreicher <[email protected]>
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18 
19 #ifndef KDAV2_DAVITEM_H
20 #define KDAV2_DAVITEM_H
21 
22 #include "kpimkdav2_export.h"
23 
24 #include <memory>
25 
26 #include <QtCore/QByteArray>
27 #include <QtCore/QDataStream>
28 #include <QtCore/QString>
29 #include <QtCore/QVector>
30 
31 
32 class DavItemPrivate;
33 
34 namespace KDAV2
35 {
36  class DavUrl;
37 }
38 
39 namespace KDAV2
40 {
41 
42 /**
43  * @short A helper class to store information about DAV resources.
44  *
45  * This class is used as container to transfer information about DAV
46  * resources between the Akonadi resource and the DAV jobs.
47  *
48  * @note While the DAV RFC names them DAV resource we call them items
49  * to comply to Akonadi terminology.
50  */
51 class KPIMKDAV2_EXPORT DavItem
52 {
53 public:
54  /**
55  * Defines a list of DAV item objects.
56  */
58 
59  /**
60  * Creates an empty DAV item.
61  */
62  DavItem();
63 
64  /**
65  * Creates a new DAV item.
66  *
67  * @param url The url that identifies the item.
68  * @param contentType The content type of the item.
69  * @param data The actual raw content data of the item.
70  * @param etag The etag of the item.
71  */
72  DavItem(const DavUrl &url, const QString &contentType, const QByteArray &data, const QString &etag);
73 
74  DavItem(const DavItem &other);
75  DavItem &operator=(const DavItem &other);
76 
77  ~DavItem();
78 
79  /**
80  * Sets the @p url that identifies the item.
81  */
82  void setUrl(const DavUrl &url);
83 
84  /**
85  * Returns the url that identifies the item.
86  */
87  DavUrl url() const;
88 
89  /**
90  * Sets the content @p type of the item.
91  */
92  void setContentType(const QString &type);
93 
94  /**
95  * Returns the content type of the item.
96  */
97  QString contentType() const;
98 
99  /**
100  * Sets the raw content @p data of the item.
101  */
102  void setData(const QByteArray &data);
103 
104  /**
105  * Returns the raw content data of the item.
106  */
107  QByteArray data() const;
108 
109  /**
110  * Sets the @p etag of the item.
111  */
112  void setEtag(const QString &etag);
113 
114  /**
115  * Returns the etag of the item.
116  */
117  QString etag() const;
118 
119 private:
120  std::unique_ptr<DavItemPrivate> d;
121 };
122 
123 KPIMKDAV2_EXPORT QDataStream &operator<<(QDataStream &out, const DavItem &item);
124 KPIMKDAV2_EXPORT QDataStream &operator>>(QDataStream &in, DavItem &item);
125 
126 }
127 
128 Q_DECLARE_TYPEINFO(KDAV2::DavItem, Q_MOVABLE_TYPE);
129 
130 #endif
QDataStream & operator>>(QDataStream &in, KDateTime::Spec &spec)
A helper class to combine url and protocol of a DAV url.
Definition: davurl.h:35
QVector< DavItem > List
Defines a list of DAV item objects.
Definition: davitem.h:57
A helper class to store information about DAV resources.
Definition: davitem.h:51
QDataStream & operator<<(QDataStream &out, const KDateTime::Spec &spec)
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Thu Jan 27 2022 23:10:33 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.