Joedb 9.1.4
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 journal;
14
15 public:
16 Writable_Journal_Client_Data(Buffered_File &file): journal(file) {}
17 };
18 }
19
20 /// @ingroup concurrency
22 protected detail::Writable_Journal_Client_Data,
23 public Client
24 {
26
27 protected:
28 void read_journal() override {journal.seek_to_checkpoint();}
29
30 public:
32 (
33 Buffered_File &file,
34 Connection &connection,
35 bool content_check = true
36 ):
37 Writable_Journal_Client_Data(file),
38 Client(journal, connection, content_check)
39 {
41 }
42
43 template<typename F> void transaction(F transaction)
44 {
46 {
47 transaction(journal);
48 });
49 }
50 };
51
52 /// @ingroup concurrency
67}
68
69#endif
Lock object that allows writing to a database managed by a joedb::Client.
Definition Client.h:161
bool is_locked() const
Definition Client.h:168
Client & client
Definition Client.h:166
Handle concurrent access to a file with a joedb::Connection.
Definition Client.h:12
void transaction(F transaction)
Definition Client.h:18
Writable_Journal_Client_Lock(Writable_Journal_Client &client)
Writable_Journal_Client(Buffered_File &file, Connection &connection, bool content_check=true)
#define JOEDB_ASSERT(x)
Definition assert.h:18
Definition Blob.h:7