1 #ifndef PCAPPP_LRU_LIST     2 #define PCAPPP_LRU_LIST     7 #if __cplusplus > 199711L || _MSC_VER >= 1800    32         typedef typename std::list<T>::iterator ListIterator;
    33         typedef typename std::map<T, ListIterator>::iterator MapIterator;
    54         int put(
const T& element, T* deletedValue = NULL)
    56             m_CacheItemsList.push_front(element);
    59             std::pair<MapIterator, bool> pair = m_CacheItemsMap.insert(std::make_pair(element, m_CacheItemsList.begin()));
    60             if (pair.second == 
false) 
    62                 m_CacheItemsList.erase(pair.first->second);
    63                 pair.first->second = m_CacheItemsList.begin();
    66             if (m_CacheItemsMap.size() > m_MaxSize)
    68                 ListIterator lruIter = m_CacheItemsList.end();
    71                 if (deletedValue != NULL)
    72 #if __cplusplus > 199711L || _MSC_VER >= 1800    73                     *deletedValue = std::move(*lruIter);
    75                     *deletedValue = *lruIter;
    77                 m_CacheItemsMap.erase(*lruIter);
    78                 m_CacheItemsList.erase(lruIter);
    91             return m_CacheItemsList.front();
   100             return m_CacheItemsList.back();
   109             MapIterator iter = m_CacheItemsMap.find(element);
   110             if (iter == m_CacheItemsMap.end())
   113             m_CacheItemsList.erase(iter->second);
   114             m_CacheItemsMap.erase(iter);
   125         size_t getSize()
 const { 
return m_CacheItemsMap.size(); }
   128         std::list<T> m_CacheItemsList;
   129         std::map<T, ListIterator> m_CacheItemsMap;
 The main namespace for the PcapPlusPlus lib. 
const T & getLRUElement() const
Definition: LRUList.h:98
size_t getSize() const
Definition: LRUList.h:125
int put(const T &element, T *deletedValue=NULL)
Definition: LRUList.h:54
size_t getMaxSize() const
Definition: LRUList.h:120
const T & getMRUElement() const
Definition: LRUList.h:89
void eraseElement(const T &element)
Definition: LRUList.h:107
LRUList(size_t maxSize)
Definition: LRUList.h:39