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

#include <set.h>

Inherits ccf::kv::GetName.

Public Types

using ReadOnlyHandle = ccf::kv::ReadableSetHandle< K, KSerialiser >
 
using WriteOnlyHandle = ccf::kv::WriteableSetHandle< K, KSerialiser, Unit >
 
using Handle = ccf::kv::SetHandle< K, KSerialiser, Unit >
 
using Write = std::map< K, std::optional< ccf::kv::serialisers::SerialisedEntry > >
 
using MapHook = MapHook< Write >
 
using CommitHook = CommitHook< Write >
 
using Key = K
 
using KeySerialiser = KSerialiser
 

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 KSerialiser, typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
class ccf::kv::TypedSet< K, KSerialiser, Unit >

Defines the schema of a set type accessed by a ccf::Tx. This set is an unordered container of unique keys. Each key is either present or missing within the set, and key presence can be efficiently tested.

K defines the type of each entry in this set. KSerialiser determines how each K is 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 set.

This is implemented as a ccf::kv::Map from K to Unit, and the serialisation of the unit values is overridable with the Unit template parameter.

Member Typedef Documentation

◆ CommitHook

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedSet< K, KSerialiser, Unit >::CommitHook = CommitHook<Write>

◆ Handle

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedSet< K, KSerialiser, Unit >::Handle = ccf::kv::SetHandle<K, KSerialiser, Unit>

◆ Key

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedSet< K, KSerialiser, Unit >::Key = K

◆ KeySerialiser

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedSet< K, KSerialiser, Unit >::KeySerialiser = KSerialiser

◆ MapHook

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedSet< K, KSerialiser, Unit >::MapHook = MapHook<Write>

◆ ReadOnlyHandle

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedSet< K, KSerialiser, Unit >::ReadOnlyHandle = ccf::kv::ReadableSetHandle<K, KSerialiser>

◆ Write

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedSet< K, KSerialiser, Unit >::Write = std::map<K, std::optional<ccf::kv::serialisers::SerialisedEntry> >

◆ WriteOnlyHandle

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedSet< K, KSerialiser, Unit >::WriteOnlyHandle = ccf::kv::WriteableSetHandle<K, KSerialiser, Unit>

Member Function Documentation

◆ GetName()

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
ccf::kv::GetName::GetName ( const std::string &  s)
inline

◆ wrap_commit_hook()

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
static ccf::kv::untyped::CommitHook ccf::kv::TypedSet< K, KSerialiser, Unit >::wrap_commit_hook ( const CommitHook hook)
inlinestatic

◆ wrap_map_hook()

template<typename K , typename KSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
static ccf::kv::untyped::MapHook ccf::kv::TypedSet< K, KSerialiser, Unit >::wrap_map_hook ( const MapHook hook)
inlinestatic

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