libcommonc++  0.7
AbstractCache< K, T > Class Template Referenceabstract

An abstract base class for a general-purpose LRU-cache with a maximum capacity. More...

#include <AbstractCache.h++>

Inheritance diagram for AbstractCache< K, T >:

Public Member Functions

virtual ~AbstractCache ()
 Destructor. More...
 
virtual T * get (const K &key)=0
 Look up an item in the cache. More...
 
T * operator[] (const K &key)
 Index operator. More...
 
bool contains (const K &key) const
 Test if the cache contains an item with the specified key. More...
 
virtual void clear ()
 Remove all items from the cache. More...
 
uint_t getMaxSize () const
 Return the maximum size of the cache, i.e., the maximum number of items that the cache can hold. More...
 
uint_t getSize () const
 Return the current size of the cache, i.e., the number of items in the cache. More...
 
bool isEmpty () const
 Test if the cache is empty. More...
 
bool isFull () const
 Test if the cache is full. More...
 

Protected Member Functions

 AbstractCache (uint_t maxSize)
 Construct a new cache with the given maximum size. More...
 
virtual void onRemove (const K &key, T *item)
 A method that is called whenever an item is being removed from the cache, but just before it has been deleted. More...
 

Detailed Description

template<typename K, typename T>
class ccxx::AbstractCache< K, T >

An abstract base class for a general-purpose LRU-cache with a maximum capacity.

The cache maintains a key/value map, and takes ownership of its items. If the cache is at full capacity when a new item is inserted, the least recently accessed item is removed to make room.

Whenever an item is being permanently removed from the cache (e.g., as a result of a call to clear() or the destructor) the onRemove() method is called just before the item is deleted.

Author
Mark Lindner

Constructor & Destructor Documentation

◆ ~AbstractCache()

virtual ~AbstractCache ( )
virtual

Destructor.

Clears the cache.

◆ AbstractCache()

AbstractCache ( uint_t  maxSize)
protected

Construct a new cache with the given maximum size.

Parameters
maxSizeThe maximum number of items that the cache will hold. If 0, the value 1 will be used instead.

Member Function Documentation

◆ clear()

virtual void clear ( )
virtual

Remove all items from the cache.

Reimplemented in StaticCache< K, T >.

◆ contains()

bool contains ( const K &  key) const

Test if the cache contains an item with the specified key.

Parameters
keyThe key.
Returns
true the cache contains an item with the specified key, false otherwise.

◆ get()

virtual T* get ( const K &  key)
pure virtual

Look up an item in the cache.

Parameters
keyThe item key.
Returns
The item associated with the key, or NULL if no item with the specified key was found.

Implemented in DynamicCache< K, T >, and StaticCache< K, T >.

◆ getMaxSize()

uint_t getMaxSize ( ) const
inline

Return the maximum size of the cache, i.e., the maximum number of items that the cache can hold.

◆ getSize()

uint_t getSize ( ) const
inline

Return the current size of the cache, i.e., the number of items in the cache.

◆ isEmpty()

bool isEmpty ( ) const
inline

Test if the cache is empty.

◆ isFull()

bool isFull ( ) const
inline

Test if the cache is full.

◆ onRemove()

virtual void onRemove ( const K &  key,
T *  item 
)
protectedvirtual

A method that is called whenever an item is being removed from the cache, but just before it has been deleted.

The default implementation is a no-op. Subclasses may override this method to do any necessary cleanup of the item before it is deleted, but should not delete the item itself.

Parameters
keyThe key for the item being removed.
itemThe item being removed.

◆ operator[]()

T* operator[] ( const K &  key)
inline

Index operator.

Equivalent to get().


The documentation for this class was generated from the following file: