20#ifndef RIPPLE_APP_MAIN_APPLICATION_H_INCLUDED 
   21#define RIPPLE_APP_MAIN_APPLICATION_H_INCLUDED 
   23#include <xrpld/core/Config.h> 
   24#include <xrpld/overlay/PeerReservationTable.h> 
   26#include <xrpl/basics/TaggedCache.h> 
   27#include <xrpl/beast/utility/PropertyStream.h> 
   28#include <xrpl/protocol/Protocol.h> 
   29#include <xrpl/shamap/TreeNodeCache.h> 
   31#include <boost/asio.hpp> 
   32#include <boost/program_options.hpp> 
   58    class SharedWeakUnionPointer,
 
   59    class SharedPointerType,
 
   65using SLE = STLedgerEntry;
 
   66using CachedSLEs = TaggedCache<uint256, SLE const>;
 
   68class CollectorManager;
 
   75class InboundTransactions;
 
   95class TransactionMaster;
 
  102class RelationalDatabase;
 
  108template <
class Adaptor>
 
  137    setup(boost::program_options::variables_map 
const& options) = 0;
 
  165    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 bool serverOkay(std::string &reason)=0
 
virtual std::optional< uint256 > const & trapTxID() const =0
 
virtual CollectorManager & getCollectorManager()=0
 
virtual CachedSLEs & cachedSLEs()=0
 
virtual Config & config()=0
 
virtual void start(bool withTimers)=0
 
virtual Overlay & overlay()=0
 
virtual LoadFeeTrack & getFeeTrack()=0
 
virtual OpenLedger & openLedger()=0
 
virtual beast::Journal journal(std::string const &name)=0
 
virtual SHAMapStore & getSHAMapStore()=0
 
virtual bool setup(boost::program_options::variables_map const &options)=0
 
virtual bool isStopping() const =0
 
virtual LedgerCleaner & getLedgerCleaner()=0
 
virtual NodeStore::Database & getNodeStore()=0
 
virtual RCLValidations & getValidations()=0
 
virtual ServerHandler & getServerHandler()=0
 
virtual std::chrono::milliseconds getIOLatency()=0
 
virtual bool checkSigs() const =0
 
virtual OrderBookDB & getOrderBookDB()=0
 
virtual InboundTransactions & getInboundTransactions()=0
 
virtual LedgerReplayer & getLedgerReplayer()=0
 
virtual TimeKeeper & timeKeeper()=0
 
virtual TaggedCache< uint256, AcceptedLedger > & getAcceptedLedgerCache()=0
 
virtual MutexType & getMasterMutex()=0
 
virtual NodeCache & getTempNodeCache()=0
 
virtual JobQueue & getJobQueue()=0
 
virtual ValidatorSite & validatorSites()=0
 
virtual DatabaseCon & getWalletDB()=0
Retrieve the "wallet database".
 
virtual Resource::Manager & getResourceManager()=0
 
virtual NetworkOPs & getOPs()=0
 
virtual InboundLedgers & getInboundLedgers()=0
 
virtual ValidatorList & validators()=0
 
virtual Family & getNodeFamily()=0
 
virtual std::optional< PublicKey const > getValidationPublicKey() const =0
 
virtual LedgerMaster & getLedgerMaster()=0
 
virtual ~Application()=default
 
virtual std::uint64_t instanceID() const =0
Returns a 64-bit instance identifier, generated at startup.
 
virtual RelationalDatabase & getRelationalDatabase()=0
 
virtual ManifestCache & validatorManifests()=0
 
virtual int fdRequired() const =0
 
virtual PathRequests & getPathRequests()=0
 
virtual PeerReservationTable & peerReservations()=0
 
virtual perf::PerfLog & getPerfLog()=0
 
virtual Cluster & cluster()=0
 
virtual LedgerIndex getMaxDisallowedLedger()=0
Ensure that a newly-started validator does not sign proposals older than the last ledger it persisted...
 
virtual void checkSigs(bool)=0
 
virtual LoadManager & getLoadManager()=0
 
virtual TransactionMaster & getMasterTransaction()=0
 
virtual AmendmentTable & getAmendmentTable()=0
 
virtual ManifestCache & publisherManifests()=0
 
virtual HashRouter & getHashRouter()=0
 
virtual boost::asio::io_context & getIOContext()=0
 
virtual void signalStop(std::string msg)=0
 
virtual std::pair< PublicKey, SecretKey > const & nodeIdentity()=0
 
virtual PendingSaves & pendingSaves()=0
 
virtual OpenLedger const & openLedger() const =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.
 
std::unique_ptr< Application > make_Application(std::unique_ptr< Config > config, std::unique_ptr< Logs > logs, std::unique_ptr< TimeKeeper > timeKeeper)
 
TaggedCache< uint256, SLE const  > CachedSLEs