1#ifndef joedb_Encoded_File_declared
2#define joedb_Encoded_File_declared
17 static constexpr size_t write_buffer_capacity = 1 << 20;
19 std::vector<char> write_buffer;
20 int64_t write_buffer_offset;
21 mutable size_t write_buffer_size;
23 void write_blob(std::string_view buffer, int64_t offset)
const;
24 void flush_write_buffer()
const;
33 size_t pread(
char *buffer,
size_t size, int64_t offset)
const override;
34 void pwrite(
const char *buffer,
size_t size, int64_t offset)
override;
void pwrite(const char *buffer, size_t size, int64_t offset) override
Write a range of bytes. Extend file size if necessary.
size_t pread(char *buffer, size_t size, int64_t offset) const override
Read a range of bytes.
int64_t get_size() const override
Get the size of the file, or -1 if it is unknown.
void sync() override
Write data durably (including file-size change)
static constexpr size_t max_buffer_size
A Database that contains a joedb::Writable_Journal and keeps them in sync.