summaryrefslogtreecommitdiff
path: root/libopie/pim/opimaccessbackend.h
Side-by-side diff
Diffstat (limited to 'libopie/pim/opimaccessbackend.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/opimaccessbackend.h40
1 files changed, 39 insertions, 1 deletions
diff --git a/libopie/pim/opimaccessbackend.h b/libopie/pim/opimaccessbackend.h
index c27acbb..27d3cb8 100644
--- a/libopie/pim/opimaccessbackend.h
+++ b/libopie/pim/opimaccessbackend.h
@@ -2,8 +2,9 @@
#define OPIE_PIM_ACCESS_BACKEND
#include <qarray.h>
+#include <opie/otemplatebase.h>
#include <opie/opimrecord.h>
/**
@@ -16,8 +17,9 @@
*/
template <class T = OPimRecord>
class OPimAccessBackend {
public:
+ typedef OTemplateBase<T> Frontend;
OPimAccessBackend();
virtual ~OPimAccessBackend();
/**
@@ -53,8 +55,10 @@ public:
* returns T and T.isEmpty() if nothing was found
*/
virtual T find(int uid )const = 0;
+ virtual T find(int uid, const QArray<int>& items,
+ uint current, Frontend::CacheDirection )const ;
/**
* clear the back end
*/
virtual void clear() = 0;
@@ -73,17 +77,51 @@ public:
* replace a record with T.uid()
*/
virtual bool replace( const T& t ) = 0;
+ /*
+ * setTheFrontEnd!!!
+ */
+ void setFrontend( Frontend* front );
+
+protected:
+ void cache( const T& t )const;
+
+ /**
+ * use a prime number here!
+ */
+ void setSaneCacheSize( int );
+
+private:
+ Frontend* m_front;
};
template <class T>
OPimAccessBackend<T>::OPimAccessBackend() {
-
+ m_front = 0l;
}
template <class T>
OPimAccessBackend<T>::~OPimAccessBackend() {
}
+template <class T>
+void OPimAccessBackend<T>::setFrontend( Frontend* fr ) {
+ m_front = fr;
+}
+template <class T>
+void OPimAccessBackend<T>::cache( const T& t )const {
+ if (m_front )
+ m_front->cache( t );
+}
+template <class T>
+void OPimAccessBackend<T>::setSaneCacheSize( int size) {
+ if (m_front )
+ m_front->setSaneCacheSize( size );
+}
+template <class T>
+T OPimAccessBackend<T>::find( int uid, const QArray<int>&,
+ uint, Frontend::CacheDirection )const {
+ return find( uid );
+}
#endif