Point Cloud Library (PCL) 1.15.1
Loading...
Searching...
No Matches
LRUCache< KeyT, CacheItemT > Class Template Reference

#include <pcl/outofcore/impl/lru_cache.hpp>

Public Types

using KeyIndex = std::list<KeyT>
using KeyIndexIterator = typename KeyIndex::iterator
using Cache = std::map<KeyT, std::pair<CacheItemT, typename KeyIndex::iterator> >
using CacheIterator = typename Cache::iterator

Public Member Functions

 LRUCache (std::size_t c)
bool hasKey (const KeyT &k)
CacheItemT & get (const KeyT &k)
void touch (const KeyT &key)
bool insert (const KeyT &key, const CacheItemT &value)
void setCapacity (std::size_t capacity)
CacheItemT & tailItem ()
std::size_t sizeOf (const CacheItemT &value)
bool evict (int item_count=1)

Public Attributes

std::size_t capacity_
std::size_t size_ {0}
KeyIndex key_index_
Cache cache_

Detailed Description

template<typename KeyT, typename CacheItemT>
class LRUCache< KeyT, CacheItemT >

Definition at line 30 of file lru_cache.hpp.

Member Typedef Documentation

◆ Cache

template<typename KeyT, typename CacheItemT>
using LRUCache< KeyT, CacheItemT >::Cache = std::map<KeyT, std::pair<CacheItemT, typename KeyIndex::iterator> >

Definition at line 37 of file lru_cache.hpp.

◆ CacheIterator

template<typename KeyT, typename CacheItemT>
using LRUCache< KeyT, CacheItemT >::CacheIterator = typename Cache::iterator

Definition at line 38 of file lru_cache.hpp.

◆ KeyIndex

template<typename KeyT, typename CacheItemT>
using LRUCache< KeyT, CacheItemT >::KeyIndex = std::list<KeyT>

Definition at line 34 of file lru_cache.hpp.

◆ KeyIndexIterator

template<typename KeyT, typename CacheItemT>
using LRUCache< KeyT, CacheItemT >::KeyIndexIterator = typename KeyIndex::iterator

Definition at line 35 of file lru_cache.hpp.

Constructor & Destructor Documentation

◆ LRUCache()

template<typename KeyT, typename CacheItemT>
LRUCache< KeyT, CacheItemT >::LRUCache ( std::size_t c)
inline

Definition at line 40 of file lru_cache.hpp.

Member Function Documentation

◆ evict()

template<typename KeyT, typename CacheItemT>
bool LRUCache< KeyT, CacheItemT >::evict ( int item_count = 1)
inline

Definition at line 148 of file lru_cache.hpp.

Referenced by LRUCache< std::string, CloudDataCacheItem >::insert().

◆ get()

template<typename KeyT, typename CacheItemT>
CacheItemT & LRUCache< KeyT, CacheItemT >::get ( const KeyT & k)
inline

Definition at line 53 of file lru_cache.hpp.

◆ hasKey()

template<typename KeyT, typename CacheItemT>
bool LRUCache< KeyT, CacheItemT >::hasKey ( const KeyT & k)
inline

Definition at line 47 of file lru_cache.hpp.

◆ insert()

template<typename KeyT, typename CacheItemT>
bool LRUCache< KeyT, CacheItemT >::insert ( const KeyT & key,
const CacheItemT & value )
inline

Definition at line 79 of file lru_cache.hpp.

◆ setCapacity()

template<typename KeyT, typename CacheItemT>
void LRUCache< KeyT, CacheItemT >::setCapacity ( std::size_t capacity)
inline

Definition at line 128 of file lru_cache.hpp.

◆ sizeOf()

template<typename KeyT, typename CacheItemT>
std::size_t LRUCache< KeyT, CacheItemT >::sizeOf ( const CacheItemT & value)
inline

Definition at line 141 of file lru_cache.hpp.

◆ tailItem()

template<typename KeyT, typename CacheItemT>
CacheItemT & LRUCache< KeyT, CacheItemT >::tailItem ( )
inline

Definition at line 134 of file lru_cache.hpp.

◆ touch()

template<typename KeyT, typename CacheItemT>
void LRUCache< KeyT, CacheItemT >::touch ( const KeyT & key)
inline

Definition at line 67 of file lru_cache.hpp.

Referenced by LRUCache< std::string, CloudDataCacheItem >::insert().

Member Data Documentation

◆ cache_

template<typename KeyT, typename CacheItemT>
Cache LRUCache< KeyT, CacheItemT >::cache_

Definition at line 178 of file lru_cache.hpp.

◆ capacity_

template<typename KeyT, typename CacheItemT>
std::size_t LRUCache< KeyT, CacheItemT >::capacity_

Definition at line 169 of file lru_cache.hpp.

◆ key_index_

template<typename KeyT, typename CacheItemT>
KeyIndex LRUCache< KeyT, CacheItemT >::key_index_

Definition at line 175 of file lru_cache.hpp.

◆ size_

template<typename KeyT, typename CacheItemT>
std::size_t LRUCache< KeyT, CacheItemT >::size_ {0}

Definition at line 172 of file lru_cache.hpp.


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