author | mickeyl <mickeyl> | 2004-11-16 19:14:18 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-11-16 19:14:18 (UTC) |
commit | ea3945a9bd8f9830f70b1efa133f9df13b19362f (patch) (side-by-side diff) | |
tree | f2ea22cc50e9aa8aa73ee7dea148f41c563c9666 /noncore/unsupported/libopie/pim/opimaccessbackend.h | |
parent | 1c6f490e8541626f68422e0a3a7c7281d7f5b7d3 (diff) | |
download | opie-ea3945a9bd8f9830f70b1efa133f9df13b19362f.zip opie-ea3945a9bd8f9830f70b1efa133f9df13b19362f.tar.gz opie-ea3945a9bd8f9830f70b1efa133f9df13b19362f.tar.bz2 |
libopie1 goes into unsupported
Diffstat (limited to 'noncore/unsupported/libopie/pim/opimaccessbackend.h') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/unsupported/libopie/pim/opimaccessbackend.h | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/noncore/unsupported/libopie/pim/opimaccessbackend.h b/noncore/unsupported/libopie/pim/opimaccessbackend.h new file mode 100644 index 0000000..fd264fc --- a/dev/null +++ b/noncore/unsupported/libopie/pim/opimaccessbackend.h @@ -0,0 +1,160 @@ +#ifndef OPIE_PIM_ACCESS_BACKEND +#define OPIE_PIM_ACCESS_BACKEND + +#include <qarray.h> +#include <qdatetime.h> + +#include <opie/otemplatebase.h> +#include <opie/opimrecord.h> + + +class OPimAccessBackendPrivate; +/** + * OPimAccessBackend is the base class + * for all private backends + * it operates on OPimRecord as the base class + * and it's responsible for fast manipulating + * the resource the implementation takes care + * of + */ +template <class T = OPimRecord> +class OPimAccessBackend { +public: + typedef OTemplateBase<T> Frontend; + + /** The access hint from the frontend */ + OPimAccessBackend(int access = 0); + virtual ~OPimAccessBackend(); + + /** + * load the resource + */ + virtual bool load() = 0; + + /** + * reload the resource + */ + virtual bool reload() = 0; + + /** + * save the resource and + * all it's changes + */ + virtual bool save() = 0; + + /** + * return an array of + * all available uids + */ + virtual QArray<int> allRecords()const = 0; + + /** + * return a List of records + * that match the regex + */ + virtual QArray<int> matchRegexp(const QRegExp &r) const = 0; + + /** + * queryByExample for T with the given Settings + * + */ + virtual QArray<int> queryByExample( const T& t, int settings, const QDateTime& d = QDateTime() ) = 0; + + /** + * find the OPimRecord with uid @param uid + * returns T and T.isEmpty() if nothing was found + */ + virtual T find(int uid )const = 0; + + virtual T find(int uid, const QArray<int>& items, + uint current, typename Frontend::CacheDirection )const ; + /** + * clear the back end + */ + virtual void clear() = 0; + + /** + * add T + */ + virtual bool add( const T& t ) = 0; + + /** + * remove + */ + virtual bool remove( int uid ) = 0; + + /** + * replace a record with T.uid() + */ + virtual bool replace( const T& t ) = 0; + + /* + * setTheFrontEnd!!! + */ + void setFrontend( Frontend* front ); + + /** + * set the read ahead count + */ + void setReadAhead( uint count ); +protected: + int access()const; + void cache( const T& t )const; + + /** + * use a prime number here! + */ + void setSaneCacheSize( int ); + + uint readAhead()const; + +private: + OPimAccessBackendPrivate *d; + Frontend* m_front; + uint m_read; + int m_acc; + +}; + +template <class T> +OPimAccessBackend<T>::OPimAccessBackend(int acc) + : m_acc( acc ) +{ + m_front = 0l; +} +template <class T> +OPimAccessBackend<T>::~OPimAccessBackend() { + +} +template <class T> +void OPimAccessBackend<T>::setFrontend( Frontend* fr ) { + m_front = fr; +} +template <class T> +void OPimAccessBackend<T>::cache( const T& t )const { + if (m_front ) + m_front->cache( t ); +} +template <class T> +void OPimAccessBackend<T>::setSaneCacheSize( int size) { + if (m_front ) + m_front->setSaneCacheSize( size ); +} +template <class T> +T OPimAccessBackend<T>::find( int uid, const QArray<int>&, + uint, typename Frontend::CacheDirection )const { + return find( uid ); +} +template <class T> +void OPimAccessBackend<T>::setReadAhead( uint count ) { + m_read = count; +} +template <class T> +uint OPimAccessBackend<T>::readAhead()const { + return m_read; +} +template <class T> +int OPimAccessBackend<T>::access()const { + return m_acc; +} +#endif |