summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/backend/opimaccessbackend.h
Unidiff
Diffstat (limited to 'libopie2/opiepim/backend/opimaccessbackend.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/backend/opimaccessbackend.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/libopie2/opiepim/backend/opimaccessbackend.h b/libopie2/opiepim/backend/opimaccessbackend.h
index 0682063..15a7b7f 100644
--- a/libopie2/opiepim/backend/opimaccessbackend.h
+++ b/libopie2/opiepim/backend/opimaccessbackend.h
@@ -87,25 +87,25 @@ public:
87 * queryByExample for T with the given Settings 87 * queryByExample for T with the given Settings
88 * 88 *
89 */ 89 */
90 virtual QArray<int> queryByExample( const T& t, int settings, const QDateTime& d = QDateTime() ) = 0; 90 virtual QArray<int> queryByExample( const T& t, int settings, const QDateTime& d = QDateTime() ) = 0;
91 91
92 /** 92 /**
93 * find the OPimRecord with uid @param uid 93 * find the OPimRecord with uid @param uid
94 * returns T and T.isEmpty() if nothing was found 94 * returns T and T.isEmpty() if nothing was found
95 */ 95 */
96 virtual T find(int uid )const = 0; 96 virtual T find(int uid )const = 0;
97 97
98 virtual T find(int uid, const QArray<int>& items, 98 virtual T find(int uid, const QArray<int>& items,
99 uint current, typename Frontend::CacheDirection )const ; 99 uint current, typename Frontend::CacheDirection ) const;
100 /** 100 /**
101 * clear the back end 101 * clear the back end
102 */ 102 */
103 virtual void clear() = 0; 103 virtual void clear() = 0;
104 104
105 /** 105 /**
106 * add T 106 * add T
107 */ 107 */
108 virtual bool add( const T& t ) = 0; 108 virtual bool add( const T& t ) = 0;
109 109
110 /** 110 /**
111 * remove 111 * remove
@@ -119,26 +119,34 @@ public:
119 119
120 /* 120 /*
121 * setTheFrontEnd!!! 121 * setTheFrontEnd!!!
122 */ 122 */
123 void setFrontend( Frontend* front ); 123 void setFrontend( Frontend* front );
124 124
125 /** 125 /**
126 * set the read ahead count 126 * set the read ahead count
127 */ 127 */
128 void setReadAhead( uint count ); 128 void setReadAhead( uint count );
129protected: 129protected:
130 int access()const; 130 int access()const;
131
131 void cache( const T& t )const; 132 void cache( const T& t )const;
132 133
134 /**
135 * Returns the element with given uid out of the cache.
136 * Returns empty element if nothing was found.
137 * <b>Attention:</b> This just works if we have a frontend which contains the cache !
138 */
139 T cacheFind( int uid ) const;
140
133 /** 141 /**
134 * use a prime number here! 142 * use a prime number here!
135 */ 143 */
136 void setSaneCacheSize( int ); 144 void setSaneCacheSize( int );
137 145
138 uint readAhead()const; 146 uint readAhead()const;
139 147
140private: 148private:
141 OPimAccessBackendPrivate *d; 149 OPimAccessBackendPrivate *d;
142 Frontend* m_front; 150 Frontend* m_front;
143 uint m_read; 151 uint m_read;
144 int m_acc; 152 int m_acc;
@@ -152,35 +160,47 @@ OPimAccessBackend<T>::OPimAccessBackend(int acc)
152 m_front = 0l; 160 m_front = 0l;
153} 161}
154template <class T> 162template <class T>
155OPimAccessBackend<T>::~OPimAccessBackend() { 163OPimAccessBackend<T>::~OPimAccessBackend() {
156 164
157} 165}
158template <class T> 166template <class T>
159void OPimAccessBackend<T>::setFrontend( Frontend* fr ) { 167void OPimAccessBackend<T>::setFrontend( Frontend* fr ) {
160 m_front = fr; 168 m_front = fr;
161} 169}
162template <class T> 170template <class T>
163void OPimAccessBackend<T>::cache( const T& t )const { 171void OPimAccessBackend<T>::cache( const T& t )const {
164 if (m_front ) 172 if ( m_front )
165 m_front->cache( t ); 173 m_front->cache( t );
166} 174}
175
176template <class T>
177T OPimAccessBackend<T>::cacheFind( int uid )const {
178 if ( ! m_front ){
179 qWarning ( "No frontend assigned ! Therefore we cannot access the cache to return the right element!" );
180 return T();
181 }
182
183 return m_front->cacheFind( uid );
184}
185
167template <class T> 186template <class T>
168void OPimAccessBackend<T>::setSaneCacheSize( int size) { 187void OPimAccessBackend<T>::setSaneCacheSize( int size) {
169 if (m_front ) 188 if ( m_front )
170 m_front->setSaneCacheSize( size ); 189 m_front->setSaneCacheSize( size );
171} 190}
172template <class T> 191template <class T>
173T OPimAccessBackend<T>::find( int uid, const QArray<int>&, 192T OPimAccessBackend<T>::find( int uid, const QArray<int>&,
174 uint, typename Frontend::CacheDirection )const { 193 uint, typename Frontend::CacheDirection ) const{
194 qDebug( "*** Lookahead feature not supported. Fallback to default find!" );
175 return find( uid ); 195 return find( uid );
176} 196}
177template <class T> 197template <class T>
178void OPimAccessBackend<T>::setReadAhead( uint count ) { 198void OPimAccessBackend<T>::setReadAhead( uint count ) {
179 m_read = count; 199 m_read = count;
180} 200}
181template <class T> 201template <class T>
182uint OPimAccessBackend<T>::readAhead()const { 202uint OPimAccessBackend<T>::readAhead()const {
183 return m_read; 203 return m_read;
184} 204}
185template <class T> 205template <class T>
186int OPimAccessBackend<T>::access()const { 206int OPimAccessBackend<T>::access()const {