xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
libxrpl
nodestore
backend
NullFactory.cpp
1
#include <xrpl/basics/base_uint.h>
2
#include <xrpl/beast/utility/Journal.h>
3
#include <xrpl/config/BasicConfig.h>
4
#include <xrpl/nodestore/Backend.h>
5
#include <xrpl/nodestore/Factory.h>
6
#include <xrpl/nodestore/Manager.h>
7
#include <xrpl/nodestore/NodeObject.h>
8
#include <xrpl/nodestore/Scheduler.h>
9
#include <xrpl/nodestore/Types.h>
10
11
#include <
cstddef
>
12
#include <
functional
>
13
#include <
memory
>
14
#include <
string
>
15
16
namespace
xrpl::node_store
{
17
18
class
NullBackend
:
public
Backend
19
{
20
public
:
21
NullBackend
() =
default
;
22
23
~NullBackend
()
override
=
default
;
24
25
std::string
26
getName
()
override
27
{
28
return
std::string
();
29
}
30
31
void
32
open
(
bool
createIfMissing)
override
33
{
34
}
35
36
bool
37
isOpen
()
override
38
{
39
return
false
;
40
}
41
42
void
43
close
()
override
44
{
45
}
46
47
Status
48
fetch
(
UInt256
const
&,
std::shared_ptr<NodeObject>
*)
override
49
{
50
return
Status::NotFound
;
51
}
52
53
void
54
store
(
std::shared_ptr<NodeObject>
const
&
object
)
override
55
{
56
}
57
58
void
59
storeBatch
(
Batch
const
& batch)
override
60
{
61
}
62
63
void
64
sync
()
override
65
{
66
}
67
68
void
69
forEach
(
std::function
<
void
(
std::shared_ptr<NodeObject>
)> f)
override
70
{
71
}
72
73
int
74
getWriteLoad
()
override
75
{
76
return
0;
77
}
78
79
void
80
setDeletePath
()
override
81
{
82
}
83
87
[[nodiscard]]
int
88
fdRequired
()
const override
89
{
90
return
0;
91
}
92
93
private
:
94
};
95
96
//------------------------------------------------------------------------------
97
98
class
NullFactory
:
public
Factory
99
{
100
private
:
101
Manager
&
manager_
;
102
103
public
:
104
explicit
NullFactory
(
Manager
& manager) :
manager_
(manager)
105
{
106
manager_
.insert(*
this
);
107
}
108
109
[[nodiscard]]
std::string
110
getName
()
const override
111
{
112
return
"none"
;
113
}
114
115
std::unique_ptr<Backend>
116
createInstance
(
size_t
,
Section
const
&,
std::size_t
,
Scheduler
&,
beast::Journal
)
override
117
{
118
return
std::make_unique<NullBackend>
();
119
}
120
};
121
122
void
123
registerNullFactory
(
Manager
& manager)
124
{
125
static
NullFactory
const
kInstance{manager};
126
}
127
128
}
// 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::Backend
A backend used for the NodeStore.
Definition
Backend.h:29
xrpl::node_store::Factory
Base class for backend factories.
Definition
Factory.h:23
xrpl::node_store::Manager
Singleton for managing NodeStore factories and back ends.
Definition
Manager.h:19
xrpl::node_store::NullBackend::isOpen
bool isOpen() override
Returns true is the database is open.
Definition
NullFactory.cpp:37
xrpl::node_store::NullBackend::fetch
Status fetch(UInt256 const &, std::shared_ptr< NodeObject > *) override
Fetch a single object.
Definition
NullFactory.cpp:48
xrpl::node_store::NullBackend::fdRequired
int fdRequired() const override
Returns the number of file descriptors the backend expects to need.
Definition
NullFactory.cpp:88
xrpl::node_store::NullBackend::forEach
void forEach(std::function< void(std::shared_ptr< NodeObject >)> f) override
Visit every object in the database This is usually called during import.
Definition
NullFactory.cpp:69
xrpl::node_store::NullBackend::storeBatch
void storeBatch(Batch const &batch) override
Store a group of objects.
Definition
NullFactory.cpp:59
xrpl::node_store::NullBackend::store
void store(std::shared_ptr< NodeObject > const &object) override
Store a single object.
Definition
NullFactory.cpp:54
xrpl::node_store::NullBackend::close
void close() override
Close the backend.
Definition
NullFactory.cpp:43
xrpl::node_store::NullBackend::open
void open(bool createIfMissing) override
Open the backend.
Definition
NullFactory.cpp:32
xrpl::node_store::NullBackend::~NullBackend
~NullBackend() override=default
xrpl::node_store::NullBackend::getName
std::string getName() override
Get the human-readable name of this backend.
Definition
NullFactory.cpp:26
xrpl::node_store::NullBackend::getWriteLoad
int getWriteLoad() override
Estimate the number of write operations pending.
Definition
NullFactory.cpp:74
xrpl::node_store::NullBackend::NullBackend
NullBackend()=default
xrpl::node_store::NullBackend::sync
void sync() override
Definition
NullFactory.cpp:64
xrpl::node_store::NullBackend::setDeletePath
void setDeletePath() override
Remove contents on disk upon destruction.
Definition
NullFactory.cpp:80
xrpl::node_store::NullFactory
Definition
NullFactory.cpp:99
xrpl::node_store::NullFactory::createInstance
std::unique_ptr< Backend > createInstance(size_t, Section const &, std::size_t, Scheduler &, beast::Journal) override
Create an instance of this factory's backend.
Definition
NullFactory.cpp:116
xrpl::node_store::NullFactory::NullFactory
NullFactory(Manager &manager)
Definition
NullFactory.cpp:104
xrpl::node_store::NullFactory::getName
std::string getName() const override
Retrieve the name of this factory.
Definition
NullFactory.cpp:110
xrpl::node_store::NullFactory::manager_
Manager & manager_
Definition
NullFactory.cpp:101
xrpl::node_store::Scheduler
Scheduling for asynchronous backend activity.
Definition
include/xrpl/nodestore/Scheduler.h:46
cstddef
std::function
functional
std::make_unique
T make_unique(T... args)
memory
xrpl::node_store
Definition
ServiceRegistry.h:18
xrpl::node_store::Batch
std::vector< std::shared_ptr< NodeObject > > Batch
A batch of NodeObjects to write at once.
Definition
nodestore/Types.h:37
xrpl::node_store::Status
Status
Return codes from Backend operations.
Definition
nodestore/Types.h:24
xrpl::node_store::Status::NotFound
@ NotFound
Definition
nodestore/Types.h:26
xrpl::node_store::registerNullFactory
void registerNullFactory(Manager &manager)
Definition
NullFactory.cpp:123
xrpl::UInt256
BaseUInt< 256 > UInt256
Definition
base_uint.h:580
std::shared_ptr
std::size_t
string
std::unique_ptr
Generated by
1.17.0