Diffstat (limited to 'libopie2/opiepim/backend/opimaccessbackend.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opiepim/backend/opimaccessbackend.h | 28 |
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 @@ -98,3 +98,3 @@ public: virtual T find(int uid, const QArray<int>& items, - uint current, typename Frontend::CacheDirection )const ; + uint current, typename Frontend::CacheDirection ) const; /** @@ -130,4 +130,12 @@ protected: int access()const; + void cache( const T& t )const; + /** + * Returns the element with given uid out of the cache. + * Returns empty element if nothing was found. + * <b>Attention:</b> This just works if we have a frontend which contains the cache ! + */ + T cacheFind( int uid ) const; + /** @@ -163,8 +171,19 @@ template <class T> void OPimAccessBackend<T>::cache( const T& t )const { - if (m_front ) + if ( m_front ) m_front->cache( t ); } + +template <class T> +T OPimAccessBackend<T>::cacheFind( int uid )const { + if ( ! m_front ){ + qWarning ( "No frontend assigned ! Therefore we cannot access the cache to return the right element!" ); + return T(); + } + + return m_front->cacheFind( uid ); +} + template <class T> void OPimAccessBackend<T>::setSaneCacheSize( int size) { - if (m_front ) + if ( m_front ) m_front->setSaneCacheSize( size ); @@ -173,3 +192,4 @@ template <class T> T OPimAccessBackend<T>::find( int uid, const QArray<int>&, - uint, typename Frontend::CacheDirection )const { + uint, typename Frontend::CacheDirection ) const{ + qDebug( "*** Lookahead feature not supported. Fallback to default find!" ); return find( uid ); |