From 4ecbf7407c19b59fc136c334f9386c53db453930 Mon Sep 17 00:00:00 2001 From: zecke Date: Tue, 10 Dec 2002 17:01:18 +0000 Subject: get in sync with HEAD again -OPimBase was added to be used as a default struct inside OPimResolver and to work with DSOs -TodoListXML backend now uses mmap and madvise to load data -OContact added/changed rtti -OTodo added changed rtti OPimAccess* added stuff necessary for the Resolver and a 'state'/'hint' on how to load data OPimResolver which resolves uid + services to Records, rtti to QCOPChannels loads arbitary Service backends ( will work with DSOs soon ) -OPimMainWindow added some setDocument scripting possibility and internal marshalling and demarshalling of Records -OPimRecord added loadDataFromm and saveDataTo for marshalling purposes much more :) --- (limited to 'libopie/pim/otemplatebase.h') diff --git a/libopie/pim/otemplatebase.h b/libopie/pim/otemplatebase.h index b855919..29fb6ec 100644 --- a/libopie/pim/otemplatebase.h +++ b/libopie/pim/otemplatebase.h @@ -3,13 +3,43 @@ #include -#include "opimrecord.h" +#include + /** + * Templates do not have a base class, This is why + * we've this class + * this is here to give us the possibility + * to have a common base class + * You may not want to use that interface internaly + * POOR mans interface + */ +struct OPimBase { + /** + * return the rtti + */ + virtual int rtti()= 0; + virtual OPimRecord* record()const = 0; + virtual OPimRecord* record(int uid)const = 0; + virtual bool add( const OPimRecord& ) = 0; + virtual bool remove( int uid ) = 0; + virtual bool remove( const OPimRecord& ) = 0; + virtual void clear() = 0; + virtual bool load() = 0; + virtual bool save() = 0; + virtual QArray records()const = 0; + /* + * ADD editing here? + * -zecke + */ + +}; +/** * internal template base + * T needs to implement the copy c'tor!!! */ template -class OTemplateBase { +class OTemplateBase : public OPimBase { public: enum CacheDirection { Forward=0, Reverse }; OTemplateBase() { @@ -26,7 +56,36 @@ public: virtual void cache( const T& )const = 0; virtual void setSaneCacheSize( int ) = 0; + /* reimplement of OPimBase */ + int rtti(); + OPimRecord* record()const; + OPimRecord* record(int uid )const; + static T* rec(); }; +/* + * implementation + */ +template +int +OTemplateBase::rtti() { + return T::rtti(); +} +template +OPimRecord* OTemplateBase::record()const { + T* t = new T; + return t; +} +template +OPimRecord* OTemplateBase::record(int uid )const { + T t2 = find(uid ); + T* t1 = new T(t2); + + return t1; +}; +template +T* OTemplateBase::rec() { + return new T; +} #endif -- cgit v0.9.0.2