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.
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_
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_
std::recursive_mutex mLock
hash_set< std::pair< Issue, Domain > > xrpDomainBooks_
BookToListenersMap mListeners
hash_set< Issue > xrpBooks_
hardened_hash_map< Issue, hardened_hash_set< Issue > > allBooks_
void setup(std::shared_ptr< ReadView const > const &ledger)
std::vector< Book > getBooksByTakerPays(Issue const &, std::optional< Domain > const &domain=std::nullopt)
bool isBookToXRP(Issue const &, std::optional< Domain > domain=std::nullopt)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.