rippled
Loading...
Searching...
No Matches
SociDB.h
1#pragma once
2
11#if defined(__clang__)
12#pragma clang diagnostic push
13#pragma clang diagnostic ignored "-Wdeprecated"
14#endif
15
16#include <xrpl/basics/Log.h>
17#include <xrpl/core/JobQueue.h>
18
19#define SOCI_USE_BOOST
20#include <soci/soci.h>
21
22#include <cstdint>
23#include <string>
24#include <vector>
25
26namespace sqlite_api {
27struct sqlite3;
28}
29
30namespace xrpl {
31
32class BasicConfig;
33
40{
42 explicit DBConfig(std::string const& dbPath);
43
44public:
45 DBConfig(BasicConfig const& config, std::string const& dbName);
47 connectionString() const;
48 void
49 open(soci::session& s) const;
50};
51
64void
65open(soci::session& s, BasicConfig const& config, std::string const& dbName);
66
76void
77open(soci::session& s, std::string const& beName, std::string const& connectionString);
78
80getKBUsedAll(soci::session& s);
82getKBUsedDB(soci::session& s);
83
84void
85convert(soci::blob& from, std::vector<std::uint8_t>& to);
86void
87convert(soci::blob& from, std::string& to);
88void
89convert(std::vector<std::uint8_t> const& from, soci::blob& to);
90void
91convert(std::string const& from, soci::blob& to);
92
93class Checkpointer : public std::enable_shared_from_this<Checkpointer>
94{
95public:
96 virtual std::uintptr_t
97 id() const = 0;
98 virtual ~Checkpointer() = default;
99
100 virtual void
101 schedule() = 0;
102
103 virtual void
105};
106
115
116} // namespace xrpl
117
118#if defined(__clang__)
119#pragma clang diagnostic pop
120#endif
Holds unparsed configuration information.
virtual void checkpoint()=0
virtual std::uintptr_t id() const =0
virtual void schedule()=0
virtual ~Checkpointer()=default
DBConfig is used when a client wants to delay opening a soci::session after parsing the config parame...
Definition SociDB.h:40
std::string connectionString() const
Definition SociDB.cpp:61
std::string connectionString_
Definition SociDB.h:41
A pool of threads to perform work.
Definition JobQueue.h:37
Manages partitions for logging.
Definition Log.h:32
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
std::uint32_t getKBUsedDB(soci::session &s)
Definition SociDB.cpp:110
std::uint32_t getKBUsedAll(soci::session &s)
Definition SociDB.cpp:102
@ open
We haven't closed our ledger yet, but others might have.
std::shared_ptr< Checkpointer > makeCheckpointer(std::uintptr_t id, std::weak_ptr< soci::session >, JobQueue &, Logs &)
Returns a new checkpointer which makes checkpoints of a soci database every checkpointPageCount pages...
Definition SociDB.cpp:288
void convert(soci::blob &from, std::vector< std::uint8_t > &to)
Definition SociDB.cpp:124