olp-cpp-sdk  1.21.0
Public Types | Public Member Functions | Static Public Attributes | List of all members
olp::cache::KeyValueCache Class Referenceabstract

An interface for a cache that expects a key-value pair. More...

#include <KeyValueCache.h>

Inheritance diagram for olp::cache::KeyValueCache:
Inheritance graph
[legend]

Public Types

using ValueType = std::vector< unsigned char >
 The value type that is stored in the DB.
 
using ValueTypePtr = std::shared_ptr< ValueType >
 The shared pointer type of the DB entry.
 
using KeyListType = std::vector< std::string >
 An alias for the list of keys to be protected or released.
 

Public Member Functions

virtual bool Put (const std::string &key, const boost::any &value, const Encoder &encoder, time_t expiry=kDefaultExpiry)=0
 Stores the key-value pair in the cache. More...
 
virtual bool Put (const std::string &key, const ValueTypePtr value, time_t expiry=kDefaultExpiry)=0
 Stores the raw binary data as a value in the cache. More...
 
virtual boost::any Get (const std::string &key, const Decoder &encoder)=0
 Gets the key-value pair from the cache. More...
 
virtual ValueTypePtr Get (const std::string &key)=0
 Gets the key and binary data from the cache. More...
 
virtual bool Remove (const std::string &key)=0
 Removes the key-value pair from the cache. More...
 
virtual bool RemoveKeysWithPrefix (const std::string &prefix)=0
 Removes the values with the keys that match the given prefix from the cache. More...
 
virtual bool Contains (const std::string &key) const
 Checks if the key is in the cache. More...
 
virtual bool Protect (const KeyListType &keys)
 Protects keys from eviction. More...
 
virtual bool Release (const KeyListType &keys)
 Removes a list of keys from protection. More...
 
virtual bool IsProtected (const std::string &key) const
 Checks if key is protected. More...
 
virtual void Promote (const std::string &key)
 Promotes a key in the cache LRU when applicable. More...
 
virtual OperationOutcome< ValueTypePtrRead (const std::string &key)
 Gets the binary data from the cache. More...
 
virtual OperationOutcomeEmpty Write (const std::string &key, const ValueTypePtr &value, time_t expiry=kDefaultExpiry)
 Stores the raw binary data as a value in the cache. More...
 
virtual OperationOutcomeEmpty Delete (const std::string &key)
 Removes the key-value pair from the cache. More...
 
virtual OperationOutcomeEmpty DeleteByPrefix (const std::string &prefix)
 Removes the values with the keys that match the given prefix from the cache. More...
 

Static Public Attributes

static constexpr time_t kDefaultExpiry = std::numeric_limits<time_t>::max()
 The expiry time of the key-value pair. More...
 

Detailed Description

An interface for a cache that expects a key-value pair.

Member Function Documentation

◆ Contains()

virtual bool olp::cache::KeyValueCache::Contains ( const std::string &  key) const
inlinevirtual

Checks if the key is in the cache.

Parameters
keyThe key for the value.
Returns
True if the key is cached; false otherwise.

Reimplemented in olp::cache::DefaultCache.

◆ Delete()

virtual OperationOutcomeEmpty olp::cache::KeyValueCache::Delete ( const std::string &  key)
inlinevirtual

Removes the key-value pair from the cache.

Parameters
keyThe key for the value.
Returns
An error if the data could not be removed from the cache.

Reimplemented in olp::cache::DefaultCache.

◆ DeleteByPrefix()

virtual OperationOutcomeEmpty olp::cache::KeyValueCache::DeleteByPrefix ( const std::string &  prefix)
inlinevirtual

Removes the values with the keys that match the given prefix from the cache.

Parameters
prefixThe prefix that matches the keys.
Returns
An error if the data could not be removed from the cache.

Reimplemented in olp::cache::DefaultCache.

◆ Get() [1/2]

virtual ValueTypePtr olp::cache::KeyValueCache::Get ( const std::string &  key)
pure virtual

Gets the key and binary data from the cache.

Parameters
keyThe key that is used to look for the binary data.
Returns
The key and binary data.

Implemented in olp::cache::DefaultCache.

◆ Get() [2/2]

virtual boost::any olp::cache::KeyValueCache::Get ( const std::string &  key,
const Decoder &  encoder 
)
pure virtual

Gets the key-value pair from the cache.

