rippled
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Attributes | List of all members
ripple::OrderBookDB Class Reference

#include <OrderBookDB.h>

Collaboration diagram for ripple::OrderBookDB:
Collaboration graph
[legend]

Public Member Functions

 OrderBookDB (Application &app)
 
void setup (std::shared_ptr< ReadView const > const &ledger)
 
void update (std::shared_ptr< ReadView const > const &ledger)
 
void addOrderBook (Book const &)
 
std::vector< BookgetBooksByTakerPays (Issue const &, std::optional< Domain > const &domain=std::nullopt)
 
int getBookSize (Issue const &, std::optional< Domain > const &domain=std::nullopt)
 
bool isBookToXRP (Issue const &, std::optional< Domain > domain=std::nullopt)
 
BookListeners::pointer getBookListeners (Book const &)
 
BookListeners::pointer makeBookListeners (Book const &)
 
void processTxn (std::shared_ptr< ReadView const > const &ledger, AcceptedLedgerTx const &alTx, MultiApiJson const &jvObj)
 

Private Types

using BookToListenersMap = hash_map< Book, BookListeners::pointer >
 

Private Attributes

Applicationapp_
 
hardened_hash_map< Issue, hardened_hash_set< Issue > > allBooks_
 
hardened_hash_map< std::pair< Issue, Domain >, hardened_hash_set< Issue > > domainBooks_
 
hash_set< IssuexrpBooks_
 
hash_set< std::pair< Issue, Domain > > xrpDomainBooks_
 
std::recursive_mutex mLock
 
BookToListenersMap mListeners
 
std::atomic< std::uint32_tseq_
 
beast::Journal const j_
 

Detailed Description

Definition at line 35 of file OrderBookDB.h.

Member Typedef Documentation

◆ BookToListenersMap

Definition at line 94 of file OrderBookDB.h.

Constructor & Destructor Documentation

◆ OrderBookDB()

ripple::OrderBookDB::OrderBookDB ( Application app)
explicit

Definition at line 33 of file OrderBookDB.cpp.

Member Function Documentation

◆ setup()

void ripple::OrderBookDB::setup ( std::shared_ptr< ReadView const > const &  ledger)

Definition at line 39 of file OrderBookDB.cpp.

◆ update()

void ripple::OrderBookDB::update ( std::shared_ptr< ReadView const > const &  ledger)

Definition at line 77 of file OrderBookDB.cpp.

◆ addOrderBook()

void ripple::OrderBookDB::addOrderBook ( Book const &  book)

Definition at line 179 of file OrderBookDB.cpp.

◆ getBooksByTakerPays()

std::vector< Book > ripple::OrderBookDB::getBooksByTakerPays ( Issue const &  ,
std::optional< Domain > const &  domain = std::nullopt 
)
Returns
a list of all orderbooks that want this issuerID and currencyID.

Definition at line 198 of file OrderBookDB.cpp.

◆ getBookSize()

int ripple::OrderBookDB::getBookSize ( Issue const &  ,
std::optional< Domain > const &  domain = std::nullopt 
)
Returns
a count of all orderbooks that want this issuerID and currencyID.

Definition at line 228 of file OrderBookDB.cpp.

◆ isBookToXRP()

bool ripple::OrderBookDB::isBookToXRP ( Issue const &  issue,
std::optional< Domain domain = std::nullopt 
)

Definition at line 250 of file OrderBookDB.cpp.

◆ getBookListeners()

BookListeners::pointer ripple::OrderBookDB::getBookListeners ( Book const &  book)

Definition at line 279 of file OrderBookDB.cpp.

◆ makeBookListeners()

BookListeners::pointer ripple::OrderBookDB::makeBookListeners ( Book const &  book)

Definition at line 259 of file OrderBookDB.cpp.

◆ processTxn()

void ripple::OrderBookDB::processTxn ( std::shared_ptr< ReadView const > const &  ledger,
AcceptedLedgerTx const &  alTx,
MultiApiJson const &  jvObj 
)

Definition at line 294 of file OrderBookDB.cpp.

Member Data Documentation

◆ app_

Application& ripple::OrderBookDB::app_
private

Definition at line 78 of file OrderBookDB.h.

◆ allBooks_

hardened_hash_map<Issue, hardened_hash_set<Issue> > ripple::OrderBookDB::allBooks_
private

Definition at line 81 of file OrderBookDB.h.

◆ domainBooks_

hardened_hash_map<std::pair<Issue, Domain>, hardened_hash_set<Issue> > ripple::OrderBookDB::domainBooks_
private

Definition at line 84 of file OrderBookDB.h.

◆ xrpBooks_

hash_set<Issue> ripple::OrderBookDB::xrpBooks_
private

Definition at line 87 of file OrderBookDB.h.

◆ xrpDomainBooks_

hash_set<std::pair<Issue, Domain> > ripple::OrderBookDB::xrpDomainBooks_
private

Definition at line 90 of file OrderBookDB.h.

◆ mLock

std::recursive_mutex ripple::OrderBookDB::mLock
private

Definition at line 92 of file OrderBookDB.h.

◆ mListeners

BookToListenersMap ripple::OrderBookDB::mListeners
private

Definition at line 96 of file OrderBookDB.h.

◆ seq_

std::atomic<std::uint32_t> ripple::OrderBookDB::seq_
private

Definition at line 98 of file OrderBookDB.h.

◆ j_

beast::Journal const ripple::OrderBookDB::j_
private

Definition at line 100 of file OrderBookDB.h.