summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/backend
Unidiff
Diffstat (limited to 'libopie2/opiepim/backend') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiepim/backend/obackendfactory.h20
-rw-r--r--libopie2/opiepim/backend/opimaccessbackend.h40
2 files changed, 53 insertions, 7 deletions
diff --git a/libopie2/opiepim/backend/obackendfactory.h b/libopie2/opiepim/backend/obackendfactory.h
index f11f029..89b8c58 100644
--- a/libopie2/opiepim/backend/obackendfactory.h
+++ b/libopie2/opiepim/backend/obackendfactory.h
@@ -16,6 +16,13 @@
16 * ===================================================================== 16 * =====================================================================
17 * History: 17 * History:
18 * $Log$ 18 * $Log$
19 * Revision 1.3 2002/10/10 17:08:58 zecke
20 * The Cache is finally in place
21 * I tested it with my todolist and it 'works' for 10.000 todos the hits are awesome ;)
22 * The read ahead functionality does not make sense for XMLs backends because most of the stuff is already in memory. While using readahead on SQL makes things a lot faster....
23 * I still have to fully implement read ahead
24 * This change is bic but sc
25 *
19 * Revision 1.2 2002/10/08 09:27:36 eilers 26 * Revision 1.2 2002/10/08 09:27:36 eilers
20 * Fixed libopie.pro to include the new pim-API. 27 * Fixed libopie.pro to include the new pim-API.
21 * The SQL-Stuff is currently deactivated. Otherwise everyone who wants to 28 * The SQL-Stuff is currently deactivated. Otherwise everyone who wants to
@@ -28,8 +35,8 @@
28 * 35 *
29 * ===================================================================== 36 * =====================================================================
30 */ 37 */
31#ifndef __OPIE_BACKENDFACTORY_H_ 38#ifndef OPIE_BACKENDFACTORY_H_
32#define __OPIE_BACKENDFACTORY_H_ 39#define OPIE_BACKENDFACTORY_H_
33 40
34#include <qstring.h> 41#include <qstring.h>
35#include <qasciidict.h> 42#include <qasciidict.h>
@@ -38,9 +45,10 @@
38#include "otodoaccessxml.h" 45#include "otodoaccessxml.h"
39#include "ocontactaccessbackend_xml.h" 46#include "ocontactaccessbackend_xml.h"
40 47
41#ifdef __USE_SQL 48/*#ifdef __USE_SQL
42#include "otodoaccesssql.h" 49#include "otodoaccesssql.h"
43#endif 50#endif
51*/
44 52
45template<class T> 53template<class T>
46class OBackendFactory 54class OBackendFactory
@@ -72,13 +80,13 @@ class OBackendFactory
72 80
73 switch ( *dict.take( backendName ) ){ 81 switch ( *dict.take( backendName ) ){
74 case TODO: 82 case TODO:
75#ifdef __USE_SQL 83/*#ifdef __USE_SQL
76 if ( backend == "sql" ) 84 if ( backend == "sql" )
77 return (T*) new OTodoAccessBackendSQL(""); 85 return (T*) new OTodoAccessBackendSQL("");
78#else 86#else*/
79 if ( backend == "sql" ) 87 if ( backend == "sql" )
80 qWarning ("OBackendFactory:: sql Backend not implemented! Using XML instead!"); 88 qWarning ("OBackendFactory:: sql Backend not implemented! Using XML instead!");
81#endif 89//#endif
82 90
83 return (T*) new OTodoAccessXML( appName ); 91 return (T*) new OTodoAccessXML( appName );
84 case CONTACT: 92 case CONTACT:
diff --git a/libopie2/opiepim/backend/opimaccessbackend.h b/libopie2/opiepim/backend/opimaccessbackend.h
index c27acbb..27d3cb8 100644
--- a/libopie2/opiepim/backend/opimaccessbackend.h
+++ b/libopie2/opiepim/backend/opimaccessbackend.h
@@ -3,6 +3,7 @@
3 3
4#include <qarray.h> 4#include <qarray.h>
5 5
6#include <opie/otemplatebase.h>
6#include <opie/opimrecord.h> 7#include <opie/opimrecord.h>
7 8
8 9
@@ -17,6 +18,7 @@
17template <class T = OPimRecord> 18template <class T = OPimRecord>
18class OPimAccessBackend { 19class OPimAccessBackend {
19public: 20public:
21 typedef OTemplateBase<T> Frontend;
20 OPimAccessBackend(); 22 OPimAccessBackend();
21 virtual ~OPimAccessBackend(); 23 virtual ~OPimAccessBackend();
22 24
@@ -54,6 +56,8 @@ public:
54 */ 56 */
55 virtual T find(int uid )const = 0; 57 virtual T find(int uid )const = 0;
56 58
59 virtual T find(int uid, const QArray<int>& items,
60 uint current, Frontend::CacheDirection )const ;
57 /** 61 /**
58 * clear the back end 62 * clear the back end
59 */ 63 */
@@ -74,16 +78,50 @@ public:
74 */ 78 */
75 virtual bool replace( const T& t ) = 0; 79 virtual bool replace( const T& t ) = 0;
76 80
81 /*
82 * setTheFrontEnd!!!
83 */
84 void setFrontend( Frontend* front );
85
86protected:
87 void cache( const T& t )const;
88
89 /**
90 * use a prime number here!
91 */
92 void setSaneCacheSize( int );
93
94private:
95 Frontend* m_front;
77 96
78}; 97};
79 98
80template <class T> 99template <class T>
81OPimAccessBackend<T>::OPimAccessBackend() { 100OPimAccessBackend<T>::OPimAccessBackend() {
82 101 m_front = 0l;
83} 102}
84template <class T> 103template <class T>
85OPimAccessBackend<T>::~OPimAccessBackend() { 104OPimAccessBackend<T>::~OPimAccessBackend() {
86 105
87} 106}
107template <class T>
108void OPimAccessBackend<T>::setFrontend( Frontend* fr ) {
109 m_front = fr;
110}
111template <class T>
112void OPimAccessBackend<T>::cache( const T& t )const {
113 if (m_front )
114 m_front->cache( t );
115}
116template <class T>
117void OPimAccessBackend<T>::setSaneCacheSize( int size) {
118 if (m_front )
119 m_front->setSaneCacheSize( size );
120}
121template <class T>
122T OPimAccessBackend<T>::find( int uid, const QArray<int>&,
123 uint, Frontend::CacheDirection )const {
124 return find( uid );
125}
88 126
89#endif 127#endif