ksync Library API Documentation

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
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.4.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sat Oct 18 02:47:17 2003 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001