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.