1#ifndef XRPL_APP_MAIN_APPLICATION_H_INCLUDED
2#define XRPL_APP_MAIN_APPLICATION_H_INCLUDED
4#include <xrpld/core/Config.h>
5#include <xrpld/overlay/PeerReservationTable.h>
7#include <xrpl/basics/TaggedCache.h>
8#include <xrpl/beast/utility/PropertyStream.h>
9#include <xrpl/protocol/Protocol.h>
10#include <xrpl/shamap/TreeNodeCache.h>
12#include <boost/asio.hpp>
13#include <boost/program_options.hpp>
39 class SharedWeakUnionPointer,
40 class SharedPointerType,
46using SLE = STLedgerEntry;
47using CachedSLEs = TaggedCache<uint256, SLE const>;
49class CollectorManager;
56class InboundTransactions;
76class TransactionMaster;
83class RelationalDatabase;
89template <
class Adaptor>
118 setup(boost::program_options::variables_map
const& options) = 0;
146 virtual boost::asio::io_context&
A generic endpoint for log messages.
Subclasses can be called to write to a stream and have children.
std::string const & name() const
Returns the name of this source.
The amendment table stores the list of enabled and potential amendments.
virtual perf::PerfLog & getPerfLog()=0
virtual bool setup(boost::program_options::variables_map const &options)=0
virtual TaggedCache< uint256, AcceptedLedger > & getAcceptedLedgerCache()=0
virtual Resource::Manager & getResourceManager()=0
virtual std::chrono::milliseconds getIOLatency()=0
virtual HashRouter & getHashRouter()=0
virtual Cluster & cluster()=0
virtual InboundTransactions & getInboundTransactions()=0
virtual CollectorManager & getCollectorManager()=0
virtual Config & config()=0
virtual ValidatorSite & validatorSites()=0
virtual void signalStop(std::string msg)=0
virtual OpenLedger const & openLedger() const =0
virtual InboundLedgers & getInboundLedgers()=0
virtual PendingSaves & pendingSaves()=0
virtual LoadFeeTrack & getFeeTrack()=0
virtual std::uint64_t instanceID() const =0
Returns a 64-bit instance identifier, generated at startup.
virtual bool checkSigs() const =0
virtual int fdRequired() const =0
virtual LedgerMaster & getLedgerMaster()=0
virtual LedgerIndex getMaxDisallowedLedger()=0
Ensure that a newly-started validator does not sign proposals older than the last ledger it persisted...
virtual LedgerReplayer & getLedgerReplayer()=0
virtual beast::Journal journal(std::string const &name)=0
virtual DatabaseCon & getWalletDB()=0
Retrieve the "wallet database".
virtual NodeStore::Database & getNodeStore()=0
virtual LedgerCleaner & getLedgerCleaner()=0
virtual Family & getNodeFamily()=0
virtual ServerHandler & getServerHandler()=0
virtual CachedSLEs & cachedSLEs()=0
virtual std::optional< uint256 > const & trapTxID() const =0
virtual TimeKeeper & timeKeeper()=0
virtual std::optional< PublicKey const > getValidationPublicKey() const =0
virtual LoadManager & getLoadManager()=0
virtual PathRequests & getPathRequests()=0
virtual boost::asio::io_context & getIOContext()=0
virtual OpenLedger & openLedger()=0
virtual ~Application()=default
virtual RCLValidations & getValidations()=0
virtual bool serverOkay(std::string &reason)=0
virtual AmendmentTable & getAmendmentTable()=0
virtual SHAMapStore & getSHAMapStore()=0
virtual void checkSigs(bool)=0
virtual PeerReservationTable & peerReservations()=0
virtual MutexType & getMasterMutex()=0
virtual OrderBookDB & getOrderBookDB()=0
virtual TransactionMaster & getMasterTransaction()=0
virtual Overlay & overlay()=0
virtual JobQueue & getJobQueue()=0
virtual ManifestCache & validatorManifests()=0
virtual RelationalDatabase & getRelationalDatabase()=0
virtual void start(bool withTimers)=0
virtual std::pair< PublicKey, SecretKey > const & nodeIdentity()=0
virtual NodeCache & getTempNodeCache()=0
virtual bool isStopping() const =0
virtual ValidatorList & validators()=0
virtual NetworkOPs & getOPs()=0
virtual ManifestCache & publisherManifests()=0
Provides the beast::insight::Collector service.
Routing table for objects identified by hash.
Manages the lifetime of inbound ledgers.
Manages the acquisition and lifetime of transaction sets.
A pool of threads to perform work.
Check the ledger/transaction databases to make sure they have continuity.
Manages the lifetime of ledger replay tasks.
Manages the current fee schedule.
Manages partitions for logging.
Remembers manifests with the highest sequence number.
Provides server functionality for clients.
Persistency layer for NodeObject.
Represents the open ledger.
Manages the set of connected peers.
Keeps track of which ledgers haven't been fully saved.
Generic validations adaptor class for RCL.
Tracks load and resource consumption.
class to create database, launch online delete thread, and related SQLite database
Manages various times used by the server.
Maintains current and recent ledger validations.
Singleton class that maintains performance counters and optionally writes Json-formatted data to a di...
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
TaggedCache< uint256, SLE const > CachedSLEs
std::unique_ptr< Application > make_Application(std::unique_ptr< Config > config, std::unique_ptr< Logs > logs, std::unique_ptr< TimeKeeper > timeKeeper)