Joedb 9.5.0
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Server_Connection.h
Go to the documentation of this file.
1#ifndef joedb_Server_Connection_declared
2#define joedb_Server_Connection_declared
3
6
7namespace joedb
8{
9 /// @ingroup concurrency
11 {
12 protected:
14 (
15 const Readonly_Journal &client_journal,
16 int64_t server_checkpoint
17 );
18
19 public:
20 Server_Connection(Channel &channel, std::ostream *log = nullptr):
22 {
23 }
24
25 size_t pread(char *data, size_t size, int64_t offset) const;
26
27 int64_t handshake
28 (
29 const Readonly_Journal &client_journal,
30 Content_Check content_check
31 ) override;
32
33 int64_t pull
34 (
35 Lock_Action lock_action,
36 Data_Transfer data_transfer,
37 Writable_Journal &client_journal,
38 std::chrono::milliseconds wait = std::chrono::milliseconds(0)
39 ) override;
40
41 int64_t push
42 (
43 const Readonly_Journal &client_journal,
44 int64_t from,
45 int64_t until,
46 Unlock_Action unlock_action
47 ) override;
48
49 void unlock() override;
50
51 bool is_pullonly() const override
52 {
53 return this->pullonly_server;
54 }
55 };
56}
57
58#endif
Thread_Safe_Channel channel
std::ostream * log
int64_t pull(Lock_Action lock_action, Data_Transfer data_transfer, Writable_Journal &client_journal, std::chrono::milliseconds wait=std::chrono::milliseconds(0)) override
Pull from the connection.
void unlock() override
Unlock the connection.
int64_t handshake(const Readonly_Journal &client_journal, Content_Check content_check) override
Called during Client construction.
bool is_pullonly() const override
size_t pread(char *data, size_t size, int64_t offset) const
int64_t push(const Readonly_Journal &client_journal, int64_t from, int64_t until, Unlock_Action unlock_action) override
Push new data to the connection.
bool check_matching_content(const Readonly_Journal &client_journal, int64_t server_checkpoint)
Server_Connection(Channel &channel, std::ostream *log=nullptr)
Data_Transfer
Definition Connection.h:27
Lock_Action
Definition Connection.h:34
Content_Check
Definition Connection.h:19
Unlock_Action
Definition Connection.h:41
Definition Blob.h:7