ZNC trunk
Loading...
Searching...
No Matches
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.
void AddItem (const K &Item, unsigned int uTTL)
 This function adds an item to the cache using a custom time-to-live value.
void AddItem (const K &Item, const V &Val)
 This function adds an item to the cache using the default time-to-live value.
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.
bool HasItem (const K &Item)
 Performs a Cleanup() and then checks to see if your item exists.
V * GetItem (const K &Item)
 Performs a Cleanup() and returns a pointer to the object, or nullptr.
bool RemItem (const K &Item)
 Removes a specific item from the cache.
void Cleanup ()
 Cycles through the queue removing all of the stale entries.
void Clear ()
 Clear all entries.
std::map< K, V > GetItems ()
 Returns all entries.
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.
unsigned int m_uTTL
 Default time-to-live duration.

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

◆ iterator

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

◆ value

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

Constructor & Destructor Documentation

◆ TCacheMap()

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

References m_mItems, and m_uTTL.

◆ ~TCacheMap()

template<typename K, typename V = bool>
virtual TCacheMap< K, V >::~TCacheMap ( )
inlinevirtual

Member Function Documentation

◆ AddItem() [1/4]

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

References AddItem(), and m_uTTL.

Referenced by AddItem().

◆ AddItem() [2/4]

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

References AddItem(), and m_uTTL.

Referenced by AddItem().

◆ AddItem() [3/4]

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

References CUtils::GetMillTime(), m_mItems, and RemItem().

◆ AddItem() [4/4]

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

References AddItem().

Referenced by AddItem().

◆ Cleanup()

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

Cycles through the queue removing all of the stale entries.

References CUtils::GetMillTime(), and m_mItems.

Referenced by GetItem(), GetItems(), and HasItem().

◆ Clear()

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

Clear all entries.

References m_mItems.

◆ GetItem()

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 nullptr.

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

References Cleanup(), and m_mItems.

◆ GetItems()

template<typename K, typename V = bool>
std::map< K, V > TCacheMap< K, V >::GetItems ( )
inline

Returns all entries.

References Cleanup(), and m_mItems.

◆ GetTTL()

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

References m_uTTL.

◆ HasItem()

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

References Cleanup(), and m_mItems.

◆ RemItem()

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

References m_mItems.

Referenced by AddItem().

◆ SetTTL()

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

References m_uTTL.

Member Data Documentation

◆ m_mItems

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

Map of cached items.

The value portion of the map is for the expire time

Referenced by TCacheMap(), AddItem(), Cleanup(), Clear(), GetItem(), GetItems(), HasItem(), and RemItem().

◆ m_uTTL

template<typename K, typename V = bool>
unsigned int TCacheMap< K, V >::m_uTTL
protected

Default time-to-live duration.

Referenced by TCacheMap(), AddItem(), AddItem(), GetTTL(), and SetTTL().


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