rippled
Loading...
Searching...
No Matches
Manager.h
1#ifndef XRPL_NODESTORE_MANAGER_H_INCLUDED
2#define XRPL_NODESTORE_MANAGER_H_INCLUDED
3
4#include <xrpl/nodestore/DatabaseRotating.h>
5#include <xrpl/nodestore/Factory.h>
6
7namespace ripple {
8
9namespace NodeStore {
10
13{
14public:
15 virtual ~Manager() = default;
16 Manager() = default;
17 Manager(Manager const&) = delete;
18 Manager&
19 operator=(Manager const&) = delete;
20
22 static Manager&
23 instance();
24
26 virtual void
27 insert(Factory& factory) = 0;
28
30 virtual void
31 erase(Factory& factory) = 0;
32
37 virtual Factory*
38 find(std::string const& name) = 0;
39
43 Section const& parameters,
45 Scheduler& scheduler,
46 beast::Journal journal) = 0;
47
79 Scheduler& scheduler,
80 int readThreads,
81 Section const& backendParameters,
82 beast::Journal journal) = 0;
83};
84
85} // namespace NodeStore
86} // namespace ripple
87
88#endif
A generic endpoint for log messages.
Definition Journal.h:41
Base class for backend factories.
Definition Factory.h:17
Singleton for managing NodeStore factories and back ends.
Definition Manager.h:13
virtual std::unique_ptr< Backend > make_Backend(Section const &parameters, std::size_t burstSize, Scheduler &scheduler, beast::Journal journal)=0
Create a backend.
virtual std::unique_ptr< Database > make_Database(std::size_t burstSize, Scheduler &scheduler, int readThreads, Section const &backendParameters, beast::Journal journal)=0
Construct a NodeStore database.
static Manager & instance()
Returns the instance of the manager singleton.
Manager(Manager const &)=delete
virtual Factory * find(std::string const &name)=0
Return a pointer to the matching factory if it exists.
virtual ~Manager()=default
virtual void erase(Factory &factory)=0
Remove a factory.
virtual void insert(Factory &factory)=0
Add a factory.
Manager & operator=(Manager const &)=delete
Scheduling for asynchronous backend activity.
Holds a collection of configuration values.
Definition BasicConfig.h:26
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6