Buteo Synchronization Framework
TargetResults.h
1/*
2 * This file is part of buteo-syncfw package
3 *
4 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
5 *
6 * Contact: Sateesh Kavuri <sateesh.kavuri@nokia.com>
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * version 2.1 as published by the Free Software Foundation.
11 *
12 * This library is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA
21 *
22 */
23#ifndef TARGETRESULTS_H
24#define TARGETRESULTS_H
25
26#include <QString>
27#include <QList>
28#include <QObject>
29
30class QDomDocument;
31class QDomElement;
32
33namespace Buteo {
34
35class TargetResultsPrivate;
36
39{
40 Q_GADGET
41 Q_PROPERTY(unsigned added MEMBER added)
42 Q_PROPERTY(unsigned deleted MEMBER deleted)
43 Q_PROPERTY(unsigned modified MEMBER modified)
44
45public:
47 unsigned added;
48
50 unsigned deleted;
51
53 unsigned modified;
54
57 : added(0), deleted(0), modified(0)
58 {}
59
61 ItemCounts(unsigned aAdded, unsigned aDeleted, unsigned aModified)
62 : added(aAdded), deleted(aDeleted), modified(aModified)
63 {}
64};
65
71class TargetResults
72{
73 Q_GADGET
74 Q_PROPERTY(QString target READ targetName)
75 Q_PROPERTY(Buteo::ItemCounts local READ localItems)
76 Q_PROPERTY(Buteo::ItemCounts remote READ remoteItems)
77 Q_PROPERTY(QStringList localAdditions READ localAdditions)
78 Q_PROPERTY(QStringList localDeletions READ localDeletions)
79 Q_PROPERTY(QStringList localModifications READ localModifications)
80 Q_PROPERTY(QStringList localFailures READ localFailures)
81 Q_PROPERTY(QStringList remoteAdditions READ remoteAdditions)
82 Q_PROPERTY(QStringList remoteDeletions READ remoteDeletions)
83 Q_PROPERTY(QStringList remoteModifications READ remoteModifications)
84 Q_PROPERTY(QStringList remoteFailures READ remoteFailures)
85
86public:
87 enum ItemOperation {
88 ITEM_ADDED,
89 ITEM_DELETED,
90 ITEM_MODIFIED
91 };
92
93 enum ItemOperationStatus {
94 ITEM_OPERATION_SUCCEEDED,
95 ITEM_OPERATION_FAILED
96 };
97
98 TargetResults();
99
104 TargetResults(const TargetResults &aSource);
105
112 TargetResults(const QString &aTargetName, ItemCounts aLocalItems = ItemCounts(),
113 ItemCounts aRemoteItems = ItemCounts());
114
119 explicit TargetResults(const QDomElement &aRoot);
120
124
129 TargetResults &operator=(const TargetResults &aRhs);
130
138 QDomElement toXml(QDomDocument &aDoc) const;
139
144 QString targetName() const;
145
150 ItemCounts localItems() const;
151
156 ItemCounts remoteItems() const;
157
170 void addLocalDetails(const QString &aUid,
171 ItemOperation aOperation,
172 ItemOperationStatus aStatus = ITEM_OPERATION_SUCCEEDED,
173 const QString &aMessage = QString());
174
187 void addRemoteDetails(const QString &aUid,
188 ItemOperation aOperation,
189 ItemOperationStatus aStatus = ITEM_OPERATION_SUCCEEDED,
190 const QString &aMessage = QString());
191
201 QList<QString> localDetails(ItemOperation aOperation,
202 ItemOperationStatus aStatus) const;
203
209 Q_INVOKABLE QString localMessage(const QString &aUid) const;
210
220 QList<QString> remoteDetails(ItemOperation aOperation,
221 ItemOperationStatus aStatus) const;
222
228 Q_INVOKABLE QString remoteMessage(const QString &aUid) const;
229
230private:
231 QStringList localAdditions() const { return localDetails(ITEM_ADDED, ITEM_OPERATION_SUCCEEDED); }
232 QStringList localDeletions() const { return localDetails(ITEM_DELETED, ITEM_OPERATION_SUCCEEDED); }
233 QStringList localModifications() const { return localDetails(ITEM_MODIFIED, ITEM_OPERATION_SUCCEEDED); }
234 QStringList localFailures() const {
235 return localDetails(ITEM_ADDED, ITEM_OPERATION_FAILED)
236 + localDetails(ITEM_MODIFIED, ITEM_OPERATION_FAILED)
237 + localDetails(ITEM_DELETED, ITEM_OPERATION_FAILED);
238 }
239
240 QStringList remoteAdditions() const { return remoteDetails(ITEM_ADDED, ITEM_OPERATION_SUCCEEDED); }
241 QStringList remoteDeletions() const { return remoteDetails(ITEM_DELETED, ITEM_OPERATION_SUCCEEDED); }
242 QStringList remoteModifications() const { return remoteDetails(ITEM_MODIFIED, ITEM_OPERATION_SUCCEEDED); }
243 QStringList remoteFailures() const
244 {
245 return remoteDetails(ITEM_ADDED, ITEM_OPERATION_FAILED)
246 + remoteDetails(ITEM_MODIFIED, ITEM_OPERATION_FAILED)
247 + remoteDetails(ITEM_DELETED, ITEM_OPERATION_FAILED);
248 }
249
250 TargetResultsPrivate *d_ptr;
251};
252
253}
254
255Q_DECLARE_METATYPE(Buteo::ItemCounts)
256Q_DECLARE_METATYPE(Buteo::TargetResults)
257
258#endif // TARGETRESULTS_H
Sync results for one target.
Definition TargetResults.h:72
TargetResults & operator=(const TargetResults &aRhs)
Assignment operator.
Definition TargetResults.cpp:197
ItemCounts remoteItems() const
Gets the counts of items added, deleted and modified at remote.
Definition TargetResults.cpp:255
void addRemoteDetails(const QString &aUid, ItemOperation aOperation, ItemOperationStatus aStatus=ITEM_OPERATION_SUCCEEDED, const QString &aMessage=QString())
Add some details on the remote changes done during the sync process.
Definition TargetResults.cpp:288
~TargetResults()
Destructor.
Definition TargetResults.cpp:191
QList< QString > localDetails(ItemOperation aOperation, ItemOperationStatus aStatus) const
Gets the details, if any for changes done local during a sync process.
Definition TargetResults.cpp:316
QDomElement toXml(QDomDocument &aDoc) const
Exports the target results to XML.
Definition TargetResults.cpp:207
void addLocalDetails(const QString &aUid, ItemOperation aOperation, ItemOperationStatus aStatus=ITEM_OPERATION_SUCCEEDED, const QString &aMessage=QString())
Add some details on the local changes done during the sync process.
Definition TargetResults.cpp:260
Q_INVOKABLE QString localMessage(const QString &aUid) const
Gets a possible message related to the a given item.
Definition TargetResults.cpp:331
QString targetName() const
Gets the target name.
Definition TargetResults.cpp:245
QList< QString > remoteDetails(ItemOperation aOperation, ItemOperationStatus aStatus) const
Gets the details, if any for changes done remote during a sync process.
Definition TargetResults.cpp:344
Q_INVOKABLE QString remoteMessage(const QString &aUid) const
Gets a possible message related to the a given item.
Definition TargetResults.cpp:358
ItemCounts localItems() const
Gets the counts of items added, deleted and modified locally.
Definition TargetResults.cpp:250
Definition SyncBackupAdaptor.h:40
Container for number of items added, deleted and modified.
Definition TargetResults.h:39
unsigned modified
No. of Items modified.
Definition TargetResults.h:43
ItemCounts()
Default Constructor.
Definition TargetResults.h:56
ItemCounts(unsigned aAdded, unsigned aDeleted, unsigned aModified)
Constructor with 3 parameters.
Definition TargetResults.h:61
unsigned added
No. of Items added.
Definition TargetResults.h:41
unsigned deleted
No. of Items deleted.
Definition TargetResults.h:42