Joedb 9.5.0
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Writable_Journal_Client.h
Go to the documentation of this file.
1#ifndef joedb_Writable_Journal_Client_declared
2#define joedb_Writable_Journal_Client_declared
3
5
6namespace joedb
7{
8 namespace detail
9 {
10 class Writable_Journal_Client_Data
11 {
12 protected:
13 Writable_Journal data_journal;
14
15 public:
16 Writable_Journal_Client_Data(Buffered_File &file): data_journal(file) {}
17 };
18 }
19
20 /// @ingroup concurrency
22 protected detail::Writable_Journal_Client_Data,
23 public Writable_Client
24 {
26
27 protected:
28 void read_journal() override
29 {
30 data_journal.skip_directly_to(data_journal.get_checkpoint());
31 }
32
33 public:
35 (
36 Buffered_File &file,
39 ):
40 Writable_Journal_Client_Data(file),
41 Writable_Client(data_journal, connection, content_check)
42 {
44 }
45
46 template<typename F> auto transaction(F transaction)
47 {
49 {
50 return transaction(data_journal);
51 });
52 }
53 };
54
55 /// @ingroup concurrency
70}
71
72#endif
Lock object that allows writing to a database managed by a joedb::Client.
Writable_Client & client
Connection & connection
Definition Client.h:16
Writable specialization of Client.
auto transaction(F transaction)
Writable_Journal_Client_Lock(Writable_Journal_Client &client)
Writable_Journal_Client(Buffered_File &file, Connection &connection, Content_Check content_check=Content_Check::quick)
Content_Check
Definition Connection.h:19
#define JOEDB_DEBUG_ASSERT(x)
Definition assert.h:20
Definition Blob.h:7