Diffstat (limited to 'libopie2/opiepim/backend/opimaccessbackend.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opiepim/backend/opimaccessbackend.h | 40 |
1 files changed, 39 insertions, 1 deletions
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 | |||
@@ -1,31 +1,33 @@ | |||
1 | #ifndef OPIE_PIM_ACCESS_BACKEND | 1 | #ifndef OPIE_PIM_ACCESS_BACKEND |
2 | #define OPIE_PIM_ACCESS_BACKEND | 2 | #define OPIE_PIM_ACCESS_BACKEND |
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 | ||
9 | /** | 10 | /** |
10 | * OPimAccessBackend is the base class | 11 | * OPimAccessBackend is the base class |
11 | * for all private backends | 12 | * for all private backends |
12 | * it operates on OPimRecord as the base class | 13 | * it operates on OPimRecord as the base class |
13 | * and it's responsible for fast manipulating | 14 | * and it's responsible for fast manipulating |
14 | * the resource the implementation takes care | 15 | * the resource the implementation takes care |
15 | * of | 16 | * of |
16 | */ | 17 | */ |
17 | template <class T = OPimRecord> | 18 | template <class T = OPimRecord> |
18 | class OPimAccessBackend { | 19 | class OPimAccessBackend { |
19 | public: | 20 | public: |
21 | typedef OTemplateBase<T> Frontend; | ||
20 | OPimAccessBackend(); | 22 | OPimAccessBackend(); |
21 | virtual ~OPimAccessBackend(); | 23 | virtual ~OPimAccessBackend(); |
22 | 24 | ||
23 | /** | 25 | /** |
24 | * load the resource | 26 | * load the resource |
25 | */ | 27 | */ |
26 | virtual bool load() = 0; | 28 | virtual bool load() = 0; |
27 | 29 | ||
28 | /** | 30 | /** |
29 | * reload the resource | 31 | * reload the resource |
30 | */ | 32 | */ |
31 | virtual bool reload() = 0; | 33 | virtual bool reload() = 0; |
@@ -45,45 +47,81 @@ public: | |||
45 | /** | 47 | /** |
46 | * queryByExample for T with the SortOrder | 48 | * queryByExample for T with the SortOrder |
47 | * sort | 49 | * sort |
48 | */ | 50 | */ |
49 | virtual QArray<int> queryByExample( const T& t, int sort ) = 0; | 51 | virtual QArray<int> queryByExample( const T& t, int sort ) = 0; |
50 | 52 | ||
51 | /** | 53 | /** |
52 | * find the OPimRecord with uid @param uid | 54 | * find the OPimRecord with uid @param uid |
53 | * returns T and T.isEmpty() if nothing was found | 55 | * returns T and T.isEmpty() if nothing was found |
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 | */ |
60 | virtual void clear() = 0; | 64 | virtual void clear() = 0; |
61 | 65 | ||
62 | /** | 66 | /** |
63 | * add T | 67 | * add T |
64 | */ | 68 | */ |
65 | virtual bool add( const T& t ) = 0; | 69 | virtual bool add( const T& t ) = 0; |
66 | 70 | ||
67 | /** | 71 | /** |
68 | * remove | 72 | * remove |
69 | */ | 73 | */ |
70 | virtual bool remove( int uid ) = 0; | 74 | virtual bool remove( int uid ) = 0; |
71 | 75 | ||
72 | /** | 76 | /** |
73 | * replace a record with T.uid() | 77 | * replace a record with T.uid() |
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 | |||
86 | protected: | ||
87 | void cache( const T& t )const; | ||
88 | |||
89 | /** | ||
90 | * use a prime number here! | ||
91 | */ | ||
92 | void setSaneCacheSize( int ); | ||
93 | |||
94 | private: | ||
95 | Frontend* m_front; | ||
77 | 96 | ||
78 | }; | 97 | }; |
79 | 98 | ||
80 | template <class T> | 99 | template <class T> |
81 | OPimAccessBackend<T>::OPimAccessBackend() { | 100 | OPimAccessBackend<T>::OPimAccessBackend() { |
82 | 101 | m_front = 0l; | |
83 | } | 102 | } |
84 | template <class T> | 103 | template <class T> |
85 | OPimAccessBackend<T>::~OPimAccessBackend() { | 104 | OPimAccessBackend<T>::~OPimAccessBackend() { |
86 | 105 | ||
87 | } | 106 | } |
107 | template <class T> | ||
108 | void OPimAccessBackend<T>::setFrontend( Frontend* fr ) { | ||
109 | m_front = fr; | ||
110 | } | ||
111 | template <class T> | ||
112 | void OPimAccessBackend<T>::cache( const T& t )const { | ||
113 | if (m_front ) | ||
114 | m_front->cache( t ); | ||
115 | } | ||
116 | template <class T> | ||
117 | void OPimAccessBackend<T>::setSaneCacheSize( int size) { | ||
118 | if (m_front ) | ||
119 | m_front->setSaneCacheSize( size ); | ||
120 | } | ||
121 | template <class T> | ||
122 | T OPimAccessBackend<T>::find( int uid, const QArray<int>&, | ||
123 | uint, Frontend::CacheDirection )const { | ||
124 | return find( uid ); | ||
125 | } | ||
88 | 126 | ||
89 | #endif | 127 | #endif |