LibQuicR
Loading...
Searching...
No Matches
quicr::Cache< K, T > Class Template Reference

#include <cache.h>

Public Member Functions

 Cache (size_t duration, size_t interval, std::shared_ptr< TickService > tick_service)
 
 Cache ()=delete
 
 Cache (const Cache &)=default
 
 Cache (Cache &&) noexcept=default
 
Cacheoperator= (const Cache &)=default
 
Cacheoperator= (Cache &&) noexcept=default
 
size_t Size () const noexcept
 
bool Empty () const noexcept
 
void Insert (const K &key, const T &value, size_t ttl)
 
void Insert (const K &key, T &&value, size_t ttl)
 
bool Contains (const K &key) noexcept
 
bool Contains (const K &start_key, const K &end_key) noexcept
 
ValueType Get (const K &key) noexcept
 
std::vector< ValueType > Get (const K &start_key, const K &end_key) noexcept
 
ValueType First () noexcept
 
ValueType Last () noexcept
 
void Clear () noexcept
 

Protected Member Functions

void Advance ()
 
template<typename Value >
void InternalInsert (const K &key, Value value, size_t ttl)
 

Protected Attributes

const size_t duration_
 The duration in ticks of the entire queue.
 
const size_t interval_
 The interval at which buckets are cleared in ticks.
 
const size_t total_buckets_
 The total amount of buckets. Value is calculated by duration / interval.
 
IndexType bucket_index_ { 0 }
 The index in time of the current bucket.
 
TickType current_ticks_ { 0 }
 Last calculated tick value.
 
std::vector< BucketType > buckets_
 The memory storage for all keys to be managed.
 
CacheType cache_
 The cache of elements being stored.
 
std::shared_ptr< TickService > tick_service_
 Tick service for calculating new tick and jumps in time.
 

Detailed Description

template<typename K, typename T>
class quicr::Cache< K, T >
Examples
server.cpp.

Constructor & Destructor Documentation

◆ Cache() [1/4]

template<typename K , typename T >
quicr::Cache< K, T >::Cache ( size_t duration,
size_t interval,
std::shared_ptr< TickService > tick_service )
inline

◆ Cache() [2/4]

template<typename K , typename T >
quicr::Cache< K, T >::Cache ( )
delete

◆ Cache() [3/4]

template<typename K , typename T >
quicr::Cache< K, T >::Cache ( const Cache< K, T > & )
default

◆ Cache() [4/4]

template<typename K , typename T >
quicr::Cache< K, T >::Cache ( Cache< K, T > && )
defaultnoexcept

Member Function Documentation

◆ Advance()

template<typename K , typename T >
void quicr::Cache< K, T >::Advance ( )
inlineprotected

◆ Clear()

template<typename K , typename T >
void quicr::Cache< K, T >::Clear ( )
inlinenoexcept

◆ Contains() [1/2]

template<typename K , typename T >
bool quicr::Cache< K, T >::Contains ( const K & key)
inlinenoexcept

◆ Contains() [2/2]

template<typename K , typename T >
bool quicr::Cache< K, T >::Contains ( const K & start_key,
const K & end_key )
inlinenoexcept

◆ Empty()

template<typename K , typename T >
bool quicr::Cache< K, T >::Empty ( ) const
inlinenoexcept

◆ First()

template<typename K , typename T >
ValueType quicr::Cache< K, T >::First ( )
inlinenoexcept

◆ Get() [1/2]

template<typename K , typename T >
ValueType quicr::Cache< K, T >::Get ( const K & key)
inlinenoexcept

◆ Get() [2/2]

template<typename K , typename T >
std::vector< ValueType > quicr::Cache< K, T >::Get ( const K & start_key,
const K & end_key )
inlinenoexcept

◆ Insert() [1/2]

template<typename K , typename T >
void quicr::Cache< K, T >::Insert ( const K & key,
const T & value,
size_t ttl )
inline

◆ Insert() [2/2]

template<typename K , typename T >
void quicr::Cache< K, T >::Insert ( const K & key,
T && value,
size_t ttl )
inline

◆ InternalInsert()

template<typename K , typename T >
template<typename Value >
void quicr::Cache< K, T >::InternalInsert ( const K & key,
Value value,
size_t ttl )
inlineprotected

◆ Last()

template<typename K , typename T >
ValueType quicr::Cache< K, T >::Last ( )
inlinenoexcept

◆ operator=() [1/2]

template<typename K , typename T >
Cache & quicr::Cache< K, T >::operator= ( Cache< K, T > && )
defaultnoexcept

◆ operator=() [2/2]

template<typename K , typename T >
Cache & quicr::Cache< K, T >::operator= ( const Cache< K, T > & )
default

◆ Size()

template<typename K , typename T >
size_t quicr::Cache< K, T >::Size ( ) const
inlinenoexcept

Member Data Documentation

◆ bucket_index_

template<typename K , typename T >
IndexType quicr::Cache< K, T >::bucket_index_ { 0 }
protected

The index in time of the current bucket.

◆ buckets_

template<typename K , typename T >
std::vector<BucketType> quicr::Cache< K, T >::buckets_
protected

The memory storage for all keys to be managed.

◆ cache_

template<typename K , typename T >
CacheType quicr::Cache< K, T >::cache_
protected

The cache of elements being stored.

◆ current_ticks_

template<typename K , typename T >
TickType quicr::Cache< K, T >::current_ticks_ { 0 }
protected

Last calculated tick value.

◆ duration_

template<typename K , typename T >
const size_t quicr::Cache< K, T >::duration_
protected

The duration in ticks of the entire queue.

◆ interval_

template<typename K , typename T >
const size_t quicr::Cache< K, T >::interval_
protected

The interval at which buckets are cleared in ticks.

◆ tick_service_

template<typename K , typename T >
std::shared_ptr<TickService> quicr::Cache< K, T >::tick_service_
protected

Tick service for calculating new tick and jumps in time.

◆ total_buckets_

template<typename K , typename T >
const size_t quicr::Cache< K, T >::total_buckets_
protected

The total amount of buckets. Value is calculated by duration / interval.


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