3#include <xrpl/basics/TaggedCache.h>
4#include <xrpl/basics/chrono.h>
5#include <xrpl/nodestore/Database.h>
28 "xrpl::NodeStore::DatabaseNodeImp::DatabaseNodeImp : non-null "
A generic endpoint for log messages.
std::string getName() const override
Retrieve the name associated with this backend.
void store(NodeObjectType type, Blob &&data, uint256 const &hash, std::uint32_t) override
Store the object.
std::shared_ptr< Backend > backend_
std::int32_t getWriteLoad() const override
Retrieve the estimated number of pending write operations.
std::shared_ptr< NodeObject > fetchNodeObject(uint256 const &hash, std::uint32_t, FetchReport &fetchReport, bool duplicate) override
void for_each(std::function< void(std::shared_ptr< NodeObject >)> f) override
Visit every object in the database This is usually called during import.
void asyncFetch(uint256 const &hash, std::uint32_t ledgerSeq, std::function< void(std::shared_ptr< NodeObject > const &)> &&callback) override
Fetch an object without waiting.
bool isSameDB(std::uint32_t, std::uint32_t) override
DatabaseNodeImp(Scheduler &scheduler, int readThreads, std::shared_ptr< Backend > backend, Section const &config, beast::Journal j)
DatabaseNodeImp(DatabaseNodeImp const &)=delete
DatabaseNodeImp & operator=(DatabaseNodeImp const &)=delete
std::vector< std::shared_ptr< NodeObject > > fetchBatch(std::vector< uint256 > const &hashes)
void importDatabase(Database &source) override
Import objects from another database.
Persistency layer for NodeObject.
void importInternal(Backend &dstBackend, Database &srcDB)
Scheduling for asynchronous backend activity.
Holds a collection of configuration values.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
NodeObjectType
The types of node objects.
Contains information about a fetch operation.