Clio develop
The XRP Ledger API server.
|
The interface for a registry that can dispatch transactions and objects to extensions. More...
#include <RegistryInterface.hpp>
Public Member Functions | |
virtual void | dispatchInitialObjects (uint32_t seq, std::vector< model::Object > const &data, std::string lastKey)=0 |
Dispatch initial objects. | |
virtual void | dispatchInitialData (model::LedgerData const &data)=0 |
Dispatch initial ledger data. | |
virtual void | dispatch (model::LedgerData const &data)=0 |
Dispatch an entire ledger diff. | |
The interface for a registry that can dispatch transactions and objects to extensions.
This class defines the interface for dispatching data through to extensions.
When the registry dispatches (initial)data or objects, each of the above hooks will be called in order on each registered extension. This means that the order of execution is from left to right (hooks) and top to bottom (registered extensions).
If either onTransaction
or onInitialTransaction
are defined, the extension will have to additionally define a Specification. The specification lists transaction types to filter from the incoming data such that onTransaction
and onInitialTransaction
are only called for the transactions that are of interest for the given extension.
The specification is setup like so:
|
pure virtual |
Dispatch an entire ledger diff.
This is used to dispatch incoming diffs through the extensions.
data | The data to dispatch |
Implemented in etlng::impl::Registry< Ps >.
|
pure virtual |
Dispatch initial ledger data.
The transactions, header and edge keys are received during initial ledger load.
data | The data to dispatch |
Implemented in etlng::impl::Registry< Ps >.
|
pure virtual |
Dispatch initial objects.
These objects are received during initial ledger load.
seq | The sequence |
data | The objects to dispatch |
lastKey | The predcessor of the first object in data if known; an empty string otherwise |
Implemented in etlng::impl::Registry< Ps >.