CCF
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser > Class Template Reference

#include <map_diff.h>

Inherits ccf::kv::AbstractHandle.

Public Types

using KeyType = K
 
using ValueType = V
 

Public Member Functions

 MapDiff (ccf::kv::untyped::MapDiff map_diff_)
 
 MapDiff (ccf::kv::untyped::ChangeSet &changes, const std::string &map_name)
 
std::optional< std::optional< V > > get (const K &key)
 
bool has (const K &key)
 
bool is_deleted (const K &key)
 
template<class F >
void foreach (F &&f)
 
template<class F >
void foreach_key (F &&f)
 
template<class F >
void foreach_value (F &&f)
 
size_t size ()
 
- Public Member Functions inherited from ccf::kv::AbstractHandle
virtual ~AbstractHandle ()=default
 

Protected Attributes

ccf::kv::untyped::MapDiff map_diff
 

Member Typedef Documentation

◆ KeyType

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::KeyType = K

◆ ValueType

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::ValueType = V

Constructor & Destructor Documentation

◆ MapDiff() [1/2]

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::MapDiff ( ccf::kv::untyped::MapDiff< K, V, KSerialiser, VSerialiser >  map_diff_)
inline

◆ MapDiff() [2/2]

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::MapDiff ( ccf::kv::untyped::ChangeSet changes,
const std::string &  map_name 
)
inline

Member Function Documentation

◆ foreach()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
template<class F >
void ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::foreach ( F &&  f)
inline

Iterate over all entries in the map.

The passed functor should have the signature bool(const K& k, const std::optional<V>& v). The iteration order is undefined. A value of nullopt indicates that the key was deleted. Return true to continue iteration, or return false from any invocation to terminate the iteration at that point - the functor will not be invoked again after it returns false.

Template Parameters
FFunctor type. Should usually be derived implicitly from f
Parameters
fFunctor instance, taking (const K& k, const std::optional<V>& v) and returning a bool. Return value determines whether the iteration should continue (true) or stop (false)

◆ foreach_key()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
template<class F >
void ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::foreach_key ( F &&  f)
inline

Iterate over all keys in the map.

Template Parameters
FFunctor type. Should usually be derived implicitly from f
Parameters
fFunctor instance, taking (const K& k) and returning a bool. Return value determines whether the iteration should continue (true) or stop (false)

◆ foreach_value()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
template<class F >
void ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::foreach_value ( F &&  f)
inline

Iterate over all values in the map.

Template Parameters
FFunctor type. Should usually be derived implicitly from f
Parameters
fFunctor instance, taking (const std::optional<V>& v) and returning a bool. Return value determines whether the iteration should continue (true) or stop (false)

◆ get()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
std::optional< std::optional< V > > ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::get ( const K &  key)
inline

Get value for key.

Parameters
keyKey to read
Returns
nullopt if key does not exist, optional<nullopt> if key exists but was deleted and the value if it exists and was not deleted.

◆ has()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
bool ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::has ( const K &  key)
inline

Test if key is present and not deleted.

Parameters
keyKey to read
Returns
Boolean true iff key exists

◆ is_deleted()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
bool ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::is_deleted ( const K &  key)
inline

Test if key is deleted in this diff.

Parameters
keyKey to read
Returns
Boolean true iff key was deleted

◆ size()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
size_t ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::size ( )
inline

Returns number of entries in this map.

Returns
Count of entries

Member Data Documentation

◆ map_diff

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
ccf::kv::untyped::MapDiff ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >::map_diff
protected

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