15 const int64_t min = std::min
17 server_journal.get_checkpoint(),
18 client_journal.get_checkpoint()
21 const int64_t fast_size = 1 << 11;
25 if (!client_journal.equal_to(server_journal,
Header::ssize, min))
32 !client_journal.equal_to(server_journal,
Header::ssize, fast_size) ||
33 !client_journal.equal_to(server_journal, min - fast_size, min)
41 return server_journal.get_checkpoint();
51 std::chrono::milliseconds wait
54 if (
bool(lock_action))
55 throw Exception(
"Connected to a read-only journal: can't lock");
57 server_journal.pull();
59 if (
bool(data_transfer))
60 client_journal.pull_from(server_journal);
62 return server_journal.get_checkpoint();
75 throw Exception(
"Connected to a read-only journal: can't push");
85 std::chrono::milliseconds wait
88 if (
bool(lock_action))
89 get_journal().lock_pull();
93 if (
bool(data_transfer))
94 client_journal.pull_from(server_journal);
96 return server_journal.get_checkpoint();
109 if (!get_journal().is_locked())
110 get_journal().lock_pull();
112 if (from != server_journal.get_checkpoint())
114 get_journal().pull_from(client_journal, until);
116 if (
bool(unlock_action))
117 get_journal().unlock();
119 return server_journal.get_checkpoint();
void unlock() override
Unlock the connection.
int64_t push(const Readonly_Journal &client_journal, const int64_t from, const int64_t until, Unlock_Action unlock_action) override
Push new data to the connection.
int64_t pull(Lock_Action lock_action, Data_Transfer data_transfer, Writable_Journal &client_journal, std::chrono::milliseconds wait) override
Pull from the connection.
int64_t pull(Lock_Action lock_action, Data_Transfer data_transfer, Writable_Journal &client_journal, std::chrono::milliseconds wait) override
Pull from the connection.
int64_t handshake(const Readonly_Journal &client_journal, Content_Check content_check) override
Called during Client construction.
int64_t push(const Readonly_Journal &client_journal, const int64_t from, const int64_t until, Unlock_Action unlock_action) override
Push new data to the connection.