22#include "data/Types.hpp"
23#include "feed/Types.hpp"
25#include <boost/asio/executor_work_guard.hpp>
26#include <boost/asio/io_context.hpp>
27#include <boost/asio/spawn.hpp>
28#include <boost/json/object.hpp>
29#include <xrpl/protocol/AccountID.h>
30#include <xrpl/protocol/Book.h>
31#include <xrpl/protocol/Fees.h>
32#include <xrpl/protocol/LedgerHeader.h>
75 ripple::LedgerHeader
const& lgrInfo,
76 std::vector<data::TransactionAndMetadata>
const& transactions
123 virtual boost::json::object
124 subLedger(boost::asio::yield_context yield, SubscriberSharedPtr
const& subscriber) = 0;
142 ripple::LedgerHeader
const& lgrInfo,
143 ripple::Fees
const& fees,
144 std::string
const& ledgerRange,
145 std::uint32_t txnCount
210 subAccount(ripple::AccountID
const& account, SubscriberSharedPtr
const& subscriber) = 0;
218 unsubAccount(ripple::AccountID
const& account, SubscriberSharedPtr
const& subscriber) = 0;
226 subBook(ripple::Book
const& book, SubscriberSharedPtr
const& subscriber) = 0;
234 unsubBook(ripple::Book
const& book, SubscriberSharedPtr
const& subscriber) = 0;
249 virtual boost::json::object
Interface of subscription manager. A subscription manager is responsible for managing the subscriptio...
Definition SubscriptionManagerInterface.hpp:44
virtual void subBookChanges(SubscriberSharedPtr const &subscriber)=0
Subscribe to the book changes feed.
virtual void unsubProposedTransactions(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the proposed transactions feed.
virtual void subAccount(ripple::AccountID const &account, SubscriberSharedPtr const &subscriber)=0
Subscribe to the transactions feed, only receive the feed when particular account is affected.
virtual boost::json::object report() const =0
Get the number of subscribers.
virtual void unsubAccount(ripple::AccountID const &account, SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the transactions feed for particular account.
virtual void pubBookChanges(ripple::LedgerHeader const &lgrInfo, std::vector< data::TransactionAndMetadata > const &transactions)=0
Publish the book changes feed.
virtual void subBook(ripple::Book const &book, SubscriberSharedPtr const &subscriber)=0
Subscribe to the transactions feed, only receive feed when particular order book is affected.
virtual void pubLedger(ripple::LedgerHeader const &lgrInfo, ripple::Fees const &fees, std::string const &ledgerRange, std::uint32_t txnCount)=0
Publish the ledger feed.
virtual void forwardValidation(boost::json::object const &validationJson)=0
Forward the validation feed.
virtual void subValidation(SubscriberSharedPtr const &subscriber)=0
Subscribe to the validation feed.
virtual void unsubValidation(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the validation feed.
virtual void unsubTransactions(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the transactions feed.
virtual void unsubBookChanges(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the book changes feed.
virtual void forwardProposedTransaction(boost::json::object const &receivedTxJson)=0
Forward the proposed transactions feed.
virtual void stop()=0
Stop the SubscriptionManager and wait for all jobs to finish.
virtual void forwardManifest(boost::json::object const &manifestJson)=0
Forward the manifest feed.
virtual void subManifest(SubscriberSharedPtr const &subscriber)=0
Subscribe to the manifest feed.
virtual void unsubProposedAccount(ripple::AccountID const &account, SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the proposed transactions feed for particular account.
virtual void pubTransaction(data::TransactionAndMetadata const &txMeta, ripple::LedgerHeader const &lgrInfo)=0
Forward the transactions feed.
virtual void subProposedTransactions(SubscriberSharedPtr const &subscriber)=0
Subscribe to the proposed transactions feed.
virtual void subProposedAccount(ripple::AccountID const &account, SubscriberSharedPtr const &subscriber)=0
Subscribe to the proposed transactions feed, only receive the feed when particular account is affecte...
virtual boost::json::object subLedger(boost::asio::yield_context yield, SubscriberSharedPtr const &subscriber)=0
Subscribe to the ledger feed.
virtual void subTransactions(SubscriberSharedPtr const &subscriber)=0
Subscribe to the transactions feed.
virtual void unsubManifest(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the manifest feed.
virtual void unsubBook(ripple::Book const &book, SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the transactions feed for particular order book.
virtual void unsubLedger(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the ledger feed.
This namespace implements everything related to subscriptions.
Definition BookChangesFeed.hpp:33