1#ifndef XRPL_APP_LEDGER_ORDERBOOKDB_H_INCLUDED
2#define XRPL_APP_LEDGER_ORDERBOOKDB_H_INCLUDED
4#include <xrpld/app/ledger/AcceptedLedgerTx.h>
5#include <xrpld/app/ledger/BookListeners.h>
6#include <xrpld/app/main/Application.h>
8#include <xrpl/protocol/MultiApiJson.h>
9#include <xrpl/protocol/UintTypes.h>
A generic endpoint for log messages.
A transaction that is in a closed ledger.
A currency issued by an account.
BookToListenersMap mListeners
BookListeners::pointer getBookListeners(Book const &)
hardened_hash_map< Issue, hardened_hash_set< Issue > > allBooks_
hash_set< std::pair< Issue, Domain > > xrpDomainBooks_
void processTxn(std::shared_ptr< ReadView const > const &ledger, AcceptedLedgerTx const &alTx, MultiApiJson const &jvObj)
std::vector< Book > getBooksByTakerPays(Issue const &, std::optional< Domain > const &domain=std::nullopt)
hardened_hash_map< std::pair< Issue, Domain >, hardened_hash_set< Issue > > domainBooks_
hash_set< Issue > xrpBooks_
int getBookSize(Issue const &, std::optional< Domain > const &domain=std::nullopt)
std::atomic< std::uint32_t > seq_
std::recursive_mutex mLock
void setup(std::shared_ptr< ReadView const > const &ledger)
void update(std::shared_ptr< ReadView const > const &ledger)
void addOrderBook(Book const &)
bool isBookToXRP(Issue const &, std::optional< Domain > domain=std::nullopt)
BookListeners::pointer makeBookListeners(Book const &)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.