Skip to content

sgns::storage::trie::TrieStorageImpl

#include <trie_storage_impl.hpp>

Inherits from sgns::storage::trie::TrieStorage, IComponent

Public Functions

Name
outcome::result< std::unique_ptr< TrieStorageImpl > > createEmpty(const std::shared_ptr< SuperGeniusTrieFactory > & trie_factory, std::shared_ptr< Codec > codec, std::shared_ptr< TrieSerializer > serializer, boost::optional< std::shared_ptr< changes_trie::ChangesTracker > > changes)
outcome::result< std::unique_ptr< TrieStorageImpl > > createFromStorage(const base::Buffer & root_hash, std::shared_ptr< Codec > codec, std::shared_ptr< TrieSerializer > serializer, boost::optional< std::shared_ptr< changes_trie::ChangesTracker > > changes)
TrieStorageImpl(TrieStorageImpl const & ) =delete
void operator=(const TrieStorageImpl & ) =delete
TrieStorageImpl(TrieStorageImpl && ) =default
TrieStorageImpl & operator=(TrieStorageImpl && ) =default
~TrieStorageImpl() override =default
virtual outcome::result< std::unique_ptr< PersistentTrieBatch > > getPersistentBatch() override
virtual outcome::result< std::unique_ptr< EphemeralTrieBatch > > getEphemeralBatch() const override
virtual outcome::result< std::unique_ptr< PersistentTrieBatch > > getPersistentBatchAt(const base::Hash256 & root) override
virtual outcome::result< std::unique_ptr< EphemeralTrieBatch > > getEphemeralBatchAt(const base::Hash256 & root) const override
virtual base::Buffer getRootHash() const override
virtual std::string GetName() override

Protected Functions

Name
TrieStorageImpl(base::Buffer root_hash, std::shared_ptr< Codec > codec, std::shared_ptr< TrieSerializer > serializer, boost::optional< std::shared_ptr< changes_trie::ChangesTracker > > changes)

Additional inherited members

Public Functions inherited from sgns::storage::trie::TrieStorage

Name
~TrieStorage() override =default

Public Functions inherited from IComponent

Name
virtual ~IComponent() =default

Public Functions Documentation

function createEmpty

static outcome::result< std::unique_ptr< TrieStorageImpl > > createEmpty(
    const std::shared_ptr< SuperGeniusTrieFactory > & trie_factory,
    std::shared_ptr< Codec > codec,
    std::shared_ptr< TrieSerializer > serializer,
    boost::optional< std::shared_ptr< changes_trie::ChangesTracker > > changes
)

function createFromStorage

static outcome::result< std::unique_ptr< TrieStorageImpl > > createFromStorage(
    const base::Buffer & root_hash,
    std::shared_ptr< Codec > codec,
    std::shared_ptr< TrieSerializer > serializer,
    boost::optional< std::shared_ptr< changes_trie::ChangesTracker > > changes
)

function TrieStorageImpl

TrieStorageImpl(
    TrieStorageImpl const & 
) =delete

function operator=

void operator=(
    const TrieStorageImpl & 
) =delete

function TrieStorageImpl

TrieStorageImpl(
    TrieStorageImpl && 
) =default

function operator=

TrieStorageImpl & operator=(
    TrieStorageImpl && 
) =default

function ~TrieStorageImpl

~TrieStorageImpl() override =default

function getPersistentBatch

virtual outcome::result< std::unique_ptr< PersistentTrieBatch > > getPersistentBatch() override

Reimplements: sgns::storage::trie::TrieStorage::getPersistentBatch

function getEphemeralBatch

virtual outcome::result< std::unique_ptr< EphemeralTrieBatch > > getEphemeralBatch() const override

Reimplements: sgns::storage::trie::TrieStorage::getEphemeralBatch

function getPersistentBatchAt

virtual outcome::result< std::unique_ptr< PersistentTrieBatch > > getPersistentBatchAt(
    const base::Hash256 & root
) override

Warning: if the batch is committed, the trie will still switch to its state, creating a 'fork'

Reimplements: sgns::storage::trie::TrieStorage::getPersistentBatchAt

Initializes a batch at the provided state

function getEphemeralBatchAt

virtual outcome::result< std::unique_ptr< EphemeralTrieBatch > > getEphemeralBatchAt(
    const base::Hash256 & root
) const override

Reimplements: sgns::storage::trie::TrieStorage::getEphemeralBatchAt

function getRootHash

virtual base::Buffer getRootHash() const override

Reimplements: sgns::storage::trie::TrieStorage::getRootHash

Root hash of the latest committed trie

function GetName

inline virtual std::string GetName() override

Reimplements: IComponent::GetName

Protected Functions Documentation

function TrieStorageImpl

TrieStorageImpl(
    base::Buffer root_hash,
    std::shared_ptr< Codec > codec,
    std::shared_ptr< TrieSerializer > serializer,
    boost::optional< std::shared_ptr< changes_trie::ChangesTracker > > changes
)

Updated on 2026-03-04 at 13:10:44 -0800