rippled
Loading...
Searching...
No Matches
SociDB.h
1#ifndef XRPL_SOCIDB_H_INCLUDED
2#define XRPL_SOCIDB_H_INCLUDED
3
12#if defined(__clang__)
13#pragma clang diagnostic push
14#pragma clang diagnostic ignored "-Wdeprecated"
15#endif
16
17#include <xrpl/basics/Log.h>
18#include <xrpl/core/JobQueue.h>
19
20#define SOCI_USE_BOOST
21#include <soci/soci.h>
22
23#include <cstdint>
24#include <string>
25#include <vector>
26
27namespace sqlite_api {
28struct sqlite3;
29}
30
31namespace xrpl {
32
33class BasicConfig;
34
41{
43 explicit DBConfig(std::string const& dbPath);
44
45public:
46 DBConfig(BasicConfig const& config, std::string const& dbName);
48 connectionString() const;
49 void
50 open(soci::session& s) const;
51};
52
65void
66open(soci::session& s, BasicConfig const& config, std::string const& dbName);
67
77void
78open(
79 soci::session& s,
80 std::string const& beName,
81 std::string const& connectionString);
82
84getKBUsedAll(soci::session& s);
86getKBUsedDB(soci::session& s);
87
88void
89convert(soci::blob& from, std::vector<std::uint8_t>& to);
90void
91convert(soci::blob& from, std::string& to);
92void
93convert(std::vector<std::uint8_t> const& from, soci::blob& to);
94void
95convert(std::string const& from, soci::blob& to);
96
97class Checkpointer : public std::enable_shared_from_this<Checkpointer>
98{
99public:
100 virtual std::uintptr_t
101 id() const = 0;
102 virtual ~Checkpointer() = default;
103
104 virtual void
105 schedule() = 0;
106
107 virtual void
109};
110
121 JobQueue&,
122 Logs&);
123
124} // namespace xrpl
125
126#if defined(__clang__)
127#pragma clang diagnostic pop
128#endif
129
130#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:41
std::string connectionString() const
Definition SociDB.cpp:70
std::string connectionString_
Definition SociDB.h:42
A pool of threads to perform work.
Definition JobQueue.h:38
Manages partitions for logging.
Definition Log.h:33
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::uint32_t getKBUsedDB(soci::session &s)
Definition SociDB.cpp:123
std::uint32_t getKBUsedAll(soci::session &s)
Definition SociDB.cpp:114
@ 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 > session, JobQueue &queue, Logs &logs)
Returns a new checkpointer which makes checkpoints of a soci database every checkpointPageCount pages...
Definition SociDB.cpp:317
void convert(soci::blob &from, std::vector< std::uint8_t > &to)
Definition SociDB.cpp:138