xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
xrpld
app
ledger
TransactionStateSF.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 transactions tree during ledger sync
18
class
TransactionStateSF
:
public
SHAMapSyncFilter
19
{
20
public
:
21
TransactionStateSF
(
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::SHAMapHash
Definition
SHAMapHash.h:16
xrpl::SHAMapSyncFilter::SHAMapSyncFilter
SHAMapSyncFilter()=default
xrpl::TransactionStateSF::fp_
AbstractFetchPackContainer & fp_
Definition
TransactionStateSF.h:38
xrpl::TransactionStateSF::TransactionStateSF
TransactionStateSF(node_store::Database &db, AbstractFetchPackContainer &fp)
Definition
TransactionStateSF.h:21
xrpl::TransactionStateSF::db_
node_store::Database & db_
Definition
TransactionStateSF.h:37
xrpl::TransactionStateSF::getNode
std::optional< Blob > getNode(SHAMapHash const &nodeHash) const override
Definition
TransactionStateSF.cpp:31
xrpl::TransactionStateSF::gotNode
void gotNode(bool fromFilter, SHAMapHash const &nodeHash, std::uint32_t ledgerSeq, Blob &&nodeData, SHAMapNodeType type) const override
Definition
TransactionStateSF.cpp:16
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