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 <xrpld/core/JobQueue.h>
18
19#include <xrpl/basics/Log.h>
20
21#define SOCI_USE_BOOST
22#include <soci/soci.h>
23
24#include <cstdint>
25#include <string>
26#include <vector>
27
28namespace sqlite_api {
29struct sqlite3;
30}
31
32namespace ripple {
33
34class BasicConfig;
35
42{
44 explicit DBConfig(std::string const& dbPath);
45
46public:
47 DBConfig(BasicConfig const& config, std::string const& dbName);
49 connectionString() const;
50 void
51 open(soci::session& s) const;
52};
53
66void
67open(soci::session& s, BasicConfig const& config, std::string const& dbName);
68
78void
79open(
80 soci::session& s,
81 std::string const& beName,
82 std::string const& connectionString);
83
85getKBUsedAll(soci::session& s);
87getKBUsedDB(soci::session& s);
88
89void
90convert(soci::blob& from, std::vector<std::uint8_t>& to);
91void
92convert(soci::blob& from, std::string& to);
93void
94convert(std::vector<std::uint8_t> const& from, soci::blob& to);
95void
96convert(std::string const& from, soci::blob& to);
97
98class Checkpointer : public std::enable_shared_from_this<Checkpointer>
99{
100public:
101 virtual std::uintptr_t
102 id() const = 0;
103 virtual ~Checkpointer() = default;
104
105 virtual void
106 schedule() = 0;
107
108 virtual void
110};
111
122 JobQueue&,
123 Logs&);
124
125} // namespace ripple
126
127#if defined(__clang__)
128#pragma clang diagnostic pop
129#endif
130
131#endif
Holds unparsed configuration information.
virtual ~Checkpointer()=default
virtual std::uintptr_t id() const =0
virtual void checkpoint()=0
virtual void schedule()=0
DBConfig is used when a client wants to delay opening a soci::session after parsing the config parame...
Definition SociDB.h:42
std::string connectionString_
Definition SociDB.h:43
std::string connectionString() const
Definition SociDB.cpp:70
A pool of threads to perform work.
Definition JobQueue.h:39
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 getKBUsedAll(soci::session &s)
Definition SociDB.cpp:114
std::uint32_t getKBUsedDB(soci::session &s)
Definition SociDB.cpp:123
void convert(soci::blob &from, std::vector< std::uint8_t > &to)
Definition SociDB.cpp:138
@ 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