3#include <xrpl/basics/CountedObject.h>
4#include <xrpl/beast/utility/Journal.h>
5#include <xrpl/json/json_value.h>
6#include <xrpl/protocol/Book.h>
7#include <xrpl/protocol/ErrorCodes.h>
8#include <xrpl/resource/Consumer.h>
9#include <xrpl/server/Manifest.h>
107 bool historyOnly) = 0;
287 [[nodiscard]]
unsigned int
A generic endpoint for log messages.
std::shared_ptr< InfoSubRequest > pointer
virtual json::Value doClose()=0
virtual json::Value doStatus(json::Value const &)=0
virtual ~InfoSubRequest()=default
Abstracts the source of subscription data.
virtual ErrorCodeI subAccountHistory(ref ispListener, AccountID const &account)=0
subscribe an account's new transactions and retrieve the account's historical transactions
virtual void pubPeerStatus(std::function< json::Value(void)> const &)=0
virtual void unsubAccountHistoryInternal(std::uint64_t uListener, AccountID const &account, bool historyOnly)=0
virtual bool unsubRTTransactions(std::uint64_t uListener)=0
virtual bool subTransactions(ref ispListener)=0
virtual void pubManifest(Manifest const &)=0
virtual bool unsubConsensus(std::uint64_t uListener)=0
virtual bool unsubTransactions(std::uint64_t uListener)=0
virtual void unsubAccountInternal(std::uint64_t uListener, hash_set< AccountID > const &vnaAccountIDs, bool realTime)=0
virtual bool unsubServer(std::uint64_t uListener)=0
virtual beast::Journal const & journal() const =0
Journal used by InfoSub for diagnostics that occur after the owning subsystem (e.g.
virtual bool tryRemoveRpcSub(std::string const &strUrl)=0
virtual bool unsubBookChanges(std::uint64_t uListener)=0
virtual void unsubAccountHistory(ref ispListener, AccountID const &account, bool historyOnly)=0
unsubscribe an account's transactions
virtual bool subPeerStatus(ref ispListener)=0
virtual bool subServer(ref ispListener, json::Value &jvResult, bool admin)=0
virtual bool subConsensus(ref ispListener)=0
virtual void subAccount(ref ispListener, hash_set< AccountID > const &vnaAccountIDs, bool realTime)=0
virtual bool subBook(ref ispListener, Book const &)=0
virtual bool subValidations(ref ispListener)=0
virtual ~Source()=default
virtual bool subRTTransactions(ref ispListener)=0
virtual bool unsubBook(ref ispListener, Book const &)=0
Remove a book subscription for a live subscriber.
virtual bool unsubLedger(std::uint64_t uListener)=0
virtual bool subLedger(ref ispListener, json::Value &jvResult)=0
virtual bool unsubPeerStatus(std::uint64_t uListener)=0
virtual bool subBookChanges(ref ispListener)=0
virtual bool unsubManifests(std::uint64_t uListener)=0
virtual pointer addRpcSub(std::string const &strUrl, ref rspEntry)=0
virtual bool unsubBookInternal(std::uint64_t uListener, Book const &)=0
Remove a book subscription during InfoSub teardown.
virtual bool subManifests(ref ispListener)=0
virtual bool unsubValidations(std::uint64_t uListener)=0
virtual pointer findRpcSub(std::string const &strUrl)=0
virtual void unsubAccount(ref isplistener, hash_set< AccountID > const &vnaAccountIDs, bool realTime)=0
void setRequest(std::shared_ptr< InfoSubRequest > const &req)
void insertBookSubscription(Book const &book)
Record that this subscriber is following book.
virtual void send(json::Value const &jvObj, bool broadcast)=0
std::shared_ptr< InfoSub > pointer
Resource::Consumer Consumer
bool insertSubAccountHistory(AccountID const &account)
void setApiVersion(unsigned int apiVersion)
std::uint64_t getSeq() const
void insertSubAccountInfo(AccountID const &account, bool rt)
std::shared_ptr< InfoSub > const & ref
void deleteBookSubscription(Book const &book)
Stop tracking book for this subscriber.
hash_set< AccountID > accountHistorySubscriptions_
hash_set< AccountID > normalSubscriptions_
hash_set< Book > bookSubscriptions_
std::weak_ptr< InfoSub > wptr
hash_set< AccountID > realTimeSubscriptions_
void deleteSubAccountInfo(AccountID const &account, bool rt)
void deleteSubAccountHistory(AccountID const &account)
unsigned int getApiVersion() const noexcept
std::shared_ptr< InfoSubRequest > const & getRequest()
std::shared_ptr< InfoSubRequest > request_
An endpoint that consumes resources.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::unordered_set< Value, Hash, Pred, Allocator > hash_set
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.