Parameters
keyThe key that is used to look for the key-value pair.
encoderDecodes the value from a string.
Returns
The key-value pair.

Implemented in olp::cache::DefaultCache.

◆ IsProtected()

virtual bool olp::cache::KeyValueCache::IsProtected ( const std::string &  key) const
inlinevirtual

Checks if key is protected.

Parameters
keyThe key or prefix.
Returns
True if the key are in the protected list; false otherwise.

Reimplemented in olp::cache::DefaultCache.

◆ Promote()

virtual void olp::cache::KeyValueCache::Promote ( const std::string &  key)
inlinevirtual

Promotes a key in the cache LRU when applicable.

Parameters
keyThe key to promote in the cache LRU.

Reimplemented in olp::cache::DefaultCache.

◆ Protect()

virtual bool olp::cache::KeyValueCache::Protect ( const KeyListType keys)
inlinevirtual

Protects keys from eviction.

You can use keys or prefixes to protect single keys or entire catalogs, layers, or version.

Parameters
keysThe list of keys or prefixes.
Returns
True if the keys are added to the protected list; false otherwise.

Reimplemented in olp::cache::DefaultCache.

◆ Put() [1/2]

virtual bool olp::cache::KeyValueCache::Put ( const std::string &  key,
const boost::any &  value,
const Encoder &  encoder,
time_t  expiry = kDefaultExpiry 
)
pure virtual

Stores the key-value pair in the cache.

Parameters
keyThe key for this value.
valueThe value of any type.
encoderEncodes the specified value into a string.
expiryThe expiry time (in seconds) of the key-value pair.
Returns
True if the operation is successful; false otherwise.

Implemented in olp::cache::DefaultCache.

◆ Put() [2/2]

virtual bool olp::cache::KeyValueCache::Put ( const std::string &  key,
const ValueTypePtr  value,
time_t  expiry = kDefaultExpiry 
)
pure virtual

Stores the raw binary data as a value in the cache.

Parameters
keyThe key for this value.
valueThe binary data that should be stored.
expiryThe expiry time (in seconds) of the key-value pair.
Returns
True if the operation is successful; false otherwise.

Implemented in olp::cache::DefaultCache.

◆ Read()

virtual OperationOutcome<ValueTypePtr> olp::cache::KeyValueCache::Read ( const std::string &  key)
inlinevirtual

Gets the binary data from the cache.

Parameters
keyThe key that is used to look for the binary data.
Returns
The binary data or an error if the data could not be retrieved from the cache.

Reimplemented in olp::cache::DefaultCache.

◆ Release()

virtual bool olp::cache::KeyValueCache::Release ( const KeyListType keys)
inlinevirtual

Removes a list of keys from protection.

The provided keys can be full keys or prefixes only.

Parameters
keysThe list of keys or prefixes.
Returns
True if the keys are removed from the protected list; false otherwise.

Reimplemented in olp::cache::DefaultCache.

◆ Remove()

virtual bool olp::cache::KeyValueCache::Remove ( const std::string &  key)
pure virtual

Removes the key-value pair from the cache.

Parameters
keyThe key for the value.
Returns
True if the operation is successful; false otherwise.

Implemented in olp::cache::DefaultCache.

◆ RemoveKeysWithPrefix()

virtual bool olp::cache::KeyValueCache::RemoveKeysWithPrefix ( const std::string &  prefix)
pure virtual

Removes the values with the keys that match the given prefix from the cache.

Parameters
prefixThe prefix that matches the keys.
Returns
True if the values are removed; false otherwise.

Implemented in olp::cache::DefaultCache.

◆ Write()

virtual OperationOutcomeEmpty olp::cache::KeyValueCache::Write ( const std::string &  key,
const ValueTypePtr value,
time_t  expiry = kDefaultExpiry 
)
inlinevirtual

Stores the raw binary data as a value in the cache.

Parameters
keyThe key for this value.
valueThe binary data that should be stored.
expiryThe expiry time (in seconds) of the key-value pair.
Returns
An error if the data could not be written to the cache.

Reimplemented in olp::cache::DefaultCache.

Member Data Documentation

◆ kDefaultExpiry

constexpr time_t olp::cache::KeyValueCache::kDefaultExpiry = std::numeric_limits<time_t>::max()
staticconstexpr

The expiry time of the key-value pair.

By default, the key-value pair has no expiry time.


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