summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/backend/opimaccessbackend.h
Side-by-side diff
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
@@ -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 );