00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef INCL_SYNC_SOURCE
00020 #define INCL_SYNC_SOURCE
00021
00025 #include "base/fscapi.h"
00026 #include "base/ErrorHandler.h"
00027 #include "base/util/ArrayElement.h"
00028 #include "filter/SourceFilter.h"
00029 #include "spds/constants.h"
00030 #include "spds/SyncItem.h"
00031 #include "spds/SyncStatus.h"
00032 #include "spds/SyncSourceConfig.h"
00033 #include "spds/SyncSourceReport.h"
00034
00040 class SyncSource : public ArrayElement {
00041
00042 private:
00043 SyncMode syncMode;
00044 unsigned long lastSync;
00045 unsigned long nextSync;
00046 WCHAR* name;
00047
00048 char next[DIM_ANCHOR];
00049 char last[DIM_ANCHOR];
00050
00051
00052
00053 SourceFilter* filter;
00054
00055 protected:
00056 SyncSourceConfig& config;
00057 SyncSourceReport* report;
00058
00062 void assign(SyncSource& s);
00063
00064 public:
00065
00079 SyncSource(const WCHAR* name, SyncSourceConfig* sc) EXTRA_SECTION_01;
00080
00081
00082 virtual ~SyncSource() EXTRA_SECTION_01;
00083
00091 const WCHAR *getName() EXTRA_SECTION_01;
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00111 const SyncSourceConfig& getConfig() const EXTRA_SECTION_01 {
00112 return config;
00113 }
00115 SyncSourceConfig& getConfig() EXTRA_SECTION_01 {
00116 return config;
00117 }
00118
00119
00123 SyncSourceReport* getReport() EXTRA_SECTION_01;
00124
00131 void setReport(SyncSourceReport* sr) EXTRA_SECTION_01;
00132
00140 SyncMode getPreferredSyncMode() EXTRA_SECTION_01;
00141 void setPreferredSyncMode(SyncMode syncMode) EXTRA_SECTION_01;
00142
00150 SyncMode getSyncMode() EXTRA_SECTION_01;
00151 void setSyncMode(SyncMode syncMode) EXTRA_SECTION_01;
00152
00157 unsigned long getLastSync() EXTRA_SECTION_01;
00158 void setLastSync(unsigned long timestamp) EXTRA_SECTION_01;
00159
00164 unsigned long getNextSync() EXTRA_SECTION_01;
00165 void setNextSync(unsigned long timestamp) EXTRA_SECTION_01;
00166
00170 void setLastAnchor(const char* last) EXTRA_SECTION_01;
00171 const char* getLastAnchor() EXTRA_SECTION_01;
00172
00176 const char* getNextAnchor() EXTRA_SECTION_01;
00177 void setNextAnchor(const char* next) EXTRA_SECTION_01;
00178
00182 SourceFilter* getFilter();
00183
00190 void setFilter(SourceFilter* f);
00191
00192
00193
00194
00195
00196
00197
00198
00199
00215 virtual int beginSync() EXTRA_SECTION_01;
00216
00230 virtual int endSync() EXTRA_SECTION_01;
00231
00239 virtual void setItemStatus(const WCHAR* key, int status) = 0 EXTRA_SECTION_01;
00240
00246 virtual SyncItem* getFirstItemKey() = 0 EXTRA_SECTION_01;
00247
00253 virtual SyncItem* getNextItemKey() = 0 EXTRA_SECTION_01;
00254
00260 virtual SyncItem* getFirstItem() = 0 EXTRA_SECTION_01;
00261
00267 virtual SyncItem* getNextItem() = 0 EXTRA_SECTION_01;
00268
00273 virtual SyncItem* getFirstNewItem() = 0 EXTRA_SECTION_01;
00274
00279 virtual SyncItem* getNextNewItem() = 0 EXTRA_SECTION_01;
00280
00285 virtual SyncItem* getFirstUpdatedItem() = 0 EXTRA_SECTION_01;
00286
00291 virtual SyncItem* getNextUpdatedItem() = 0 EXTRA_SECTION_01;
00292
00297 virtual SyncItem* getFirstDeletedItem() = 0 EXTRA_SECTION_01;
00298
00303 virtual SyncItem* getNextDeletedItem() = 0 EXTRA_SECTION_01;
00304
00315 virtual int addItem(SyncItem& item) = 0 EXTRA_SECTION_01;
00316
00324 virtual int updateItem(SyncItem& item) = 0 EXTRA_SECTION_01;
00325
00333 virtual int deleteItem(SyncItem& item) = 0 EXTRA_SECTION_01;
00334
00338 virtual ArrayElement* clone() EXTRA_SECTION_01 = 0;
00339 };
00340
00343 #endif