kitchensync
merger.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KITCHENSYNC_KSYNC_MERGER_H
00023 #define KITCHENSYNC_KSYNC_MERGER_H
00024
00025 #include "syncentry.h"
00026 #include "syncee.h"
00027
00028 #include <qbitarray.h>
00029 #include <qstring.h>
00030
00031 namespace KSync{
00032
00047 class KDE_EXPORT Merger
00048 {
00049 public:
00050 Merger();
00051 virtual ~Merger();
00052
00062 virtual bool merge( SyncEntry* entry, SyncEntry* other ) = 0;
00063
00064
00072 QString synceeType()const;
00073 protected:
00079 void setSynceeType( const QString& s);
00080
00089 bool sameType( SyncEntry* e1, SyncEntry* e2);
00090 bool sameType( SyncEntry* e1, SyncEntry* e2, const QString& wished );
00091
00096 template<class M>
00097 M* otherMerger( SyncEntry* );
00098
00099 protected:
00100 QBitArray mBitArray;
00101 QString mString;
00102 };
00103
00104 template<class M>
00105 M* Merger::otherMerger( SyncEntry* entry )
00106 {
00107 if ( !entry->syncee() || !entry->syncee()->merger() ) return 0l;
00108
00109 return static_cast<M*>( entry->syncee()->merger() );
00110 }
00111
00112
00113 }
00114 #endif
|