Libkdav2

davitem.cpp
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 #include "davitem.h"
20 
21 #include "davurl.h"
22 
23 using namespace KDAV2;
24 
25 class DavItemPrivate
26 {
27 public:
28  DavItemPrivate(DavItem *qPtr) : q(qPtr) {}
29 
30  void fillFrom(const DavItemPrivate &other);
31 
32  DavItem *q;
33 
34  DavUrl mUrl;
35  QString mContentType;
36  QByteArray mData;
37  QString mEtag;
38 };
39 
40 void DavItemPrivate::fillFrom(const DavItemPrivate& other)
41 {
42  mUrl = other.mUrl;
43  mContentType = other.mContentType;
44  mData = other.mData;
45  mEtag = other.mEtag;
46 }
47 
48 
50  : d(std::unique_ptr<DavItemPrivate>(new DavItemPrivate(this)))
51 {
52 }
53 
54 DavItem::DavItem(const DavUrl &url, const QString &contentType, const QByteArray &data, const QString &etag)
55  : d(std::unique_ptr<DavItemPrivate>(new DavItemPrivate(this)))
56 {
57  d->mUrl = url;
58  d->mContentType = contentType;
59  d->mData = data;
60  d->mEtag = etag;
61 }
62 
63 DavItem::DavItem(const DavItem &other)
64  : d(std::unique_ptr<DavItemPrivate>(new DavItemPrivate(this)))
65 {
66  d->fillFrom(*other.d.get());
67 }
68 
69 DavItem &DavItem::operator=(const DavItem &other)
70 {
71  d->fillFrom(*other.d.get());
72  return *this;
73 }
74 
75 DavItem::~DavItem()
76 {
77 }
78 
79 void DavItem::setUrl(const DavUrl &url)
80 {
81  d->mUrl = url;
82 }
83 
85 {
86  return d->mUrl;
87 }
88 
89 void DavItem::setContentType(const QString &contentType)
90 {
91  d->mContentType = contentType;
92 }
93 
95 {
96  return d->mContentType;
97 }
98 
99 void DavItem::setData(const QByteArray &data)
100 {
101  d->mData = data;
102 }
103 
105 {
106  return d->mData;
107 }
108 
109 void DavItem::setEtag(const QString &etag)
110 {
111  d->mEtag = etag;
112 }
113 
115 {
116  return d->mEtag;
117 }
118 
119 QDataStream &KDAV2::operator<<(QDataStream &stream, const DavItem &item)
120 {
121  stream << item.url();
122  stream << item.contentType();
123  stream << item.data();
124  stream << item.etag();
125 
126  return stream;
127 }
128 
129 QDataStream &KDAV2::operator>>(QDataStream &stream, DavItem &item)
130 {
131  QString contentType, etag;
132  DavUrl url;
133  QByteArray data;
134 
135  stream >> url;
136  stream >> contentType;
137  stream >> data;
138  stream >> etag;
139 
140  item = DavItem(url, contentType, data, etag);
141 
142  return stream;
143 }
A helper class to combine url and protocol of a DAV url.
Definition: davurl.h:35
void setEtag(const QString &etag)
Sets the etag of the item.
Definition: davitem.cpp:109
void setUrl(const DavUrl &url)
Sets the url that identifies the item.
Definition: davitem.cpp:79
DavUrl url() const
Returns the url that identifies the item.
Definition: davitem.cpp:84
void setContentType(const QString &type)
Sets the content type of the item.
Definition: davitem.cpp:89
A helper class to store information about DAV resources.
Definition: davitem.h:51
QByteArray data() const
Returns the raw content data of the item.
Definition: davitem.cpp:104
QString etag() const
Returns the etag of the item.
Definition: davitem.cpp:114
DavItem()
Creates an empty DAV item.
Definition: davitem.cpp:49
void setData(const QByteArray &data)
Sets the raw content data of the item.
Definition: davitem.cpp:99
QString contentType() const
Returns the content type of the item.
Definition: davitem.cpp:94
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Mon Aug 15 2022 04:07:29 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.