36 class RFileReadStream; |
36 class RFileReadStream; |
37 class CHttpCacheEvictionHandler; |
37 class CHttpCacheEvictionHandler; |
38 class CHttpCacheStreamHandler; |
38 class CHttpCacheStreamHandler; |
39 |
39 |
40 // CLASS DECLARATION |
40 // CLASS DECLARATION |
41 |
41 struct THttpCacheLookupTableEntryIterator |
|
42 { |
|
43 TInt iPos; |
|
44 TInt iCount; |
|
45 }; |
42 /** |
46 /** |
43 * |
47 * |
44 * @lib |
48 * @lib |
45 * @since 3.1 |
49 * @since 3.1 |
46 */ |
50 */ |
47 class CHttpCacheLookupTable : public CBase |
51 class CHttpCacheLookupTable : public CBase |
48 { |
52 { |
49 public: // Constructors and destructor |
53 public: // Constructors and destructor |
50 |
54 |
51 /** |
55 /** |
52 * Two-phased constructor. |
56 * Two-phased constructor. |
53 * @since 3.1 |
57 * @since 3.1 |
54 * @param |
58 * @param |
55 * @param |
59 * @param |
56 * @return CHttpCacheLookupTable object. |
60 * @return CHttpCacheLookupTable object. |
57 */ |
61 */ |
58 static CHttpCacheLookupTable* NewL( CHttpCacheEvictionHandler& aEvictionHandler, CHttpCacheStreamHandler& aStreamHandler ); |
62 static CHttpCacheLookupTable* NewL( CHttpCacheEvictionHandler& aEvictionHandler, CHttpCacheStreamHandler& aStreamHandler ); |
59 |
63 |
60 /** |
64 /** |
61 * Destructor. |
65 * Destructor. |
62 */ |
66 */ |
63 virtual ~CHttpCacheLookupTable(); |
67 virtual ~CHttpCacheLookupTable(); |
64 |
68 |
65 public: // new functions |
69 public: // new functions |
66 |
70 |
67 /** |
71 /** |
68 * |
72 * |
69 * @since 3.1 |
73 * @since 3.1 |
70 * @param |
74 * @param |
71 * @return |
75 * @return |
72 */ |
76 */ |
73 CHttpCacheEntry* InsertL( const TDesC8& aUrl ); |
77 CHttpCacheEntry* InsertL( const TDesC8& aUrl ); |
74 |
78 |
75 /** |
79 /** |
76 * |
80 * |
77 * @since 3.1 |
81 * @since 3.1 |
78 * @param |
82 * @param |
79 * @return |
83 * @return |
80 */ |
84 */ |
81 CHttpCacheEntry* Find( const TDesC8& aUrl ); |
85 CHttpCacheEntry* Find( const TDesC8& aUrl ); |
82 |
86 |
83 /** |
87 /** |
84 * |
88 * |
85 * @since 3.1 |
89 * @since 3.1 |
86 * @param |
90 * @param |
87 * @return |
91 * @return |
88 */ |
92 */ |
89 TInt Remove( const TDesC8& aUrl ); |
93 TInt Remove( const TDesC8& aUrl ); |
90 |
94 |
91 /** |
|
92 * |
|
93 * @since 3.1 |
|
94 * @param |
|
95 * @return |
|
96 */ |
|
97 TInt RemoveByPosition( TInt aPos ); |
|
98 |
|
99 /** |
95 /** |
100 * |
96 * |
101 * @since 3.1 |
97 * @since 3.1 |
102 * @param |
98 * @param |
103 * @return |
99 * @return |
104 */ |
100 */ |
105 TInt RemoveAll(); |
101 TInt RemoveAll(); |
106 |
102 |
107 /** |
103 /** |
108 * |
104 * |
109 * @since 7.1 |
105 * @since 7.1 |
110 * @param |
106 * @param |
111 * @return |
107 * @return |
112 */ |
108 */ |
113 TInt CHttpCacheLookupTable::ListFiles( RPointerArray<TDesC>& aFilenameList ); |
109 TInt CHttpCacheLookupTable::ListFiles( RPointerArray<TDesC>& aFilenameList ); |
114 |
110 |
115 /** |
111 /** |
116 * |
112 * |
117 * @since 3.1 |
113 * @since 3.1 |
118 * @param |
114 * @param |
119 * @return |
115 * @return |
120 */ |
116 */ |
121 const CArrayPtrFlat<CHttpCacheEntry>& Entries() const { return *iEntries; } |
117 const CArrayPtrFlat<CHttpCacheEntry>& Entries() const { return *iEntries; } |
122 |
118 |
123 /** |
119 /** |
124 * |
120 * |
125 * @since 3.1 |
121 * @since 3.1 |
126 * @param |
122 * @param |
127 * @return |
123 * @return |
128 */ |
124 */ |
129 void EraseCacheEntry( const TDesC8& aUrl ); |
125 void EraseCacheEntry( const TDesC8& aUrl ); |
130 |
126 |
131 /** |
127 /** |
132 * |
128 * |
133 * @since 3.1 |
129 * @since 3.1 |
134 * @param |
130 * @param |
135 * @return |
131 * @return |
136 */ |
132 */ |
137 void InternalizeL( RFileReadStream& aReadStream, const TDesC& aDirectory ); |
133 void InternalizeL( RReadStream& aReadStream, const TDesC& aDirectory ); |
138 |
134 |
139 /** |
135 /** |
140 * |
136 * |
141 * @since 3.1 |
137 * @since 3.1 |
142 * @param |
138 * @param |
143 * @return |
139 * @return |
144 */ |
140 */ |
145 void ExternalizeL( RFileWriteStream& aWriteStream ); |
141 void ExternalizeL( RWriteStream& aWriteStream, const TDesC& aDirectory ); |
146 |
142 |
147 /** |
143 /** |
148 * |
144 * |
149 * @since 3.1 |
145 * @since 3.1 |
150 * @param |
146 * @param |
151 * @return |
147 * @return |
152 */ |
148 */ |
153 void MergeL( CHttpCacheLookupTable* aHttpCacheLookupTable, RFs aRfs ); |
149 void MergeL( CHttpCacheLookupTable* aHttpCacheLookupTable, RFs aRfs ); |
154 |
150 |
155 /** |
151 /** |
156 * |
152 * |
157 * @since 7.1 |
153 * @since 7.1 |
158 * @param |
154 * @param |
159 * @return |
155 * @return |
160 */ |
156 */ |
161 void FindCacheEntryIndex( const CHttpCacheEntry& aCacheEntry, TInt* aIndex ); |
157 void BeginEntryIteration(THttpCacheLookupTableEntryIterator& aIter); |
|
158 |
|
159 /** |
|
160 * |
|
161 * @since 7.1 |
|
162 * @param |
|
163 * @return |
|
164 */ |
|
165 const CHttpCacheEntry* NextEntry(THttpCacheLookupTableEntryIterator& aIter); |
162 |
166 |
163 private: |
167 private: |
164 |
168 |
165 /** |
169 /** |
166 * Construct. |
170 * Construct. |
167 * @since 3.1 |
171 * @since 3.1 |
168 * @param |
172 * @param |
169 * @param |
173 * @param |
170 * @return CHttpCacheLookupTable object. |
174 * @return CHttpCacheLookupTable object. |
171 */ |
175 */ |
172 CHttpCacheLookupTable( CHttpCacheEvictionHandler& aEvictionHandler, CHttpCacheStreamHandler& aStreamHandler ); |
176 CHttpCacheLookupTable( CHttpCacheEvictionHandler& aEvictionHandler, CHttpCacheStreamHandler& aStreamHandler ); |
173 |
177 |
174 /** |
178 /** |
175 * By default Symbian 2nd phase constructor is private. |
179 * By default Symbian 2nd phase constructor is private. |
176 */ |
180 */ |
177 void ConstructL(); |
181 void ConstructL(); |
178 |
182 |
179 private: // |
183 private: // |
180 |
184 |
181 /** |
185 /** |
182 * |
186 * |
183 * @since 3.1 |
187 * @since 3.1 |
184 * @param |
188 * @param |
185 * @return |
189 * @return |
186 */ |
190 */ |
187 TInt InsertL( CHttpCacheEntry* aCacheEntry ); |
191 TInt InsertL( CHttpCacheEntry* aCacheEntry ); |
188 |
192 |
189 /** |
193 /** |
190 * |
194 * |
191 * @since 3.1 |
195 * @since 3.1 |
192 * @param |
196 * @param |
193 * @return |
197 * @return |
194 */ |
198 */ |
195 TInt Probe( const TDesC8& aKey, TBool aInsert ); |
199 TInt Probe( const TDesC8& aKey, TBool aInsert ); |
196 |
200 |
197 /** |
201 /** |
198 * |
202 * |
199 * @since 3.1 |
203 * @since 3.1 |
200 * @param |
204 * @param |
201 * @return |
205 * @return |
202 */ |
206 */ |
203 TInt HashUrl( const TDesC8& aUrl ); |
207 TInt HashUrl( const TDesC8& aUrl ); |
204 |
208 |
205 /** |
209 /** |
206 * |
210 * |
207 * @since 3.1 |
211 * @since 3.1 |
208 * @param |
212 * @param |
209 * @return |
213 * @return |
210 */ |
214 */ |
211 void ReHashL(); |
215 void ReHashL(); |
212 |
216 |
213 /** |
217 /** |
214 * |
218 * |
215 * @since 3.1 |
219 * @since 3.1 |
216 * @param |
220 * @param |
217 * @return |
221 * @return |
218 */ |
222 */ |
219 TUint NextPrime( TUint aNum ); |
223 TUint NextPrime( TUint aNum ); |
220 |
224 |
221 /** |
225 /** |
222 * |
226 * |
223 * @since 3.1 |
227 * @since 3.1 |
224 * @param |
228 * @param |
225 * @return |
229 * @return |
226 */ |
230 */ |
227 void Erase( TInt aPos ); |
231 void Erase( TInt aPos ); |
228 |
232 |
229 /** |
233 /** |
230 * |
234 * |
231 * @since 3.1 |
235 * @since 3.1 |
232 * @param |
236 * @param |
233 * @return |
237 * @return |
234 */ |
238 */ |
235 TBool Valid( TInt aPos ); |
239 TBool Valid( TInt aPos ); |
236 |
240 |
237 /** |
241 /** |
238 * |
242 * |
239 * @since 3.1 |
243 * @since 3.1 |
240 * @param |
244 * @param |
241 * @return |
245 * @return |
242 */ |
246 */ |
243 TBool Empty( TInt aPos ); |
247 TBool Empty( TInt aPos ); |
244 |
248 |
245 /** |
249 /** |
246 * |
250 * |
247 * @since 3.1 |
251 * @since 3.1 |
248 * @param |
252 * @param |
249 * @return |
253 * @return |
250 */ |
254 */ |
251 TBool Deleted( TInt aPos ); |
255 TBool Deleted( TInt aPos ); |
252 |
256 |
253 /** |
257 /** |
254 * |
258 * |
255 * @since 3.1 |
259 * @since 3.1 |
256 * @param |
260 * @param |
257 * @return |
261 * @return |
258 */ |
262 */ |
259 void SetDeleted( TInt aPos ); |
263 void SetDeleted( TInt aPos ); |
260 |
264 |
261 /** |
265 /** |
262 * |
266 * |
263 * @since 3.1 |
267 * @since 3.1 |
264 * @param |
268 * @param |
265 * @return |
269 * @return |
266 */ |
270 */ |
267 TBool BoundaryCheck( TInt aPos ); |
271 TBool BoundaryCheck( TInt aPos ); |
268 |
272 |
269 private: // Data |
273 private: // Data |
270 |
274 |
271 // hash table for cache entries |
275 // hash table for cache entries |
272 CArrayPtrFlat<CHttpCacheEntry>* iEntries; |
276 CArrayPtrFlat<CHttpCacheEntry>* iEntries; |
273 // number of entries in the hashtable |
277 // number of entries in the hashtable |
274 TInt iCount; |
278 TInt iCount; |
275 // |
279 // |
276 CHttpCacheEvictionHandler* iEvictionHandler; // not owned |
280 CHttpCacheEvictionHandler* iEvictionHandler; // not owned |
277 // |
281 // |
278 CHttpCacheStreamHandler* iStreamHandler; // not owned |
282 CHttpCacheStreamHandler* iStreamHandler; // not owned |
279 }; |
283 }; |
280 |
284 |
281 #endif // CHTTPCACHELOOKUPTABLE_H |
285 #endif // CHTTPCACHELOOKUPTABLE_H |
282 |
286 |
283 // End of File |
287 // End of File |