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

#include <value.h>

Inherits ccf::kv::GetName.

Public Types

using ReadOnlyHandle = ccf::kv::ReadableValueHandle< V, VSerialiser, Unit >
 
using WriteOnlyHandle = ccf::kv::WriteableValueHandle< V, VSerialiser, Unit >
 
using Handle = ccf::kv::ValueHandle< V, VSerialiser, Unit >
 
using Write = std::optional< V >
 
using MapHook = MapHook< Write >
 
using CommitHook = CommitHook< Write >
 
using Value = V
 
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::serialisers::SerialisedEntry create_unit ()
 
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 V, typename VSerialiser, typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
class ccf::kv::TypedValue< V, VSerialiser, Unit >

Defines the schema of a single-valued type accessed by a ccf::Tx. This value type is a container for an optional single element of type V. This may be undefined if the value has not been written to the KV, or else it has the value from the current or last-applied transaction.

V defines the type of the contained Value. VSerialiser determines how this V is serialised and deserialised, so it may be written to the ledger and replicated by the consensus algorithm.

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

Member Typedef Documentation

◆ CommitHook

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedValue< V, VSerialiser, Unit >::CommitHook = CommitHook<Write>

◆ Handle

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedValue< V, VSerialiser, Unit >::Handle = ccf::kv::ValueHandle<V, VSerialiser, Unit>

◆ MapHook

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedValue< V, VSerialiser, Unit >::MapHook = MapHook<Write>

◆ ReadOnlyHandle

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedValue< V, VSerialiser, Unit >::ReadOnlyHandle = ccf::kv::ReadableValueHandle<V, VSerialiser, Unit>

◆ Value

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedValue< V, VSerialiser, Unit >::Value = V

◆ ValueSerialiser

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedValue< V, VSerialiser, Unit >::ValueSerialiser = VSerialiser

◆ Write

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedValue< V, VSerialiser, Unit >::Write = std::optional<V>

◆ WriteOnlyHandle

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
using ccf::kv::TypedValue< V, VSerialiser, Unit >::WriteOnlyHandle = ccf::kv::WriteableValueHandle<V, VSerialiser, Unit>

Member Function Documentation

◆ create_unit()

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
static ccf::kv::serialisers::SerialisedEntry ccf::kv::TypedValue< V, VSerialiser, Unit >::create_unit ( )
inlinestatic

◆ GetName()

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

◆ wrap_commit_hook()

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
static ccf::kv::untyped::CommitHook ccf::kv::TypedValue< V, VSerialiser, Unit >::wrap_commit_hook ( const CommitHook hook)
inlinestatic

◆ wrap_map_hook()

template<typename V , typename VSerialiser , typename Unit = ccf::kv::serialisers::ZeroBlitUnitCreator>
static ccf::kv::untyped::MapHook ccf::kv::TypedValue< V, VSerialiser, Unit >::wrap_map_hook ( const MapHook hook)
inlinestatic

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