xrpld
Loading...
Searching...
No Matches
Manager.h
1#pragma once
2
3#include <xrpl/nodestore/DatabaseRotating.h>
4#include <xrpl/nodestore/Factory.h>
5
6namespace xrpl::NodeStore {
7
9class Manager
10{
11public:
12 virtual ~Manager() = default;
13 Manager() = default;
14 Manager(Manager const&) = delete;
15 Manager&
16 operator=(Manager const&) = delete;
17
19 static Manager&
20 instance();
21
23 virtual void
24 insert(Factory& factory) = 0;
25
27 virtual void
28 erase(Factory& factory) = 0;
29
34 virtual Factory*
35 find(std::string const& name) = 0;
36
40 Section const& parameters,
41 std::size_t burstSize,
42 Scheduler& scheduler,
43 beast::Journal journal) = 0;
44
75 std::size_t burstSize,
76 Scheduler& scheduler,
77 int readThreads,
78 Section const& backendParameters,
79 beast::Journal journal) = 0;
80};
81
82} // namespace xrpl::NodeStore
A generic endpoint for log messages.
Definition Journal.h:38
Base class for backend factories.
Definition Factory.h:17
Manager & operator=(Manager const &)=delete
virtual std::unique_ptr< Backend > makeBackend(Section const &parameters, std::size_t burstSize, Scheduler &scheduler, beast::Journal journal)=0
Create a backend.
static Manager & instance()
Returns the instance of the manager singleton.
virtual ~Manager()=default
virtual void erase(Factory &factory)=0
Remove a factory.
virtual void insert(Factory &factory)=0
Add a factory.
virtual Factory * find(std::string const &name)=0
Return a pointer to the matching factory if it exists.
virtual std::unique_ptr< Database > makeDatabase(std::size_t burstSize, Scheduler &scheduler, int readThreads, Section const &backendParameters, beast::Journal journal)=0
Construct a NodeStore database.
Manager(Manager const &)=delete
Scheduling for asynchronous backend activity.
Holds a collection of configuration values.
Definition BasicConfig.h:24