20 #ifndef RIPPLE_APP_MAIN_APPLICATION_H_INCLUDED
21 #define RIPPLE_APP_MAIN_APPLICATION_H_INCLUDED
23 #include <ripple/basics/TaggedCache.h>
24 #include <ripple/beast/utility/PropertyStream.h>
25 #include <ripple/core/Config.h>
26 #include <ripple/overlay/PeerReservationTable.h>
27 #include <ripple/protocol/Protocol.h>
28 #include <ripple/shamap/FullBelowCache.h>
29 #include <ripple/shamap/TreeNodeCache.h>
30 #include <boost/asio.hpp>
31 #include <boost/program_options.hpp>
110 template <
class Adaptor>
139 setup(boost::program_options::variables_map
const& options) = 0;
142 start(
bool withTimers) = 0;
167 virtual boost::asio::io_service&
std::string const & name() const
Returns the name of this source.
Provides server functionality for clients.
virtual bool setup(boost::program_options::variables_map const &options)=0
Generic validations adaptor class for RCL.
virtual bool checkSigs() const =0
virtual Family & getNodeFamily()=0
virtual OrderBookDB & getOrderBookDB()=0
A ledger that has become irrevocable.
virtual NodeCache & getTempNodeCache()=0
virtual Cluster & cluster()=0
virtual void start(bool withTimers)=0
virtual TaggedCache< uint256, AcceptedLedger > & getAcceptedLedgerCache()=0
Persistency layer for NodeObject.
Manages partitions for logging.
virtual ValidatorSite & validatorSites()=0
Subclasses can be called to write to a stream and have children.
virtual AmendmentTable & getAmendmentTable()=0
virtual std::uint64_t instanceID() const =0
Returns a 64-bit instance identifier, generated at startup.
virtual PeerReservationTable & peerReservations()=0
Provides the beast::insight::Collector service.
class to create database, launch online delete thread, and related SQLite database
virtual void signalStop(std::string msg="")=0
virtual NodeStore::DatabaseShard * getShardStore()=0
Singleton class that maintains performance counters and optionally writes Json-formatted data to a di...
Keeps track of which ledgers haven't been fully saved.
virtual bool isStopping() const =0
virtual TimeKeeper & timeKeeper()=0
virtual MutexType & getMasterMutex()=0
virtual OpenLedger & openLedger()=0
virtual NetworkOPs & getOPs()=0
virtual CachedSLEs & cachedSLEs()=0
virtual DatabaseCon & getWalletDB()=0
Retrieve the "wallet database".
Validator keys and manifest as set in configuration file.
Routing table for objects identified by hash.
virtual InboundLedgers & getInboundLedgers()=0
virtual LoadFeeTrack & getFeeTrack()=0
virtual ReportingETL & getReportingETL()=0
virtual bool serverOkay(std::string &reason)=0
virtual ~Application()=default
virtual std::chrono::milliseconds getIOLatency()=0
virtual LoadManager & getLoadManager()=0
virtual InboundTransactions & getInboundTransactions()=0
virtual LedgerMaster & getLedgerMaster()=0
virtual PendingSaves & pendingSaves()=0
virtual Config & config()=0
virtual RelationalDatabase & getRelationalDatabase()=0
virtual std::pair< PublicKey, SecretKey > const & nodeIdentity()=0
A collection of historical shards.
Manages the current fee schedule.
virtual JobQueue & getJobQueue()=0
This class is responsible for continuously extracting data from a p2p node, and writing that data to ...
A generic endpoint for log messages.
virtual RCLValidations & getValidations()=0
Manages various times used by the server.
virtual PathRequests & getPathRequests()=0
virtual PublicKey const & getValidationPublicKey() const =0
Manages the lifetime of inbound ledgers.
Represents the open ledger.
virtual ValidatorList & validators()=0
virtual boost::asio::io_service & getIOService()=0
A pool of threads to perform work.
Tracks load and resource consumption.
virtual Resource::Manager & getResourceManager()=0
Remembers manifests with the highest sequence number.
virtual LedgerCleaner & getLedgerCleaner()=0
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
virtual NodeStore::Database & getNodeStore()=0
virtual beast::Journal journal(std::string const &name)=0
virtual ManifestCache & validatorManifests()=0
virtual Family * getShardFamily()=0
Manages the set of connected peers.
virtual ManifestCache & publisherManifests()=0
virtual Overlay & overlay()=0
Handles the download and import of one or more shard archives.
Manages the lifetime of ledger replay tasks.
Maintains current and recent ledger validations.
virtual LedgerReplayer & getLedgerReplayer()=0
virtual SHAMapStore & getSHAMapStore()=0
virtual CollectorManager & getCollectorManager()=0
virtual perf::PerfLog & getPerfLog()=0
Check the ledger/transaction databases to make sure they have continuity.
The amendment table stores the list of enabled and potential amendments.
virtual HashRouter & getHashRouter()=0
std::unique_ptr< Application > make_Application(std::unique_ptr< Config > config, std::unique_ptr< Logs > logs, std::unique_ptr< TimeKeeper > timeKeeper)
virtual int fdRequired() const =0
virtual LedgerIndex getMaxDisallowedLedger()=0
Ensure that a newly-started validator does not sign proposals older than the last ledger it persisted...
virtual RPC::ShardArchiveHandler * getShardArchiveHandler(bool tryRecovery=false)=0
Manages the acquisition and lifetime of transaction sets.
virtual TransactionMaster & getMasterTransaction()=0