Buteo Synchronization Framework
SyncProfile.h
1/*
2 * This file is part of buteo-syncfw package
3 *
4 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
5 * Copyright (C) 2014-2019 Jolla Ltd.
6 * Copyright (C) 2020 Open Mobile Platform LLC.
7 *
8 * Contact: Sateesh Kavuri <sateesh.kavuri@nokia.com>
9 *
10 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public License
12 * version 2.1 as published by the Free Software Foundation.
13 *
14 * This library is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
22 * 02110-1301 USA
23 *
24 */
25
26#ifndef SYNCPROFILE_H
27#define SYNCPROFILE_H
28
29#include <QtCore>
30#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
31#include <QNetworkInformation>
32#endif
33
34#include "Profile.h"
35#include "SyncLog.h"
36#include "SyncSchedule.h"
37#include "SyncCommonDefs.h"
38
39namespace Buteo {
40
41class SyncProfilePrivate;
42
53class SyncProfile : public Profile
54{
55public:
65
77
92
104
119
124 explicit SyncProfile(const QString &aName);
125
130 explicit SyncProfile(const QDomElement &aRoot);
131
136 SyncProfile(const SyncProfile &aSource);
137
139 ~SyncProfile();
140
145 virtual SyncProfile *clone() const;
146
147
150 virtual void setName(const QString &aName);
151
154 virtual void setName(const QStringList &aKeys);
155
156
158 virtual QDomElement toXml(QDomDocument &aDoc, bool aLocalOnly = true) const;
159
165 virtual bool syncExternallyEnabled() const;
166
171 virtual bool rushEnabled() const;
172
180 virtual bool syncExternallyDuringRush() const;
181
186 virtual bool inExternalSyncRushPeriod(QDateTime aDateTime = QDateTime::currentDateTime()) const;
187
192 QDateTime lastSyncTime() const;
193
199 QDateTime lastSuccessfulSyncTime() const;
200
206 virtual QDateTime nextSyncTime(QDateTime aDateTime = QDateTime::currentDateTime()) const;
207
214 QDateTime nextRushSwitchTime(const QDateTime &aFromTime) const;
215
220 const SyncResults *lastResults() const;
221
226 SyncLog *log() const;
227
234 void setLog(SyncLog *aLog);
235
241 void addResults(const SyncResults &aResults);
242
247 SyncType syncType() const;
248
253 void setSyncType(SyncType aType);
254
259 QStringList storageBackendNames() const;
260
266
271 void setSyncSchedule(const SyncSchedule &aSchedule);
272
277#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
279#else
281#endif
288#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
290#else
292#endif
297 //const Profile *serviceProfile() const;
298
303 //Profile *serviceProfile();
304
309 const Profile *clientProfile() const;
310
316
321 const Profile *serverProfile() const;
322
328
334
340
346
352
357 void setSyncDirection(SyncDirection aDirection);
358
364
370
375 QString serviceName() const;
376
384 quint32 syncOnChangeAfter() const;
385
390 bool isSOCProfile() const;
391
392 bool hasRetries() const;
393 QList<quint32> retryIntervals() const;
394
403
404private:
405 SyncProfile &operator=(const SyncProfile &aRhs);
406
407 SyncProfilePrivate *d_ptr;
408};
409
410}
411
412#endif // SYNCPROFILE_H
This class represents a single profile, a collection of settings or data releated to some entity.
Definition Profile.h:53
History of completed synchronization sessions and their results.
Definition SyncLog.h:45
A top level synchronization profile.
Definition SyncProfile.h:54
virtual QDomElement toXml(QDomDocument &aDoc, bool aLocalOnly=true) const
Definition SyncProfile.cpp:165
SyncLog * log() const
Gets the synchronization log associated with this profile.
Definition SyncProfile.cpp:287
SyncDirection syncDirection() const
Gets sync direction (two way, to destination, from destination).
Definition SyncProfile.cpp:532
void setInternetConnectionTypes(const QList< QNetworkInformation::TransportMedium > &aTypes)
Sets the internet connection types on which this profile can be synced.
Definition SyncProfile.cpp:368
QStringList storageBackendNames() const
Gets the names of storage backends used by this profile.
Definition SyncProfile.cpp:384
const Profile * serverProfile() const
Get the first server sub-profile.
Definition SyncProfile.cpp:465
QList< const Profile * > storageProfiles() const
Get the storage sub-profiles.
Definition SyncProfile.cpp:489
void setLog(SyncLog *aLog)
Sets the synchronization log for this profile.
Definition SyncProfile.cpp:292
void setSyncType(SyncType aType)
Sets the sync type of this profile (manual/scheduled).
Definition SyncProfile.cpp:315
quint32 syncOnChangeAfter() const
If a profiles is interested in SOC, this gets the the SOC after time from that profile....
Definition SyncProfile.cpp:566
DestinationType destinationType() const
Gets sync destination type (device or online).
Definition SyncProfile.cpp:515
virtual bool syncExternallyDuringRush() const
Checks if external rush schedule is to be obeyed.
Definition SyncProfile.cpp:221
virtual bool syncExternallyEnabled() const
Checks if schedule is controlled by a external process (e.g always-up-to-date).
Definition SyncProfile.cpp:211
const Profile * clientProfile() const
Get the first service sub-profile.
Definition SyncProfile.cpp:441
bool isSOCProfile() const
checks if a profile has SOC enabled
Definition SyncProfile.cpp:555
const SyncResults * lastResults() const
Gets the results of the last sync from the sync log.
Definition SyncProfile.cpp:278
QDateTime lastSyncTime() const
Gets the time of last completed sync session with this profile.
Definition SyncProfile.cpp:232
QList< Profile * > storageProfilesNonConst()
Get the storage sub-profiles.
Definition SyncProfile.cpp:502
virtual bool inExternalSyncRushPeriod(QDateTime aDateTime=QDateTime::currentDateTime()) const
Checks if a given time is inside rush hour and if the sync is controlled by a external process.
Definition SyncProfile.cpp:227
ConflictResolutionPolicy
Conflict resolution policy for device-to-device syncs.
Definition SyncProfile.h:94
@ CR_POLICY_PREFER_REMOTE_CHANGES
Prefer remote data in conflict situation.
Definition SyncProfile.h:99
@ CR_POLICY_PREFER_LOCAL_CHANGES
Prefer local data in conflict situation.
Definition SyncProfile.h:96
@ CR_POLICY_UNDEFINED
Conflict resolution policy is undefined.
Definition SyncProfile.h:102
SyncDirection
Sync direction for device-to-device syncs.
Definition SyncProfile.h:79
@ SYNC_DIRECTION_TWO_WAY
Two way sync.
Definition SyncProfile.h:81
@ SYNC_DIRECTION_FROM_REMOTE
Data is copied from remote device only.
Definition SyncProfile.h:84
@ SYNC_DIRECTION_TO_REMOTE
Data is copied to remote device only.
Definition SyncProfile.h:87
@ SYNC_DIRECTION_UNDEFINED
Sync direction is not defined.
Definition SyncProfile.h:90
SyncSchedule syncSchedule() const
Gets sync schedule settings.
Definition SyncProfile.cpp:320
QDateTime nextRushSwitchTime(const QDateTime &aFromTime) const
Gets next time to switch rush/off-rush schedule intervals.
Definition SyncProfile.cpp:269
QString serviceName() const
Get the service name of profile.
virtual bool rushEnabled() const
Checks if rush/off-rush schedule is enabled.
Definition SyncProfile.cpp:216
virtual void setName(const QString &aName)
Sets the name for the profile and associated log.
Definition SyncProfile.cpp:188
QList< QNetworkInformation::TransportMedium > internetConnectionTypes() const
Gets allowed connection types.
Definition SyncProfile.cpp:330
SyncProfile(const QString &aName)
Constructs an empty SyncProfile with the given name.
Definition SyncProfile.cpp:120
virtual SyncProfile * clone() const
Creates a clone of the sync profile.
Definition SyncProfile.cpp:160
QDateTime lastSuccessfulSyncTime() const
Gets the time of the last successful sync session for this profile.
Definition SyncProfile.cpp:244
virtual QDateTime nextSyncTime(QDateTime aDateTime=QDateTime::currentDateTime()) const
Gets the next scheduled sync time.
Definition SyncProfile.cpp:255
CurrentSyncStatus currentSyncStatus() const
Gives the current status of the sync as an enum value If the current status of ongoing syncs is requi...
Definition SyncProfile.cpp:673
void setSyncSchedule(const SyncSchedule &aSchedule)
Sets sync schedule settings.
Definition SyncProfile.cpp:325
~SyncProfile()
Destructor.
Definition SyncProfile.cpp:154
SyncType syncType() const
Gets the sync type of this profile.
Definition SyncProfile.cpp:307
void setConflictResolutionPolicy(ConflictResolutionPolicy aPolicy)
Set conflict resolution policy.
Definition SyncProfile.cpp:635
ConflictResolutionPolicy conflictResolutionPolicy() const
Gets conflict resolution policy.
Definition SyncProfile.cpp:614
SyncType
Synchronization types.
Definition SyncProfile.h:57
@ SYNC_MANUAL
Synchronization is started manually.
Definition SyncProfile.h:59
@ SYNC_SCHEDULED
Definition SyncProfile.h:63
DestinationType
Sync destination type.
Definition SyncProfile.h:67
@ DESTINATION_TYPE_DEVICE
Destination is a device (N95, Harmattan, OviSuite etc.)
Definition SyncProfile.h:69
@ DESTINATION_TYPE_UNDEFINED
Destination type is not defined.
Definition SyncProfile.h:75
@ DESTINATION_TYPE_ONLINE
Destination is an online service.
Definition SyncProfile.h:72
void addResults(const SyncResults &aResults)
Adds synchronization results to the log.
Definition SyncProfile.cpp:298
void setSyncDirection(SyncDirection aDirection)
Sets sync direction.
Definition SyncProfile.cpp:582
CurrentSyncStatus
Current status enum.
Definition SyncProfile.h:106
@ SYNC_SUCCESS
SYNC_SUCCESS - the last sync has been successful.
Definition SyncProfile.h:111
@ SYNC_FAILED
SYNC_FAILED - the last sync has failed.
Definition SyncProfile.h:114
@ SYNC_NEVER_HAPPENED
NOT_SYNCED - no sync has been done for the profile yet.
Definition SyncProfile.h:108
@ SYNC_CANCLLED
SYNC_CANCELLED - the last sync has been cancelled.
Definition SyncProfile.h:117
Contains information about a completed synchronization session.
Definition SyncResults.h:62
Class for handling sync schedule settings.
Definition SyncSchedule.h:53
Definition SyncBackupAdaptor.h:40