xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
xrpld
app
ledger
AccountStateSF.h
1
#pragma once
2
3
#include <xrpld/app/ledger/AbstractFetchPackContainer.h>
4
5
#include <xrpl/basics/Blob.h>
6
#include <xrpl/basics/SHAMapHash.h>
7
#include <xrpl/nodestore/Database.h>
8
#include <xrpl/shamap/SHAMapSyncFilter.h>
9
#include <xrpl/shamap/SHAMapTreeNode.h>
10
11
#include <
cstdint
>
12
#include <
optional
>
13
14
namespace
xrpl
{
15
16
// This class is only needed on add functions
17
// sync filter for account state nodes during ledger sync
18
class
AccountStateSF
:
public
SHAMapSyncFilter
19
{
20
public
:
21
AccountStateSF
(
node_store::Database
& db,
AbstractFetchPackContainer
& fp) :
db_
(db),
fp_
(fp)
22
{
23
}
24
25
void
26
gotNode
(
27
bool
fromFilter,
28
SHAMapHash
const
& nodeHash,
29
std::uint32_t
ledgerSeq,
30
Blob
&& nodeData,
31
SHAMapNodeType
type)
const override
;
32
33
[[nodiscard]]
std::optional<Blob>
34
getNode
(
SHAMapHash
const
& nodeHash)
const override
;
35
36
private
:
37
node_store::Database
&
db_
;
38
AbstractFetchPackContainer
&
fp_
;
39
};
40
41
}
// namespace xrpl
xrpl::AbstractFetchPackContainer
An interface facilitating retrieval of fetch packs without an application or ledgermaster object.
Definition
AbstractFetchPackContainer.h:15
xrpl::AccountStateSF::db_
node_store::Database & db_
Definition
AccountStateSF.h:37
xrpl::AccountStateSF::AccountStateSF
AccountStateSF(node_store::Database &db, AbstractFetchPackContainer &fp)
Definition
AccountStateSF.h:21
xrpl::AccountStateSF::gotNode
void gotNode(bool fromFilter, SHAMapHash const &nodeHash, std::uint32_t ledgerSeq, Blob &&nodeData, SHAMapNodeType type) const override
Definition
AccountStateSF.cpp:15
xrpl::AccountStateSF::getNode
std::optional< Blob > getNode(SHAMapHash const &nodeHash) const override
Definition
AccountStateSF.cpp:26
xrpl::AccountStateSF::fp_
AbstractFetchPackContainer & fp_
Definition
AccountStateSF.h:38
xrpl::SHAMapHash
Definition
SHAMapHash.h:16
xrpl::SHAMapSyncFilter::SHAMapSyncFilter
SHAMapSyncFilter()=default
xrpl::node_store::Database
Persistency layer for NodeObject.
Definition
Database.h:45
cstdint
std::uint32_t
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::SHAMapNodeType
SHAMapNodeType
Definition
SHAMapTreeNode.h:30
xrpl::Blob
std::vector< unsigned char > Blob
Storage for linear binary data.
Definition
Blob.h:11
optional
Generated by
1.17.0