xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
rdb
SociDB.h
1
#pragma once
2
11
12
#include <soci/blob.h>
13
#include <soci/session.h>
14
15
#include <
memory
>
16
#ifdef __clang__
17
#pragma clang diagnostic push
18
#pragma clang diagnostic ignored "-Wdeprecated"
19
#endif
20
21
#include <xrpl/core/JobQueue.h>
22
#include <xrpl/core/ServiceRegistry.h>
23
24
#define SOCI_USE_BOOST
25
26
#include <
cstdint
>
27
#include <
string
>
28
#include <
vector
>
29
30
namespace
sqlite_api
{
31
struct
sqlite3;
32
}
// namespace sqlite_api
33
34
namespace
xrpl
{
35
36
class
BasicConfig;
37
43
class
DBConfig
44
{
45
std::string
connectionString_
;
46
explicit
DBConfig
(
std::string
dbPath);
47
48
public
:
49
DBConfig
(
BasicConfig
const
& config,
std::string
const
& dbName);
50
[[nodiscard]]
std::string
51
connectionString
()
const
;
52
void
53
open
(soci::session& s)
const
;
54
};
55
68
void
69
open
(soci::session& s,
BasicConfig
const
& config,
std::string
const
& dbName);
70
80
void
81
open
(soci::session& s,
std::string
const
& beName,
std::string
const
& connectionString);
82
83
std::uint32_t
84
getKBUsedAll
(soci::session& s);
85
std::uint32_t
86
getKBUsedDB
(soci::session& s);
87
88
void
89
convert
(soci::blob& from,
std::vector<std::uint8_t>
& to);
90
void
91
convert
(soci::blob& from,
std::string
& to);
92
void
93
convert
(
std::vector<std::uint8_t>
const
& from, soci::blob& to);
94
void
95
convert
(
std::string
const
& from, soci::blob& to);
96
97
class
Checkpointer
:
public
std::enable_shared_from_this
<Checkpointer>
98
{
99
public
:
100
virtual
std::uintptr_t
101
id
()
const
= 0;
102
virtual
~Checkpointer
() =
default
;
103
104
virtual
void
105
schedule
() = 0;
106
107
virtual
void
108
checkpoint
() = 0;
109
};
110
118
std::shared_ptr<Checkpointer>
119
makeCheckpointer
(
std::uintptr_t
id
,
std::weak_ptr<soci::session>
,
JobQueue
&,
ServiceRegistry
&);
120
121
}
// namespace xrpl
122
123
#ifdef __clang__
124
#pragma clang diagnostic pop
125
#endif
std::string
xrpl::BasicConfig
Holds unparsed configuration information.
Definition
BasicConfig.h:222
xrpl::Checkpointer
Definition
SociDB.h:98
xrpl::Checkpointer::checkpoint
virtual void checkpoint()=0
xrpl::Checkpointer::id
virtual std::uintptr_t id() const =0
xrpl::Checkpointer::schedule
virtual void schedule()=0
xrpl::Checkpointer::~Checkpointer
virtual ~Checkpointer()=default
xrpl::DBConfig::open
void open(soci::session &s) const
Definition
SociDB.cpp:85
xrpl::DBConfig::connectionString
std::string connectionString() const
Definition
SociDB.cpp:79
xrpl::DBConfig::DBConfig
DBConfig(std::string dbPath)
Definition
SociDB.cpp:69
xrpl::DBConfig::connectionString_
std::string connectionString_
Definition
SociDB.h:45
xrpl::JobQueue
A pool of threads to perform work.
Definition
JobQueue.h:60
xrpl::ServiceRegistry
Service registry for dependency injection.
Definition
ServiceRegistry.h:98
cstdint
std::enable_shared_from_this
std::uint32_t
memory
sqlite_api
Definition
SociDB.h:30
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::getKBUsedDB
std::uint32_t getKBUsedDB(soci::session &s)
Definition
SociDB.cpp:132
xrpl::getKBUsedAll
std::uint32_t getKBUsedAll(soci::session &s)
Definition
SociDB.cpp:124
xrpl::open
void open(soci::session &s, BasicConfig const &config, std::string const &dbName)
Open a soci session.
Definition
SociDB.cpp:91
xrpl::makeCheckpointer
std::shared_ptr< Checkpointer > makeCheckpointer(std::uintptr_t id, std::weak_ptr< soci::session >, JobQueue &, ServiceRegistry &)
Returns a new checkpointer which makes checkpoints of a soci database every checkpointPageCount pages...
Definition
SociDB.cpp:333
xrpl::convert
void convert(soci::blob &from, std::vector< std::uint8_t > &to)
Definition
SociDB.cpp:146
std::shared_ptr
string
vector
std::weak_ptr
Generated by
1.17.0