Buteo Synchronization Framework
SyncCommonDefs.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
24#ifndef SYNCCOMMONDEFS_H
25#define SYNCCOMMONDEFS_H
26
27#include <QMetaType>
28#include <QDir>
29#include <QStandardPaths>
30#include <QtNetwork/QNetworkConfiguration>
31
32namespace Sync {
33
34const QString syncConfigDir();
35const QString syncCacheDir(); // deprecated
36
37enum SyncStatus {
38 SYNC_QUEUED = 0,
39 SYNC_STARTED,
40 SYNC_PROGRESS,
41 SYNC_ERROR,
42 SYNC_DONE,
43 SYNC_ABORTED,
44 SYNC_CANCELLED,
45 SYNC_STOPPING,
46 SYNC_NOTPOSSIBLE,
47 SYNC_AUTHENTICATION_FAILURE,
48 SYNC_DATABASE_FAILURE,
49 SYNC_CONNECTION_ERROR,
50 SYNC_SERVER_FAILURE,
51 SYNC_BAD_REQUEST,
52 SYNC_PLUGIN_ERROR,
53 SYNC_PLUGIN_TIMEOUT
54};
55
56// UI needs to display a detailed Progress for the Current ongoing sync
57enum SyncProgressDetail {
58 SYNC_PROGRESS_INITIALISING = 201,
59 SYNC_PROGRESS_SENDING_ITEMS,
60 SYNC_PROGRESS_RECEIVING_ITEMS,
61 SYNC_PROGRESS_FINALISING
62};
63
64enum TransferDatabase {
65 LOCAL_DATABASE = 0,
66 REMOTE_DATABASE
67};
68
69enum TransferType {
70 ITEM_ADDED = 0,
71 ITEM_MODIFIED,
72 ITEM_DELETED,
73 ITEM_ERROR
74};
75
76enum ConnectivityType {
77 CONNECTIVITY_USB,
78 CONNECTIVITY_BT,
79 CONNECTIVITY_INTERNET
80};
81
82enum InternetConnectionType {
83 INTERNET_CONNECTION_UNKNOWN = QNetworkConfiguration::BearerUnknown,
84 INTERNET_CONNECTION_ETHERNET = QNetworkConfiguration::BearerEthernet,
85 INTERNET_CONNECTION_WLAN = QNetworkConfiguration::BearerWLAN,
86 INTERNET_CONNECTION_2G = QNetworkConfiguration::Bearer2G,
87 INTERNET_CONNECTION_3G = QNetworkConfiguration::Bearer3G,
88 INTERNET_CONNECTION_4G = QNetworkConfiguration::Bearer4G,
89 INTERNET_CONNECTION_CDMA2000 = QNetworkConfiguration::BearerCDMA2000,
90 INTERNET_CONNECTION_WCDMA = QNetworkConfiguration::BearerWCDMA,
91 INTERNET_CONNECTION_HSPA = QNetworkConfiguration::BearerHSPA,
92 INTERNET_CONNECTION_BLUETOOTH = QNetworkConfiguration::BearerBluetooth,
93 INTERNET_CONNECTION_WIMAX = QNetworkConfiguration::BearerWiMAX,
94 INTERNET_CONNECTION_EVDO = QNetworkConfiguration::BearerEVDO,
95 INTERNET_CONNECTION_LTE = QNetworkConfiguration::BearerLTE
96};
97
98// These are values that can be used for the SyncSchedule::interval, to specify sync intervals
99// that should be specially handled (instead of treating them as minute intervals). This allows
100// special intervals to be handled without additional SyncSchedule attributes.
101enum ExtendedSyncInterval : unsigned int {
102 // Sync is scheduled one month after the last successful sync.
103 SYNC_INTERVAL_MONTHLY = 365 * 24 * 60 * 2, // Start the named interval values at an unlikely minute-based interval ((365 * 24 * 60 * 2) = 1051200 minutes = 2 years)
104
105 // Sync is scheduled on the first day of each month.
106 SYNC_INTERVAL_FIRST_DAY_OF_MONTH,
107
108 // Sync is scheduled on the last day of each month.
109 SYNC_INTERVAL_LAST_DAY_OF_MONTH
110};
111
112} // namespace Sync
113
114Q_DECLARE_METATYPE( Sync::SyncStatus );
115Q_DECLARE_METATYPE( Sync::TransferDatabase );
116Q_DECLARE_METATYPE( Sync::TransferType );
117Q_DECLARE_METATYPE( Sync::ConnectivityType );
118
119
120#endif // SYNCCOMMONDEFS_H