luna engine
software engine
Loading...
Searching...
No Matches
luna::utils::vectorCache< value > Class Template Reference

a pretty optimal multithreaded vector cahce headeronly class. More...

#include <vectorCache.h>

Inheritance diagram for luna::utils::vectorCache< value >:
Collaboration diagram for luna::utils::vectorCache< value >:

Public Member Functions

 vectorCache ()
 creates vectorCache with default cache size is of 200 More...
 
 vectorCache (size_t maxCacheSize)
 creates vectorcache with defined size (recommended to have size less then 1000 objects. More...
 
 ~vectorCache ()
 destroys/deletes the cache :). More...
 
std::pair< cacheObject, value > putValue (cacheObject *key, value _value)
 returns a object in a vector cache using a key handle. More...
 
std::pair< cacheResult, value > getValue (cacheObject key)
 gets a stored cahe value using the key handle. More...
 
std::pair< cacheResult, value > setValue (cacheObject key, value _value)
 sets the current value of the given cacheObject key. More...
 
std::pair< cacheResult, value > eraseValue (cacheObject key)
 erases value of the given key. More...
 

Protected Attributes

uint64_t maxCacheSize
 
std::vector< uint64_t > handleCache
 
std::vector< value > valueCache
 
std::mutex lockGuard
 

Detailed Description

template<typename value>
class luna::utils::vectorCache< value >

a pretty optimal multithreaded vector cahce headeronly class.

Note
the vectorcache does not check for duplicate value's

Constructor & Destructor Documentation

◆ vectorCache() [1/2]

template<typename value >
luna::utils::vectorCache< value >::vectorCache ( )
inline

creates vectorCache with default cache size is of 200

◆ vectorCache() [2/2]

template<typename value >
luna::utils::vectorCache< value >::vectorCache ( size_t  maxCacheSize)
inline

creates vectorcache with defined size (recommended to have size less then 1000 objects.

Parameters
maxCacheSize

◆ ~vectorCache()

template<typename value >
luna::utils::vectorCache< value >::~vectorCache ( )
inline

destroys/deletes the cache :).

Member Function Documentation

◆ eraseValue()

template<typename value >
std::pair< cacheResult, value > luna::utils::vectorCache< value >::eraseValue ( cacheObject  key)
inline

erases value of the given key.

Parameters
cacheObjectkey
value_value
Returns
cacheOpSucces when value whas succesfully erased
cacheOpFailed when value could not be found or some other operation failed

◆ getValue()

template<typename value >
std::pair< cacheResult, value > luna::utils::vectorCache< value >::getValue ( cacheObject  key)
inline

gets a stored cahe value using the key handle.

Parameters
key
Returns

◆ putValue()

template<typename value >
std::pair< cacheObject, value > luna::utils::vectorCache< value >::putValue ( cacheObject key,
value  _value 
)
inline

returns a object in a vector cache using a key handle.

Parameters
keya handle to the cahce object
_valuethe cache object to store
Returns
std::pair<bool, value> when succesful returs overFlowKey and the overFLow cache value.

◆ setValue()

template<typename value >
std::pair< cacheResult, value > luna::utils::vectorCache< value >::setValue ( cacheObject  key,
value  _value 
)
inline

sets the current value of the given cacheObject key.

Parameters
cacheObjectkey the key to overwite
_valuethe value to overwrite the current value
Returns

Member Data Documentation

◆ handleCache

template<typename value >
std::vector<uint64_t> luna::utils::vectorCache< value >::handleCache
protected

◆ lockGuard

template<typename value >
std::mutex luna::utils::vectorCache< value >::lockGuard
mutableprotected

◆ maxCacheSize

template<typename value >
uint64_t luna::utils::vectorCache< value >::maxCacheSize
protected

◆ valueCache

template<typename value >
std::vector<value> luna::utils::vectorCache< value >::valueCache
protected

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