20 #ifndef RIPPLE_APP_BOOK_OFFERSTREAM_H_INCLUDED
21 #define RIPPLE_APP_BOOK_OFFERSTREAM_H_INCLUDED
23 #include <ripple/app/tx/impl/BookTip.h>
24 #include <ripple/app/tx/impl/Offer.h>
25 #include <ripple/basics/Log.h>
26 #include <ripple/basics/chrono.h>
27 #include <ripple/beast/utility/Journal.h>
28 #include <ripple/ledger/View.h>
29 #include <ripple/protocol/Quality.h>
31 #include <boost/container/flat_set.hpp>
35 template <
class TIn,
class TOut>
88 template <
class TTakerPays,
class TTakerGets>
174 template <
class TIn,
class TOut>
190 boost::container::flat_set<uint256>
const&
bool shouldRmSmallIncreasedQOffer() const
TOffer< TIn, TOut > offer_
Presents and consumes the offers in an order book.
std::optional< TOut > ownerFunds_
Presents and consumes the offers in an order book.
void permRmOffer(uint256 const &offerIndex) override
void erase(ApplyView &view)
Writeable view to a ledger, for applying a transaction.
const std::uint32_t limit_
void permRmOffer(uint256 const &offerIndex) override
boost::container::flat_set< uint256 > const & permToRemove() const
TOfferStreamBase(ApplyView &view, ApplyView &cancelView, Book const &book, NetClock::time_point when, StepCounter &counter, beast::Journal journal)
Iterates and consumes raw offers in an order book.
virtual ~TOfferStreamBase()=default
A generic endpoint for log messages.
const NetClock::time_point expire_
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
StepCounter(std::uint32_t limit, beast::Journal j)
TOffer< TIn, TOut > & tip() const
Returns the offer at the tip of the order book.
std::uint32_t count() const
bool step()
Advance to the next valid offer.
virtual void permRmOffer(uint256 const &offerIndex)=0
boost::container::flat_set< uint256 > permToRemove_