#pragma once
|
|
#include "endian.hpp"
|
|
#include "database.hpp"
|
|
|
|
|
|
enum class db_op : uint32_t {
|
|
version = 0,
|
|
read = 1,
|
|
write = 2,
|
|
remove = 3,
|
|
stats = 4
|
|
};
|
|
|
|
struct [[gnu::packed]] received_data {
|
|
bitops::regulated<db_op> op = db_op::version;
|
|
bitops::regulated<uint64_t> rep_id = 0;
|
|
record_identifier identifier = record_identifier{};
|
|
db_page page = {0};
|
|
};
|
|
|
|
struct [[gnu::packed]] sending_data {
|
|
bitops::regulated<uint64_t> rep_id = 0;
|
|
record_identifier identifier = record_identifier{};
|
|
db_page page = {0};
|
|
};
|
|
|
|
struct [[gnu::packed]] stats_data {
|
|
bitops::regulated<uint64_t> free;
|
|
bitops::regulated<uint64_t> free_deleted;
|
|
bitops::regulated<uint64_t> total_pages;
|
|
bitops::regulated<uint64_t> total_records;
|
|
bitops::regulated<uint64_t> total_delete;
|
|
bitops::regulated<uint64_t> cow_full;
|
|
};
|