xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
xrpld
app
ledger
TransactionMaster.h
1
#pragma once
2
3
#include <xrpld/app/misc/Transaction.h>
4
5
#include <xrpl/basics/RangeSet.h>
6
#include <xrpl/basics/TaggedCache.h>
7
#include <xrpl/basics/base_uint.h>
8
#include <xrpl/protocol/ErrorCodes.h>
9
#include <xrpl/protocol/TxMeta.h>
10
#include <xrpl/protocol/TxSearched.h>
11
#include <xrpl/shamap/SHAMapItem.h>
12
#include <xrpl/shamap/SHAMapTreeNode.h>
13
14
#include <
cstdint
>
15
#include <
memory
>
16
#include <
optional
>
17
#include <
utility
>
18
#include <
variant
>
19
20
namespace
xrpl
{
21
22
class
Application
;
23
class
STTx
;
24
25
// Tracks all transactions in memory
26
27
class
TransactionMaster
28
{
29
public
:
30
TransactionMaster
(
Application
& app);
31
TransactionMaster
(
TransactionMaster
const
&) =
delete
;
32
TransactionMaster
&
33
operator=
(
TransactionMaster
const
&) =
delete
;
34
35
std::shared_ptr<Transaction>
36
fetchFromCache
(
UInt256
const
&);
37
38
std::variant<std::pair<std::shared_ptr<Transaction>
,
std::shared_ptr<TxMeta>
>,
TxSearched
>
39
fetch
(
UInt256
const
&,
ErrorCodeI
& ec);
40
50
std::variant<std::pair<std::shared_ptr<Transaction>
,
std::shared_ptr<TxMeta>
>,
TxSearched
>
51
fetch
(
UInt256
const
&,
ClosedInterval<uint32_t>
const
&
range
,
ErrorCodeI
& ec);
52
53
std::shared_ptr<STTx const>
54
fetch
(
55
boost::intrusive_ptr<SHAMapItem>
const
& item,
56
SHAMapNodeType
type,
57
std::uint32_t
uCommitLedger);
58
59
// return value: true = we had the transaction already
60
bool
61
inLedger
(
62
UInt256
const
& hash,
63
std::uint32_t
ledger,
64
std::optional<uint32_t>
tseq,
65
std::optional<uint32_t>
netID);
66
67
void
68
canonicalize
(
std::shared_ptr<Transaction>
* pTransaction);
69
70
void
71
sweep
();
72
73
TaggedCache<UInt256, Transaction>
&
74
getCache
();
75
76
private
:
77
Application
&
app_
;
78
TaggedCache<UInt256, Transaction>
cache_
;
79
};
80
81
}
// namespace xrpl
xrpl::Application
Definition
Application.h:94
xrpl::STTx
Definition
STTx.h:43
xrpl::TaggedCache
Map/cache combination.
Definition
TaggedCache.h:67
xrpl::TransactionMaster::sweep
void sweep()
Definition
TransactionMaster.cpp:155
xrpl::TransactionMaster::getCache
TaggedCache< UInt256, Transaction > & getCache()
Definition
TransactionMaster.cpp:161
xrpl::TransactionMaster::TransactionMaster
TransactionMaster(TransactionMaster const &)=delete
xrpl::TransactionMaster::inLedger
bool inLedger(UInt256 const &hash, std::uint32_t ledger, std::optional< uint32_t > tseq, std::optional< uint32_t > netID)
Definition
TransactionMaster.cpp:42
xrpl::TransactionMaster::TransactionMaster
TransactionMaster(Application &app)
Definition
TransactionMaster.cpp:30
xrpl::TransactionMaster::canonicalize
void canonicalize(std::shared_ptr< Transaction > *pTransaction)
Definition
TransactionMaster.cpp:142
xrpl::TransactionMaster::app_
Application & app_
Definition
TransactionMaster.h:77
xrpl::TransactionMaster::operator=
TransactionMaster & operator=(TransactionMaster const &)=delete
xrpl::TransactionMaster::fetchFromCache
std::shared_ptr< Transaction > fetchFromCache(UInt256 const &)
Definition
TransactionMaster.cpp:58
xrpl::TransactionMaster::cache_
TaggedCache< UInt256, Transaction > cache_
Definition
TransactionMaster.h:78
xrpl::TransactionMaster::fetch
std::variant< std::pair< std::shared_ptr< Transaction >, std::shared_ptr< TxMeta > >, TxSearched > fetch(UInt256 const &, ErrorCodeI &ec)
Definition
TransactionMaster.cpp:64
cstdint
std::uint32_t
memory
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::ErrorCodeI
ErrorCodeI
Definition
ErrorCodes.h:23
xrpl::SHAMapNodeType
SHAMapNodeType
Definition
SHAMapTreeNode.h:30
xrpl::range
ClosedInterval< T > range(T low, T high)
Create a closed range interval.
Definition
RangeSet.h:37
xrpl::UInt256
BaseUInt< 256 > UInt256
Definition
base_uint.h:580
xrpl::ClosedInterval
boost::icl::closed_interval< T > ClosedInterval
A closed interval over the domain T.
Definition
RangeSet.h:27
xrpl::TxSearched
TxSearched
Definition
TxSearched.h:5
optional
std::shared_ptr
utility
variant
Generated by
1.17.0