xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
nodestore
detail
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
16
namespace
xrpl::node_store
{
17
18
class
ManagerImp
:
public
Manager
19
{
20
private
:
21
std::mutex
mutex_
;
22
std::vector<Factory*>
list_
;
23
24
public
:
25
static
ManagerImp
&
26
instance
();
27
28
static
void
29
missingBackend
();
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
44
std::unique_ptr<Backend>
45
makeBackend
(
46
Section
const
& parameters,
47
std::size_t
burstSize,
48
Scheduler
& scheduler,
49
beast::Journal
journal)
override
;
50
51
std::unique_ptr<Database>
52
makeDatabase
(
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
std::string
beast::Journal
A generic endpoint for log messages.
Definition
Journal.h:44
xrpl::Section
Holds a collection of configuration values.
Definition
BasicConfig.h:28
xrpl::node_store::Factory
Base class for backend factories.
Definition
Factory.h:23
xrpl::node_store::ManagerImp::find
Factory * find(std::string const &name) override
Return a pointer to the matching factory if it exists.
Definition
ManagerImp.cpp:120
xrpl::node_store::ManagerImp::insert
void insert(Factory &factory) override
Add a factory.
Definition
ManagerImp.cpp:103
xrpl::node_store::ManagerImp::~ManagerImp
~ManagerImp() override=default
xrpl::node_store::ManagerImp::missingBackend
static void missingBackend()
Definition
ManagerImp.cpp:35
xrpl::node_store::ManagerImp::list_
std::vector< Factory * > list_
Definition
ManagerImp.h:22
xrpl::node_store::ManagerImp::ManagerImp
ManagerImp()
Definition
ManagerImp.cpp:57
xrpl::node_store::ManagerImp::instance
static ManagerImp & instance()
Definition
ManagerImp.cpp:28
xrpl::node_store::ManagerImp::erase
void erase(Factory &factory) override
Remove a factory.
Definition
ManagerImp.cpp:110
xrpl::node_store::ManagerImp::makeDatabase
std::unique_ptr< Database > makeDatabase(std::size_t burstSize, Scheduler &scheduler, int readThreads, Section const &config, beast::Journal journal) override
Construct a NodeStore database.
Definition
ManagerImp.cpp:89
xrpl::node_store::ManagerImp::mutex_
std::mutex mutex_
Definition
ManagerImp.h:21
xrpl::node_store::ManagerImp::makeBackend
std::unique_ptr< Backend > makeBackend(Section const ¶meters, std::size_t burstSize, Scheduler &scheduler, beast::Journal journal) override
Create a backend.
Definition
ManagerImp.cpp:68
xrpl::node_store::Manager::Manager
Manager()=default
xrpl::node_store::Scheduler
Scheduling for asynchronous backend activity.
Definition
include/xrpl/nodestore/Scheduler.h:46
cstddef
memory
mutex
xrpl::node_store
Definition
ServiceRegistry.h:18
std::size_t
string
std::unique_ptr
vector
Generated by
1.17.0