xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
tests
libxrpl
csf
events.h
1
#pragma once
2
3
#include <csf/Tx.h>
4
#include <csf/Validation.h>
5
#include <csf/ledgers.h>
6
7
namespace
xrpl::test::csf
{
8
9
// Events are emitted by peers at a variety of points during the simulation.
10
// Each event is emitted by a particular peer at a particular time. Collectors
11
// process these events, perhaps calculating statistics or storing events to
12
// a log for post-processing.
13
//
14
// The Event types can be arbitrary, but should be copyable and lightweight.
15
//
16
// Example collectors can be found in collectors.h, but have the general
17
// interface:
18
//
19
// @code
20
// template <class T>
21
// struct Collector
22
// {
23
// template <class Event>
24
// void
25
// on(peerID who, SimTime when, Event e);
26
// };
27
// @endcode
28
//
29
// CollectorRef.f defines a type-erased holder for arbitrary Collectors. If
30
// any new events are added, the interface there needs to be updated.
31
35
template
<
class
V>
36
struct
Share
37
{
41
V
val
;
42
};
43
47
template
<
class
V>
48
struct
Relay
49
{
53
PeerID
to
;
54
58
V
val
;
59
};
60
64
template
<
class
V>
65
struct
Receive
66
{
70
PeerID
from
;
71
75
V
val
;
76
};
77
81
struct
SubmitTx
82
{
86
Tx
tx
;
87
};
88
92
struct
StartRound
93
{
97
Ledger::ID
bestLedger
{};
98
102
Ledger
prevLedger
;
103
};
104
108
struct
CloseLedger
109
{
110
// The ledger closed on
111
Ledger
prevLedger
;
112
113
// Initial txs for including in ledger
114
TxSetType
txs
;
115
};
116
120
struct
AcceptLedger
121
{
122
// The newly created ledger
123
Ledger
ledger
;
124
125
// The prior ledger (this is a jump if prior.id() != ledger.parentID())
126
Ledger
prior
;
127
};
128
132
struct
WrongPrevLedger
133
{
134
// ID of wrong ledger we had
135
Ledger::ID
wrong
;
136
// ID of what we think is the correct ledger
137
Ledger::ID
right
;
138
};
139
143
struct
FullyValidateLedger
144
{
148
Ledger
ledger
;
149
154
Ledger
prior
;
155
};
156
157
}
// namespace xrpl::test::csf
xrpl::test::csf::Ledger
A ledger is a set of observed transactions and a sequence number identifying the ledger.
Definition
ledgers.h:48
xrpl::test::csf::Ledger::ID
TaggedInteger< std::uint32_t, IdTag > ID
Definition
ledgers.h:56
xrpl::test::csf::Tx
A single transaction.
Definition
Tx.h:24
xrpl::test::csf
Definition
Validations.cpp:23
xrpl::test::csf::TxSetType
boost::container::flat_set< Tx > TxSetType
Definition
Tx.h:65
xrpl::test::csf::PeerID
TaggedInteger< std::uint32_t, PeerIDTag > PeerID
Definition
Validation.h:17
xrpl::test::csf::AcceptLedger
Peer accepted consensus results.
Definition
events.h:121
xrpl::test::csf::AcceptLedger::ledger
Ledger ledger
Definition
events.h:123
xrpl::test::csf::AcceptLedger::prior
Ledger prior
Definition
events.h:126
xrpl::test::csf::CloseLedger
Peer closed the open ledger.
Definition
events.h:109
xrpl::test::csf::CloseLedger::txs
TxSetType txs
Definition
events.h:114
xrpl::test::csf::CloseLedger::prevLedger
Ledger prevLedger
Definition
events.h:111
xrpl::test::csf::FullyValidateLedger
Peer fully validated a new ledger.
Definition
events.h:144
xrpl::test::csf::FullyValidateLedger::prior
Ledger prior
The prior fully validated ledger This is a jump if prior.id() != ledger.parentID().
Definition
events.h:154
xrpl::test::csf::FullyValidateLedger::ledger
Ledger ledger
The new fully validated ledger.
Definition
events.h:148
xrpl::test::csf::Receive
A value received from another peer as part of flooding.
Definition
events.h:66
xrpl::test::csf::Receive::val
V val
The received value.
Definition
events.h:75
xrpl::test::csf::Receive::from
PeerID from
Peer that sent the value.
Definition
events.h:70
xrpl::test::csf::Relay
A value relayed to another peer as part of flooding.
Definition
events.h:49
xrpl::test::csf::Relay::val
V val
The value to relay.
Definition
events.h:58
xrpl::test::csf::Relay::to
PeerID to
Peer relaying to.
Definition
events.h:53
xrpl::test::csf::Share
A value to be flooded to all other peers starting from this peer.
Definition
events.h:37
xrpl::test::csf::Share::val
V val
Event that is shared.
Definition
events.h:41
xrpl::test::csf::StartRound
Peer starts a new consensus round.
Definition
events.h:93
xrpl::test::csf::StartRound::bestLedger
Ledger::ID bestLedger
The preferred ledger for the start of consensus.
Definition
events.h:97
xrpl::test::csf::StartRound::prevLedger
Ledger prevLedger
The prior ledger on hand.
Definition
events.h:102
xrpl::test::csf::SubmitTx
A transaction submitted to a peer.
Definition
events.h:82
xrpl::test::csf::SubmitTx::tx
Tx tx
The submitted transaction.
Definition
events.h:86
xrpl::test::csf::WrongPrevLedger
Peer detected a wrong prior ledger during consensus.
Definition
events.h:133
xrpl::test::csf::WrongPrevLedger::wrong
Ledger::ID wrong
Definition
events.h:135
xrpl::test::csf::WrongPrevLedger::right
Ledger::ID right
Definition
events.h:137
Generated by
1.17.0