16 const int64_t min = std::min
18 server_journal.get_checkpoint_position(),
19 client_journal.get_checkpoint_position()
32 return server_journal.get_checkpoint_position();
40 std::chrono::milliseconds milliseconds
43 server_journal.pull();
44 client_journal.pull_from(server_journal);
45 return server_journal.get_checkpoint_position();
53 std::chrono::milliseconds milliseconds
56 server_journal.pull();
57 return server_journal.get_checkpoint_position();
66 std::chrono::milliseconds milliseconds
69 throw Exception(
"Connected to a read-only journal: can't lock");
77 const int64_t from_checkpoint,
78 const int64_t until_checkpoint,
82 throw Exception(
"Connected to a read-only journal: can't push");
90 std::chrono::milliseconds milliseconds
93 get_journal().lock_pull();
94 client_journal.pull_from(server_journal);
95 return server_journal.get_checkpoint_position();
103 const int64_t from_checkpoint,
104 const int64_t until_checkpoint,
108 if (!get_journal().is_locked())
109 get_journal().lock_pull();
120 return server_journal.get_checkpoint_position();
void unlock() override
Can be used to cancel a transaction without pushing.
int64_t lock_pull(Writable_Journal &client_journal, std::chrono::milliseconds) override
Fused lock_pull, executed at the start of a write transaction.
int64_t push_until(Readonly_Journal &client_journal, const int64_t from_checkpoint, const int64_t until_checkpoint, bool unlock_after) override
Push new data to the connection.
static SHA_256::Hash get_hash(const Readonly_Journal &journal, int64_t checkpoint)
int64_t get_checkpoint(Readonly_Journal &client_journal, std::chrono::milliseconds) override
Get new connection checkpoint without pulling.
int64_t push_until(Readonly_Journal &client_journal, const int64_t from_checkpoint, const int64_t until_checkpoint, bool unlock_after) override
Push new data to the connection.
int64_t lock_pull(Writable_Journal &client_journal, std::chrono::milliseconds) override
Fused lock_pull, executed at the start of a write transaction.
int64_t pull(Writable_Journal &client_journal, std::chrono::milliseconds) override
Pull new data from the connection.
int64_t handshake(Readonly_Journal &client_journal, bool content_check) override
Called during Client construction.