Joedb 9.1.4
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Writable_Connection.h
Go to the documentation of this file.
1#ifndef joedb_Writable_Connection_declared
2#define joedb_Writable_Connection_declared
3
5
6namespace joedb
7{
8 ////////////////////////////////////////////////////////////////////////////
10 ////////////////////////////////////////////////////////////////////////////
11 {
12 private:
13 Writable &writable;
14
15 public:
16 //////////////////////////////////////////////////////////////////////////
17 Writable_Connection(Writable &writable): writable(writable)
18 //////////////////////////////////////////////////////////////////////////
19 {
20 }
21
22 //////////////////////////////////////////////////////////////////////////
23 int64_t handshake
24 //////////////////////////////////////////////////////////////////////////
25 (
26 Readonly_Journal &client_journal,
27 bool contentcheck
28 ) override
29 {
30 const int64_t client_position = client_journal.get_position();
31
32 client_journal.replay_log(writable);
33 client_journal.set_position(client_position);
34
35 return client_journal.get_checkpoint_position();
36 }
37
38 //////////////////////////////////////////////////////////////////////////
39 int64_t push_until
40 //////////////////////////////////////////////////////////////////////////
41 (
42 Readonly_Journal &client_journal,
43 int64_t from_position,
44 int64_t until_position,
45 bool unlock_after
46 ) override
47 {
48 const int64_t client_position = client_journal.get_position();
49
50 const int64_t end_position = std::min
51 (
52 client_journal.get_checkpoint_position(),
53 until_position
54 );
55
56 client_journal.set_position(from_position);
57 client_journal.play_until(writable, end_position);
58 writable.default_checkpoint();
59 client_journal.set_position(client_position);
60
61 return client_journal.get_checkpoint_position();
62 }
63 };
64}
65
66#endif
int64_t push_until(Readonly_Journal &client_journal, int64_t from_position, int64_t until_position, bool unlock_after) override
Push new data to the connection.
Writable_Connection(Writable &writable)
int64_t handshake(Readonly_Journal &client_journal, bool contentcheck) override
Called during Client construction.
void default_checkpoint()
Definition Writable.cpp:32
Definition Blob.h:7