Diffstat (limited to 'libopie/pim/otodoaccesssql.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie/pim/otodoaccesssql.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libopie/pim/otodoaccesssql.cpp b/libopie/pim/otodoaccesssql.cpp index ea8b3c9..9ef6b7c 100644 --- a/libopie/pim/otodoaccesssql.cpp +++ b/libopie/pim/otodoaccesssql.cpp | |||
@@ -277,44 +277,45 @@ QArray<int> OTodoAccessBackendSQL::allRecords()const { | |||
277 | 277 | ||
278 | return m_uids; | 278 | return m_uids; |
279 | } | 279 | } |
280 | QArray<int> OTodoAccessBackendSQL::queryByExample( const OTodo& , int ){ | 280 | QArray<int> OTodoAccessBackendSQL::queryByExample( const OTodo& , int ){ |
281 | QArray<int> ints(0); | 281 | QArray<int> ints(0); |
282 | return ints; | 282 | return ints; |
283 | } | 283 | } |
284 | OTodo OTodoAccessBackendSQL::find(int uid ) const{ | 284 | OTodo OTodoAccessBackendSQL::find(int uid ) const{ |
285 | FindQuery query( uid ); | 285 | FindQuery query( uid ); |
286 | return todo( m_driver->query(&query) ); | 286 | return todo( m_driver->query(&query) ); |
287 | 287 | ||
288 | } | 288 | } |
289 | #define CACHE 32 | ||
289 | OTodo OTodoAccessBackendSQL::find( int uid, const QArray<int>& ints, | 290 | OTodo OTodoAccessBackendSQL::find( int uid, const QArray<int>& ints, |
290 | uint cur, Frontend::CacheDirection dir ) const{ | 291 | uint cur, Frontend::CacheDirection dir ) const{ |
291 | qWarning("searching for %d", uid ); | 292 | qWarning("searching for %d", uid ); |
292 | QArray<int> search( 8 ); | 293 | QArray<int> search( CACHE ); |
293 | uint size =0; | 294 | uint size =0; |
294 | OTodo to; | 295 | OTodo to; |
295 | 296 | ||
296 | // we try to cache 8 items | 297 | // we try to cache CACHE items |
297 | switch( dir ) { | 298 | switch( dir ) { |
298 | /* forward */ | 299 | /* forward */ |
299 | case 0: | 300 | case 0: |
300 | for (uint i = cur; i < ints.count() && size < 8; i++ ) { | 301 | for (uint i = cur; i < ints.count() && size < CACHE; i++ ) { |
301 | qWarning("size %d %d", size, ints[i] ); | 302 | qWarning("size %d %d", size, ints[i] ); |
302 | search[size] = ints[i]; | 303 | search[size] = ints[i]; |
303 | size++; | 304 | size++; |
304 | } | 305 | } |
305 | break; | 306 | break; |
306 | /* reverse */ | 307 | /* reverse */ |
307 | case 1: | 308 | case 1: |
308 | for (uint i = cur; i != 0 && size < 8; i-- ) { | 309 | for (uint i = cur; i != 0 && size < CACHE; i-- ) { |
309 | search[size] = ints[i]; | 310 | search[size] = ints[i]; |
310 | size++; | 311 | size++; |
311 | } | 312 | } |
312 | break; | 313 | break; |
313 | } | 314 | } |
314 | search.resize( size ); | 315 | search.resize( size ); |
315 | FindQuery query( search ); | 316 | FindQuery query( search ); |
316 | OSQLResult res = m_driver->query( &query ); | 317 | OSQLResult res = m_driver->query( &query ); |
317 | if ( res.state() != OSQLResult::Success ) | 318 | if ( res.state() != OSQLResult::Success ) |
318 | return to; | 319 | return to; |
319 | 320 | ||
320 | return todo( res ); | 321 | return todo( res ); |