ZNC  trunk
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Types | Protected Attributes | List of all members
TCacheMap< K, V > Class Template Reference

Insert an object with a time-to-live and check later if it still exists. More...

#include <Utils.h>

+ Collaboration diagram for TCacheMap< K, V >:

Public Member Functions

 TCacheMap (unsigned int uTTL=5000)
 
virtual ~TCacheMap ()
 
void AddItem (const K &Item)
 This function adds an item to the cache using the default time-to-live value. More...
 
void AddItem (const K &Item, unsigned int uTTL)
 This function adds an item to the cache using a custom time-to-live value. More...
 
void AddItem (const K &Item, const V &Val)
 This function adds an item to the cache using the default time-to-live value. More...
 
void AddItem (const K &Item, const V &Val, unsigned int uTTL)
 This function adds an item to the cache using a custom time-to-live value. More...
 
bool HasItem (const K &Item)
 Performs a Cleanup() and then checks to see if your item exists. More...
 
V * GetItem (const K &Item)
 Performs a Cleanup() and returns a pointer to the object, or NULL. More...
 
bool RemItem (const K &Item)
 Removes a specific item from the cache. More...
 
void Cleanup ()
 Cycles through the queue removing all of the stale entries. More...
 
void Clear ()
 Clear all entries. More...
 
void SetTTL (unsigned int u)
 
unsigned int GetTTL () const
 

Protected Types

typedef std::pair< unsigned
long long, V > 
value
 
typedef std::map< K, value >
::iterator 
iterator
 

Protected Attributes

std::map< K, valuem_mItems
 Map of cached items. More...
 
unsigned int m_uTTL
 Default time-to-live duration. More...
 

Detailed Description

template<typename K, typename V = bool>
class TCacheMap< K, V >

Insert an object with a time-to-live and check later if it still exists.

Author
prozac proza.nosp@m.c@ro.nosp@m.ttenb.nosp@m.oy.c.nosp@m.om

Member Typedef Documentation

template<typename K, typename V = bool>
typedef std::map<K, value>::iterator TCacheMap< K, V >::iterator
protected
template<typename K, typename V = bool>
typedef std::pair<unsigned long long, V> TCacheMap< K, V >::value
protected

Constructor & Destructor Documentation

template<typename K, typename V = bool>
TCacheMap< K, V >::TCacheMap ( unsigned int  uTTL = 5000)
inline
template<typename K, typename V = bool>
virtual TCacheMap< K, V >::~TCacheMap ( )
inlinevirtual

Member Function Documentation

template<typename K, typename V = bool>
void TCacheMap< K, V >::AddItem ( const K &  Item)
inline

This function adds an item to the cache using the default time-to-live value.

Parameters
Itemthe item to add to the cache

Referenced by TCacheMap< CString >::AddItem(), and CZNC::AddServerThrottle().

template<typename K, typename V = bool>
void TCacheMap< K, V >::AddItem ( const K &  Item,
unsigned int  uTTL 
)
inline

This function adds an item to the cache using a custom time-to-live value.

Parameters
Itemthe item to add to the cache
uTTLthe time-to-live for this specific item
template<typename K, typename V = bool>
void TCacheMap< K, V >::AddItem ( const K &  Item,
const V &  Val 
)
inline

This function adds an item to the cache using the default time-to-live value.

Parameters
Itemthe item to add to the cache
ValThe value associated with the key Item
template<typename K, typename V = bool>
void TCacheMap< K, V >::AddItem ( const K &  Item,
const V &  Val,
unsigned int  uTTL 
)
inline

This function adds an item to the cache using a custom time-to-live value.

Parameters
Itemthe item to add to the cache
ValThe value associated with the key Item
uTTLthe time-to-live for this specific item
template<typename K, typename V = bool>
void TCacheMap< K, V >::Cleanup ( )
inline

Cycles through the queue removing all of the stale entries.

Referenced by TCacheMap< CString >::GetItem(), and TCacheMap< CString >::HasItem().

template<typename K, typename V = bool>
void TCacheMap< K, V >::Clear ( )
inline

Clear all entries.

template<typename K, typename V = bool>
V* TCacheMap< K, V >::GetItem ( const K &  Item)
inline

Performs a Cleanup() and returns a pointer to the object, or NULL.

Parameters
ItemThe item to check for
Returns
Pointer to the item or NULL if there is no suitable one

Referenced by CZNC::GetServerThrottle().

template<typename K, typename V = bool>
unsigned int TCacheMap< K, V >::GetTTL ( ) const
inline

Referenced by CZNC::GetServerThrottle().

template<typename K, typename V = bool>
bool TCacheMap< K, V >::HasItem ( const K &  Item)
inline

Performs a Cleanup() and then checks to see if your item exists.

Parameters
ItemThe item to check for
Returns
true if item exists
template<typename K, typename V = bool>
bool TCacheMap< K, V >::RemItem ( const K &  Item)
inline

Removes a specific item from the cache.

Parameters
ItemThe item to be removed
Returns
true if item existed and was removed, false if it never existed

Referenced by TCacheMap< CString >::AddItem().

template<typename K, typename V = bool>
void TCacheMap< K, V >::SetTTL ( unsigned int  u)
inline

Referenced by CZNC::SetServerThrottle().

Member Data Documentation

template<typename K, typename V = bool>
std::map<K, value> TCacheMap< K, V >::m_mItems
protected
template<typename K, typename V = bool>
unsigned int TCacheMap< K, V >::m_uTTL
protected

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