ksyncer.h
00001 #ifndef KSYNCER_H 00002 #define KSYNCER_H 00003 // $Id: ksyncer.h,v 1.3 2002/05/20 22:50:35 cschumac Exp $ 00004 00005 #include <qstring.h> 00006 #include <qptrlist.h> 00007 00008 class KSimpleConfig; 00009 00010 class KSyncUi; 00011 class KSyncee; 00012 00024 class KSyncEntry 00025 { 00026 public: 00027 KSyncEntry(); 00028 virtual ~KSyncEntry(); 00029 00034 virtual QString name() = 0; 00041 virtual QString id() = 0; 00053 virtual QString timestamp() = 0; 00059 virtual bool equals(KSyncEntry *) = 0; 00060 00064 void setSyncee(KSyncee *); 00068 KSyncee *syncee(); 00069 00070 private: 00071 KSyncee *mSyncee; 00072 }; 00073 00089 class KSyncee 00090 { 00091 public: 00092 KSyncee(); 00093 virtual ~KSyncee(); 00094 00100 virtual KSyncEntry *firstEntry() = 0; 00106 virtual KSyncEntry *nextEntry() = 0; 00107 00111 virtual KSyncEntry *findEntry(const QString &id); 00112 00117 virtual void addEntry(KSyncEntry *) = 0; 00122 virtual void removeEntry(KSyncEntry *) = 0; 00123 00128 void replaceEntry(KSyncEntry *oldEntry,KSyncEntry *newEntry); 00129 00133 void setFilename(const QString &); 00137 QString filename(); 00138 00143 QString statusLogName(); 00144 00150 bool load(); 00156 bool save(); 00157 00165 virtual bool read() = 0; 00173 virtual bool write() = 0; 00174 00178 void writeLog(); 00179 00185 bool hasChanged(KSyncEntry *); 00186 00187 private: 00188 QString mFilename; 00189 KSimpleConfig *mStatusLog; 00190 }; 00191 00212 class KSyncer 00213 { 00214 public: 00221 KSyncer(KSyncUi *ui=0); 00222 virtual ~KSyncer(); 00223 00227 void addSyncee(KSyncee *); 00228 00236 void sync(); 00245 void syncAllToTarget(KSyncee *target,bool writeback=false); 00254 void syncToTarget(KSyncee *syncee, KSyncee *target, bool override=false); 00255 00256 private: 00257 QPtrList<KSyncee> mSyncees; 00258 KSyncUi *mUi; 00259 }; 00260 00261 #endif