summaryrefslogtreecommitdiff
path: root/libopie/pim/opimaccesstemplate.h
Unidiff
Diffstat (limited to 'libopie/pim/opimaccesstemplate.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/opimaccesstemplate.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/libopie/pim/opimaccesstemplate.h b/libopie/pim/opimaccesstemplate.h
index 50cb1e4..c5523a8 100644
--- a/libopie/pim/opimaccesstemplate.h
+++ b/libopie/pim/opimaccesstemplate.h
@@ -20,147 +20,148 @@
20 */ 20 */
21 21
22template <class T = OPimRecord > 22template <class T = OPimRecord >
23class OPimAccessTemplate : public OTemplateBase<T> { 23class OPimAccessTemplate : public OTemplateBase<T> {
24public: 24public:
25 typedef ORecordList<T> List; 25 typedef ORecordList<T> List;
26 typedef OPimAccessBackend<T> BackEnd; 26 typedef OPimAccessBackend<T> BackEnd;
27 typedef OPimCache<T> Cache; 27 typedef OPimCache<T> Cache;
28 28
29 /** 29 /**
30 * c'tor BackEnd 30 * c'tor BackEnd
31 */ 31 */
32 OPimAccessTemplate( BackEnd* end); 32 OPimAccessTemplate( BackEnd* end);
33 virtual ~OPimAccessTemplate(); 33 virtual ~OPimAccessTemplate();
34 34
35 /** 35 /**
36 * load from the backend 36 * load from the backend
37 */ 37 */
38 virtual bool load(); 38 virtual bool load();
39 39
40 /** Reload database. 40 /** Reload database.
41 * You should execute this function if the external database 41 * You should execute this function if the external database
42 * was changed. 42 * was changed.
43 * This function will load the external database and afterwards 43 * This function will load the external database and afterwards
44 * rejoin the local changes. Therefore the local database will be set consistent. 44 * rejoin the local changes. Therefore the local database will be set consistent.
45 */ 45 */
46 virtual bool reload(); 46 virtual bool reload();
47 47
48 /** Save contacts database. 48 /** Save contacts database.
49 * Save is more a "commit". After calling this function, all changes are public available. 49 * Save is more a "commit". After calling this function, all changes are public available.
50 * @return true if successful 50 * @return true if successful
51 */ 51 */
52 virtual bool save(); 52 virtual bool save();
53 53
54 /** 54 /**
55 * if the resource was changed externally 55 * if the resource was changed externally
56 * You should use the signal handling instead of polling possible changes ! 56 * You should use the signal handling instead of polling possible changes !
57 * zecke: Do you implement a signal for otodoaccess ? 57 * zecke: Do you implement a signal for otodoaccess ?
58 */ 58 */
59 bool wasChangedExternally()const; 59 bool wasChangedExternally()const;
60 60
61 /** 61 /**
62 * return a List of records 62 * return a List of records
63 * you can iterate over them 63 * you can iterate over them
64 */ 64 */
65 virtual List allRecords()const; 65 virtual List allRecords()const;
66 66
67 /** 67 /**
68 * queryByExample. 68 * queryByExample.
69 * @see otodoaccess, ocontactaccess 69 * @see otodoaccess, ocontactaccess
70 */ 70 */
71 virtual List queryByExample( const T& t, int querySettings ); 71 virtual List queryByExample( const T& t, int querySettings );
72 72
73 /** 73 /**
74 * find the OPimRecord uid 74 * find the OPimRecord uid
75 */ 75 */
76 virtual T find( int uid )const; 76 virtual T find( int uid )const;
77 77
78 /** 78 /**
79 * read ahead cache find method ;) 79 * read ahead cache find method ;)
80 */ 80 */
81 virtual T find( int uid, const QArray<int>&, 81 virtual T find( int uid, const QArray<int>&,
82 uint current, CacheDirection dir = Forward )const; 82 uint current, CacheDirection dir = Forward )const;
83 83
84 /* invalidate cache here */ 84 /* invalidate cache here */
85 /** 85 /**
86 * clears the backend and invalidates the backend 86 * clears the backend and invalidates the backend
87 */ 87 */
88 virtual void clear() ; 88 virtual void clear() ;
89 89
90 /** 90 /**
91 * add T to the backend 91 * add T to the backend
92 * @param t The item to add. 92 * @param t The item to add.
93 * @return <i>true</i> if added successfully. 93 * @return <i>true</i> if added successfully.
94 */ 94 */
95 virtual bool add( const T& t ) ; 95 virtual bool add( const T& t ) ;
96 96
97 /* only the uid matters */ 97 /* only the uid matters */
98 /** 98 /**
99 * remove T from the backend 99 * remove T from the backend
100 * @param t The item to remove 100 * @param t The item to remove
101 * @return <i>true</i> if successful. 101 * @return <i>true</i> if successful.
102 */ 102 */
103 virtual bool remove( const T& t ); 103 virtual bool remove( const T& t );
104 104
105 /** 105 /**
106 * remove the OPimRecord with uid 106 * remove the OPimRecord with uid
107 * @param uid The ID of the item to remove 107 * @param uid The ID of the item to remove
108 * @return <i>true</i> if successful. 108 * @return <i>true</i> if successful.
109 */ 109 */
110 virtual bool remove( int uid ); 110 virtual bool remove( int uid );
111 111
112 /** 112 /**
113 * replace T from backend 113 * replace T from backend
114 * @param t The item to replace 114 * @param t The item to replace
115 * @return <i>true</i> if successful. 115 * @return <i>true</i> if successful.
116 */ 116 */
117 virtual bool replace( const T& t) ; 117 virtual bool replace( const T& t) ;
118 118
119 void setReadAhead( uint count );
119 /** 120 /**
120 * @internal 121 * @internal
121 */ 122 */
122 void cache( const T& )const; 123 void cache( const T& )const;
123 void setSaneCacheSize( int ); 124 void setSaneCacheSize( int );
124protected: 125protected:
125 /** 126 /**
126 * invalidate the cache 127 * invalidate the cache
127 */ 128 */
128 void invalidateCache(); 129 void invalidateCache();
129 130
130 void setBackEnd( BackEnd* end ); 131 void setBackEnd( BackEnd* end );
131 /** 132 /**
132 * returns the backend 133 * returns the backend
133 */ 134 */
134 BackEnd* backEnd(); 135 BackEnd* backEnd();
135 BackEnd* m_backEnd; 136 BackEnd* m_backEnd;
136 Cache m_cache; 137 Cache m_cache;
137 138
138}; 139};
139 140
140template <class T> 141template <class T>
141OPimAccessTemplate<T>::OPimAccessTemplate( BackEnd* end ) 142OPimAccessTemplate<T>::OPimAccessTemplate( BackEnd* end )
142 : OTemplateBase<T>(), m_backEnd( end ) 143 : OTemplateBase<T>(), m_backEnd( end )
143{ 144{
144 if (end ) 145 if (end )
145 end->setFrontend( this ); 146 end->setFrontend( this );
146} 147}
147template <class T> 148template <class T>
148OPimAccessTemplate<T>::~OPimAccessTemplate() { 149OPimAccessTemplate<T>::~OPimAccessTemplate() {
149 qWarning("~OPimAccessTemplate<T>"); 150 qWarning("~OPimAccessTemplate<T>");
150 delete m_backEnd; 151 delete m_backEnd;
151} 152}
152template <class T> 153template <class T>
153bool OPimAccessTemplate<T>::load() { 154bool OPimAccessTemplate<T>::load() {
154 invalidateCache(); 155 invalidateCache();
155 return m_backEnd->load(); 156 return m_backEnd->load();
156} 157}
157template <class T> 158template <class T>
158bool OPimAccessTemplate<T>::reload() { 159bool OPimAccessTemplate<T>::reload() {
159 invalidateCache(); // zecke: I think this should be added (se) 160 invalidateCache(); // zecke: I think this should be added (se)
160 return m_backEnd->reload(); 161 return m_backEnd->reload();
161} 162}
162template <class T> 163template <class T>
163bool OPimAccessTemplate<T>::save() { 164bool OPimAccessTemplate<T>::save() {
164 return m_backEnd->save(); 165 return m_backEnd->save();
165} 166}
166template <class T> 167template <class T>
@@ -206,49 +207,53 @@ void OPimAccessTemplate<T>::clear() {
206 m_backEnd->clear(); 207 m_backEnd->clear();
207} 208}
208template <class T> 209template <class T>
209bool OPimAccessTemplate<T>::add( const T& t ) { 210bool OPimAccessTemplate<T>::add( const T& t ) {
210 cache( t ); 211 cache( t );
211 return m_backEnd->add( t ); 212 return m_backEnd->add( t );
212} 213}
213template <class T> 214template <class T>
214bool OPimAccessTemplate<T>::remove( const T& t ) { 215bool OPimAccessTemplate<T>::remove( const T& t ) {
215 return remove( t.uid() ); 216 return remove( t.uid() );
216} 217}
217template <class T> 218template <class T>
218bool OPimAccessTemplate<T>::remove( int uid ) { 219bool OPimAccessTemplate<T>::remove( int uid ) {
219 m_cache.remove( uid ); 220 m_cache.remove( uid );
220 return m_backEnd->remove( uid ); 221 return m_backEnd->remove( uid );
221} 222}
222template <class T> 223template <class T>
223bool OPimAccessTemplate<T>::replace( const T& t ) { 224bool OPimAccessTemplate<T>::replace( const T& t ) {
224 m_cache.replace( t ); 225 m_cache.replace( t );
225 return m_backEnd->replace( t ); 226 return m_backEnd->replace( t );
226} 227}
227template <class T> 228template <class T>
228void OPimAccessTemplate<T>::invalidateCache() { 229void OPimAccessTemplate<T>::invalidateCache() {
229 m_cache.invalidate(); 230 m_cache.invalidate();
230} 231}
231template <class T> 232template <class T>
232OPimAccessTemplate<T>::BackEnd* OPimAccessTemplate<T>::backEnd() { 233OPimAccessTemplate<T>::BackEnd* OPimAccessTemplate<T>::backEnd() {
233 return m_backEnd; 234 return m_backEnd;
234} 235}
235template <class T> 236template <class T>
236bool OPimAccessTemplate<T>::wasChangedExternally()const { 237bool OPimAccessTemplate<T>::wasChangedExternally()const {
237 return false; 238 return false;
238} 239}
239template <class T> 240template <class T>
240void OPimAccessTemplate<T>::setBackEnd( BackEnd* end ) { 241void OPimAccessTemplate<T>::setBackEnd( BackEnd* end ) {
241 m_backEnd = end; 242 m_backEnd = end;
242 if (m_backEnd ) 243 if (m_backEnd )
243 m_backEnd->setFrontend( this ); 244 m_backEnd->setFrontend( this );
244} 245}
245template <class T> 246template <class T>
246void OPimAccessTemplate<T>::cache( const T& t ) const{ 247void OPimAccessTemplate<T>::cache( const T& t ) const{
247 /* hacky we need to work around the const*/ 248 /* hacky we need to work around the const*/
248 ((OPimAccessTemplate<T>*)this)->m_cache.add( t ); 249 ((OPimAccessTemplate<T>*)this)->m_cache.add( t );
249} 250}
250template <class T> 251template <class T>
251void OPimAccessTemplate<T>::setSaneCacheSize( int size ) { 252void OPimAccessTemplate<T>::setSaneCacheSize( int size ) {
252 m_cache.setSize( size ); 253 m_cache.setSize( size );
253} 254}
255template <class T>
256void OPimAccessTemplate<T>::setReadAhead( uint count ) {
257 m_backEnd->setReadAhead( count );
258}
254#endif 259#endif