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

#include <map.h>

Inherits ccf::kv::GetName.

Public Types

using ReadOnlyHandle = ccf::kv::ReadableMapHandle< K, V, KSerialiser, VSerialiser >
 
using WriteOnlyHandle = ccf::kv::WriteableMapHandle< K, V, KSerialiser, VSerialiser >
 
using Handle = ccf::kv::MapHandle< K, V, KSerialiser, VSerialiser >
 
using Diff = ccf::kv::MapDiff< K, V, KSerialiser, VSerialiser >
 
using Write = std::map< K, std::optional< V > >
 
using CommitHook = CommitHook< Write >
 
using MapHook = MapHook< Write >
 
using Key = K
 
using Value = V
 
using KeySerialiser = KSerialiser
 
using ValueSerialiser = VSerialiser
 

Public Member Functions

 GetName (const std::string &s)
 
- Public Member Functions inherited from ccf::kv::GetName
 GetName (const std::string &s)
 
virtual ~GetName ()=default
 
const std::string & get_name () const
 

Static Public Member Functions

static ccf::kv::untyped::CommitHook wrap_commit_hook (const CommitHook &hook)
 
static ccf::kv::untyped::MapHook wrap_map_hook (const MapHook &hook)
 

Additional Inherited Members

- Protected Attributes inherited from ccf::kv::GetName
std::string name
 

Detailed Description

template<typename K, typename V, typename KSerialiser, typename VSerialiser>
class ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >

Defines the schema of a map accessed by a ccf::Tx, exposing associated types. This map is an unordered associative container of key-value pairs. Each key, if defined, is associated with a value, and can be used to efficiently lookup that value.

K defines the type of the Key which indexes each entry, while V is the type of the Value associated with a given Key. KSerialiser and VSerialiser determine how each K and V are serialised and deserialised, so they may be written to the ledger and replicated by the consensus algorithm. Note that equality is always evaluated on the serialised form; if unequal Ks produce the same serialisation, they will coincide within this map. Serialiser which leverages existing JSON serialisation is provided by CCF.

Member Typedef Documentation

◆ CommitHook

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::CommitHook = CommitHook<Write>

◆ Diff

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

◆ Handle

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::Handle = ccf::kv::MapHandle<K, V, KSerialiser, VSerialiser>

◆ Key

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::Key = K

◆ KeySerialiser

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::KeySerialiser = KSerialiser

◆ MapHook

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::MapHook = MapHook<Write>

◆ ReadOnlyHandle

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::ReadOnlyHandle = ccf::kv::ReadableMapHandle<K, V, KSerialiser, VSerialiser>

◆ Value

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::Value = V

◆ ValueSerialiser

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::ValueSerialiser = VSerialiser

◆ Write

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::Write = std::map<K, std::optional<V> >

◆ WriteOnlyHandle

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
using ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::WriteOnlyHandle = ccf::kv::WriteableMapHandle<K, V, KSerialiser, VSerialiser>

Member Function Documentation

◆ GetName()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
ccf::kv::GetName::GetName ( const std::string &  s)
inline

◆ wrap_commit_hook()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
static ccf::kv::untyped::CommitHook ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::wrap_commit_hook ( const CommitHook hook)
inlinestatic

◆ wrap_map_hook()

template<typename K , typename V , typename KSerialiser , typename VSerialiser >
static ccf::kv::untyped::MapHook ccf::kv::TypedMap< K, V, KSerialiser, VSerialiser >::wrap_map_hook ( const MapHook hook)
inlinestatic

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