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