author | zecke <zecke> | 2002-10-10 17:08:58 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-10-10 17:08:58 (UTC) |
commit | 1dcc1b1fc9fd35d959255452c8b5be1269ca4f44 (patch) (side-by-side diff) | |
tree | 469d239dec74f5751f3aced43c4bae1f0f3a42e3 /libopie2/opiepim/orecordlist.h | |
parent | aa38f642a07810515dcc18ea38bf520e26d7f88e (diff) | |
download | opie-1dcc1b1fc9fd35d959255452c8b5be1269ca4f44.zip opie-1dcc1b1fc9fd35d959255452c8b5be1269ca4f44.tar.gz opie-1dcc1b1fc9fd35d959255452c8b5be1269ca4f44.tar.bz2 |
The Cache is finally in place
I tested it with my todolist and it 'works' for 10.000 todos the hits are awesome ;)
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....
I still have to fully implement read ahead
This change is bic but sc
Diffstat (limited to 'libopie2/opiepim/orecordlist.h') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiepim/orecordlist.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/libopie2/opiepim/orecordlist.h b/libopie2/opiepim/orecordlist.h index b6fa7fa..08f5c85 100644 --- a/libopie2/opiepim/orecordlist.h +++ b/libopie2/opiepim/orecordlist.h @@ -70,2 +70,3 @@ private: T m_record; + bool m_direction :1; @@ -127,2 +128,4 @@ ORecordListIterator<T>::ORecordListIterator() { m_record = T(); + /* forward */ + m_direction = TRUE; } @@ -141,2 +144,3 @@ ORecordListIterator<T>::ORecordListIterator( const ORecordListIterator<T>& it) { m_record = it.m_record; + m_direction = it.m_direction; } @@ -158,7 +162,5 @@ T ORecordListIterator<T>::operator*() { if (!m_end ) - /* FIXME - * until the cache is in place - * we do the uid match uid check - */ - m_record = m_temp->find( m_uids[m_current] ); + m_record = m_temp->find( m_uids[m_current], m_uids, m_current, + m_direction ? Base::Forward : + Base::Reverse ); else @@ -171,2 +173,3 @@ template <class T> ORecordListIterator<T> &ORecordListIterator<T>::operator++() { + m_direction = true; if (m_current < m_uids.count() ) { @@ -181,2 +184,3 @@ template <class T> ORecordListIterator<T> &ORecordListIterator<T>::operator--() { + m_direction = false; if ( m_current > 0 ) { @@ -209,3 +213,4 @@ ORecordListIterator<T>::ORecordListIterator( const QArray<int> uids, const Base* t ) - : m_uids( uids ), m_current( 0 ), m_temp( t ), m_end( false ) + : m_uids( uids ), m_current( 0 ), m_temp( t ), m_end( false ), + m_direction( false ) { @@ -256,3 +261,4 @@ template <class T> T ORecordList<T>::operator[]( uint i ) { - return m_acc->find( m_ids[i] ); + /* forward */ + return m_acc->find( m_ids[i], m_ids, i ); } |