diff options
Diffstat (limited to 'src/cache.h')
-rw-r--r-- | src/cache.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/cache.h b/src/cache.h index 98775d2..53b4f7a 100644 --- a/src/cache.h +++ b/src/cache.h | |||
@@ -228,6 +228,13 @@ namespace Bu | |||
228 | return hEnt.has( cId ) || pStore->has( cId ); | 228 | return hEnt.has( cId ) || pStore->has( cId ); |
229 | } | 229 | } |
230 | 230 | ||
231 | /** | ||
232 | * Retrieve an object from the cache and return a pointer to it. | ||
233 | * The object returned may be loaded from backend storage if needed, | ||
234 | * or the currently live object will be returned. | ||
235 | *@param cId The id of the object to load. | ||
236 | *@returns A pointer to the object. | ||
237 | */ | ||
231 | Ptr get( const keytype &cId ) | 238 | Ptr get( const keytype &cId ) |
232 | { | 239 | { |
233 | TRACE( cId ); | 240 | TRACE( cId ); |
@@ -242,6 +249,16 @@ namespace Bu | |||
242 | } | 249 | } |
243 | } | 250 | } |
244 | 251 | ||
252 | /** | ||
253 | * Retrieve a handle to an object without loading it now. This function | ||
254 | * will return a pointer that has not yet been "realized" but can be | ||
255 | * used normally. Upon initial use in any way the object will be | ||
256 | * loaded from the cache, either linking against the already loaded | ||
257 | * object or loading it fresh from the backend storage. The advantage | ||
258 | * of this is that you recieve a usable handle to the data, but it | ||
259 | * does not count as a reference yet, meaning that the data is loaded | ||
260 | * when you need it, not before. | ||
261 | */ | ||
245 | Ptr getLazy( const keytype &cId ) | 262 | Ptr getLazy( const keytype &cId ) |
246 | { | 263 | { |
247 | TRACE( cId ); | 264 | TRACE( cId ); |
@@ -297,7 +314,8 @@ namespace Bu | |||
297 | hEnt.erase( cId ); | 314 | hEnt.erase( cId ); |
298 | } | 315 | } |
299 | 316 | ||
300 | Bu::List<keytype> getKeys() | 317 | typedef Bu::List<keytype> KeyList; |
318 | KeyList getKeys() | ||
301 | { | 319 | { |
302 | return pStore->getKeys(); | 320 | return pStore->getKeys(); |
303 | } | 321 | } |