syncee.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KSYNC_SYNCEE_H
00023 #define KSYNC_SYNCEE_H
00024
00025 #include <qbitarray.h>
00026 #include <qobject.h>
00027 #include <qmap.h>
00028 #include <qstring.h>
00029 #include <qptrlist.h>
00030
00031 #include "kontainer.h"
00032 #include "syncentry.h"
00033
00034 class KSimpleConfig;
00035
00036 namespace KSync {
00037
00068 class Syncee
00069 {
00070 public:
00071 enum SyncMode { MetaLess=0, MetaMode=2 };
00072
00073 Syncee( uint supportSize = 0 );
00074 virtual ~Syncee();
00075
00081
00082
00083 virtual void reset() {}
00084
00090 virtual SyncEntry *firstEntry() = 0;
00091
00097 virtual SyncEntry *nextEntry() = 0;
00098
00102
00103 virtual QString type() const { return QString::null; }
00108 virtual SyncEntry *findEntry( const QString &id );
00109
00114 virtual void addEntry( SyncEntry * ) = 0;
00119 virtual void removeEntry( SyncEntry * ) = 0;
00120
00125 void replaceEntry( SyncEntry *oldEntry, SyncEntry *newEntry );
00126
00132 void setIdentifier( const QString &identifier );
00133
00139 QString identifier() { return mIdentifier; }
00140
00148 virtual bool isValid();
00149
00154 QString statusLogName();
00155
00161 bool loadLog();
00167 bool saveLog();
00168
00174 bool hasChanged(SyncEntry *);
00175
00180 virtual int modificationState( SyncEntry * entry) const;
00181
00186 virtual int syncMode() const;
00187
00191 virtual void setSyncMode( int mode = MetaLess );
00192
00196 virtual void setFirstSync( bool firstSync = true );
00197
00201 virtual bool firstSync() const;
00202
00211
00215 virtual SyncEntry::PtrList added() { return SyncEntry::PtrList(); }
00219 virtual SyncEntry::PtrList modified() { return SyncEntry::PtrList(); };
00223 virtual SyncEntry::PtrList removed() { return SyncEntry::PtrList(); }
00224
00229
00230
00231
00242 void insertId( const QString &type,
00243 const QString &konnectorId,
00244 const QString &kdeId );
00245
00246
00252 virtual QString newId() const;
00257 Kontainer::ValueList ids( const QString &type ) const;
00258
00262 QMap<QString,Kontainer::ValueList> ids() const;
00263
00267 virtual void setSupports( const QBitArray& );
00268
00272 virtual QBitArray bitArray() const;
00273
00274
00279 void setSource( const QString &src );
00280
00284 QString source() const;
00285
00286
00290 inline bool isSupported( uint Attribute ) const;
00291
00292
00293
00300 virtual bool trustIdsOnFirstSync() const;
00301
00302 virtual bool writeBackup( const QString &filename ) = 0;
00303
00304 virtual bool restoreBackup( const QString &filename ) = 0;
00305
00306 private:
00307 QMap<QString,Kontainer::ValueList> mMaps;
00308 int mSyncMode;
00309 bool mFirstSync : 1;
00310 QString mIdentifier;
00311 KSimpleConfig *mStatusLog;
00312 QBitArray mSupport;
00313 QString mName;
00314 class SynceePrivate;
00315 SynceePrivate *d;
00316 };
00317
00318 }
00319
00320 #endif
This file is part of the documentation for kitchensync Library Version 3.3.2.