Diffstat (limited to 'libopie2/opiepim/core/opimcache.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opiepim/core/opimcache.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libopie2/opiepim/core/opimcache.h b/libopie2/opiepim/core/opimcache.h index 73414e5..7f7cff5 100644 --- a/libopie2/opiepim/core/opimcache.h +++ b/libopie2/opiepim/core/opimcache.h | |||
@@ -1,72 +1,78 @@ | |||
1 | #ifndef OPIE_PIM_CACHE_H | 1 | #ifndef OPIE_PIM_CACHE_H |
2 | #define OPIE_PIM_CACHE_H | 2 | #define OPIE_PIM_CACHE_H |
3 | 3 | ||
4 | #include <qintcache.h> | 4 | #include <qintcache.h> |
5 | 5 | ||
6 | #include "opimrecord.h" | 6 | #include "opimrecord.h" |
7 | 7 | ||
8 | class OPimCacheItemPrivate; | ||
9 | |||
8 | template <class T = OPimRecord> | 10 | template <class T = OPimRecord> |
9 | class OPimCacheItem { | 11 | class OPimCacheItem { |
10 | public: | 12 | public: |
11 | OPimCacheItem( const T& t = T() ); | 13 | OPimCacheItem( const T& t = T() ); |
12 | OPimCacheItem( const OPimCacheItem& ); | 14 | OPimCacheItem( const OPimCacheItem& ); |
13 | ~OPimCacheItem(); | 15 | ~OPimCacheItem(); |
14 | 16 | ||
15 | OPimCacheItem &operator=( const OPimCacheItem& ); | 17 | OPimCacheItem &operator=( const OPimCacheItem& ); |
16 | 18 | ||
17 | T record()const; | 19 | T record()const; |
18 | void setRecord( const T& ); | 20 | void setRecord( const T& ); |
19 | private: | 21 | private: |
20 | T m_t; | 22 | T m_t; |
23 | OPimCacheItemPrivate *d; | ||
21 | }; | 24 | }; |
22 | 25 | ||
26 | |||
27 | class OPimCachePrivate; | ||
23 | /** | 28 | /** |
24 | * OPimCache for caching the items | 29 | * OPimCache for caching the items |
25 | * We support adding, removing | 30 | * We support adding, removing |
26 | * and finding | 31 | * and finding |
27 | */ | 32 | */ |
28 | template <class T = OPimRecord> | 33 | template <class T = OPimRecord> |
29 | class OPimCache { | 34 | class OPimCache { |
30 | public: | 35 | public: |
31 | typedef OPimCacheItem<T> Item; | 36 | typedef OPimCacheItem<T> Item; |
32 | OPimCache(); | 37 | OPimCache(); |
33 | OPimCache( const OPimCache& ); | 38 | OPimCache( const OPimCache& ); |
34 | ~OPimCache(); | 39 | ~OPimCache(); |
35 | 40 | ||
36 | OPimCache &operator=( const OPimCache& ); | 41 | OPimCache &operator=( const OPimCache& ); |
37 | 42 | ||
38 | bool contains(int uid)const; | 43 | bool contains(int uid)const; |
39 | void invalidate(); | 44 | void invalidate(); |
40 | void setSize( int size ); | 45 | void setSize( int size ); |
41 | 46 | ||
42 | T find(int uid )const; | 47 | T find(int uid )const; |
43 | void add( const T& ); | 48 | void add( const T& ); |
44 | void remove( int uid ); | 49 | void remove( int uid ); |
45 | void replace( const T& ); | 50 | void replace( const T& ); |
46 | 51 | ||
47 | private: | 52 | private: |
48 | QIntCache<Item> m_cache; | 53 | QIntCache<Item> m_cache; |
54 | OPimCachePrivate* d; | ||
49 | }; | 55 | }; |
50 | 56 | ||
51 | // Implementation | 57 | // Implementation |
52 | template <class T> | 58 | template <class T> |
53 | OPimCacheItem<T>::OPimCacheItem( const T& t ) | 59 | OPimCacheItem<T>::OPimCacheItem( const T& t ) |
54 | : m_t(t) { | 60 | : m_t(t) { |
55 | } | 61 | } |
56 | template <class T> | 62 | template <class T> |
57 | OPimCacheItem<T>::~OPimCacheItem() { | 63 | OPimCacheItem<T>::~OPimCacheItem() { |
58 | 64 | ||
59 | } | 65 | } |
60 | template <class T> | 66 | template <class T> |
61 | T OPimCacheItem<T>::record()const { | 67 | T OPimCacheItem<T>::record()const { |
62 | return m_t; | 68 | return m_t; |
63 | } | 69 | } |
64 | template <class T> | 70 | template <class T> |
65 | void OPimCacheItem<T>::setRecord( const T& t ) { | 71 | void OPimCacheItem<T>::setRecord( const T& t ) { |
66 | m_t = t; | 72 | m_t = t; |
67 | } | 73 | } |
68 | // Cache | 74 | // Cache |
69 | template <class T> | 75 | template <class T> |
70 | OPimCache<T>::OPimCache() | 76 | OPimCache<T>::OPimCache() |
71 | : m_cache(100, 53 ) | 77 | : m_cache(100, 53 ) |
72 | { | 78 | { |