rippled
Loading...
Searching...
No Matches
OrderBookDB.h
1#ifndef XRPL_APP_LEDGER_ORDERBOOKDB_H_INCLUDED
2#define XRPL_APP_LEDGER_ORDERBOOKDB_H_INCLUDED
3
4#include <xrpld/app/ledger/AcceptedLedgerTx.h>
5#include <xrpld/app/ledger/BookListeners.h>
6#include <xrpld/app/main/Application.h>
7
8#include <xrpl/protocol/MultiApiJson.h>
9#include <xrpl/protocol/UintTypes.h>
10
11#include <mutex>
12#include <optional>
13
14namespace ripple {
15
17{
18public:
19 explicit OrderBookDB(Application& app);
20
21 void
23 void
25
26 void
27 addOrderBook(Book const&);
28
33 Issue const&,
34 std::optional<Domain> const& domain = std::nullopt);
35
38 int
40 Issue const&,
41 std::optional<Domain> const& domain = std::nullopt);
42
43 bool
45
47 getBookListeners(Book const&);
49 makeBookListeners(Book const&);
50
51 // see if this txn effects any orderbook
52 void
55 AcceptedLedgerTx const& alTx,
56 MultiApiJson const& jvObj);
57
58private:
60
61 // Maps order books by "issue in" to "issue out":
63
66
67 // does an order book to XRP exist
69
70 // does an order book to XRP exist
72
74
76
78
80
82};
83
84} // namespace ripple
85
86#endif
A generic endpoint for log messages.
Definition Journal.h:41
A transaction that is in a closed ledger.
Specifies an order book.
Definition Book.h:17
A currency issued by an account.
Definition Issue.h:14
BookListeners::pointer getBookListeners(Book const &)
void addOrderBook(Book const &)
void processTxn(std::shared_ptr< ReadView const > const &ledger, AcceptedLedgerTx const &alTx, MultiApiJson const &jvObj)
BookListeners::pointer makeBookListeners(Book const &)
std::atomic< std::uint32_t > seq_
Definition OrderBookDB.h:79
void update(std::shared_ptr< ReadView const > const &ledger)
int getBookSize(Issue const &, std::optional< Domain > const &domain=std::nullopt)
hardened_hash_map< std::pair< Issue, Domain >, hardened_hash_set< Issue > > domainBooks_
Definition OrderBookDB.h:65
std::recursive_mutex mLock
Definition OrderBookDB.h:73
hash_set< std::pair< Issue, Domain > > xrpDomainBooks_
Definition OrderBookDB.h:71
beast::Journal const j_
Definition OrderBookDB.h:81
BookToListenersMap mListeners
Definition OrderBookDB.h:77
hash_set< Issue > xrpBooks_
Definition OrderBookDB.h:68
hardened_hash_map< Issue, hardened_hash_set< Issue > > allBooks_
Definition OrderBookDB.h:62
void setup(std::shared_ptr< ReadView const > const &ledger)
Application & app_
Definition OrderBookDB.h:59
std::vector< Book > getBooksByTakerPays(Issue const &, std::optional< Domain > const &domain=std::nullopt)
bool isBookToXRP(Issue const &, std::optional< Domain > domain=std::nullopt)
T is_same_v
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6