xrpld
Loading...
Searching...
No Matches
ManagerImp.h
1#pragma once
2
3#include <xrpl/beast/utility/Journal.h>
4#include <xrpl/nodestore/Backend.h>
5#include <xrpl/nodestore/Database.h>
6#include <xrpl/nodestore/Factory.h>
7#include <xrpl/nodestore/Manager.h>
8#include <xrpl/nodestore/Scheduler.h>
9
10#include <cstddef>
11#include <memory>
12#include <mutex>
13#include <string>
14#include <vector>
15
16namespace xrpl::node_store {
17
18class ManagerImp : public Manager
19{
20private:
23
24public:
25 static ManagerImp&
26 instance();
27
28 static void
30
31 ManagerImp();
32
33 ~ManagerImp() override = default;
34
35 Factory*
36 find(std::string const& name) override;
37
38 void
39 insert(Factory& factory) override;
40
41 void
42 erase(Factory& factory) override;
43
46 Section const& parameters,
47 std::size_t burstSize,
48 Scheduler& scheduler,
49 beast::Journal journal) override;
50
53 std::size_t burstSize,
54 Scheduler& scheduler,
55 int readThreads,
56 Section const& config,
57 beast::Journal journal) override;
58};
59
60} // namespace xrpl::node_store
A generic endpoint for log messages.
Definition Journal.h:44
Holds a collection of configuration values.
Definition BasicConfig.h:29
Base class for backend factories.
Definition Factory.h:23
Factory * find(std::string const &name) override
Return a pointer to the matching factory if it exists.
void insert(Factory &factory) override
Add a factory.
~ManagerImp() override=default
std::vector< Factory * > list_
Definition ManagerImp.h:22
static ManagerImp & instance()
void erase(Factory &factory) override
Remove a factory.
std::unique_ptr< Database > makeDatabase(std::size_t burstSize, Scheduler &scheduler, int readThreads, Section const &config, beast::Journal journal) override
Construct a NodeStore database.
std::unique_ptr< Backend > makeBackend(Section const &parameters, std::size_t burstSize, Scheduler &scheduler, beast::Journal journal) override
Create a backend.
Scheduling for asynchronous backend activity.