1#ifndef joedb_Encoded_File_declared
2#define joedb_Encoded_File_declared
17 static constexpr size_t write_buffer_total_size = 1 << 20;
18 std::vector<char> write_buffer;
19 int64_t write_buffer_offset;
20 mutable size_t write_buffer_size;
22 void write_blob(
const char *buffer,
size_t size, int64_t offset)
const;
23 void flush_write_buffer()
const;
32 size_t pread(
char *buffer,
size_t size, int64_t offset)
const override;
33 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 and meta-data (such as file size) durably to permanent storage.
A writable Database constructed from a writable joedb::Buffered_File.