Pyrogenesis  trunk
Public Member Functions | Private Types | Private Attributes | List of all members
Cache< Key, Item, Manager, Divider > Class Template Reference

#include <cache_adt.h>

Public Member Functions

 Cache ()
 
void add (const Key &key, const Item &item, size_t size, size_t cost)
 
void remove (const Key &key)
 
bool retrieve (const Key &key, Item &item, size_t *psize=0, bool refill_credit=true)
 
bool peek (const Key &key, Item &item, size_t *psize=0)
 
bool remove_least_valuable (Item *pItem=0, size_t *pSize=0)
 
bool empty () const
 

Private Types

typedef CacheEntry< Item, Divider > Entry
 

Private Attributes

std::list< Entryentries_awaiting_eviction
 
Manager< Key, Entrymgr
 

Member Typedef Documentation

template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
typedef CacheEntry<Item, Divider> Cache< Key, Item, Manager, Divider >::Entry
private

Constructor & Destructor Documentation

template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
Cache< Key, Item, Manager, Divider >::Cache ( )
inline

Member Function Documentation

template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
void Cache< Key, Item, Manager, Divider >::add ( const Key &  key,
const Item &  item,
size_t  size,
size_t  cost 
)
inline
template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
bool Cache< Key, Item, Manager, Divider >::empty ( ) const
inline
template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
bool Cache< Key, Item, Manager, Divider >::peek ( const Key &  key,
Item &  item,
size_t *  psize = 0 
)
inline
template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
void Cache< Key, Item, Manager, Divider >::remove ( const Key &  key)
inline
template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
bool Cache< Key, Item, Manager, Divider >::remove_least_valuable ( Item *  pItem = 0,
size_t *  pSize = 0 
)
inline
template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
bool Cache< Key, Item, Manager, Divider >::retrieve ( const Key &  key,
Item &  item,
size_t *  psize = 0,
bool  refill_credit = true 
)
inline

Member Data Documentation

template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
std::list<Entry> Cache< Key, Item, Manager, Divider >::entries_awaiting_eviction
private
template<typename Key, typename Item, template< typename Key_, class Entry > class Manager = Landlord_Cached, class Divider = Divider_Naive>
Manager<Key, Entry> Cache< Key, Item, Manager, Divider >::mgr
private

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