1#ifndef joedb_Interpreted_File_declared
2#define joedb_Interpreted_File_declared
45 std::ostream null_stream;
51 size_t pread(
char *data,
size_t size, int64_t offset)
const override;
52 void pwrite(
const char *buffer,
size_t size, int64_t offset)
override;
54 void shared_lock(int64_t start, int64_t size)
override;
56 void unlock(int64_t start, int64_t size)
noexcept override;
61 class Interpreted_File_Parent
66 Interpreted_File_Parent(
const char *file_name,
Open_Mode mode):
75 private detail::Interpreted_File_Parent,
80 detail::Interpreted_File_Parent(file_name, mode),
This class allows accessing a file in joedbi text format.
void sync() override
Write data durably (including file-size change)
size_t pread(char *data, size_t size, int64_t offset) const override
Read a range of bytes.
void pwrite(const char *buffer, size_t size, int64_t offset) override
Write a range of bytes. Extend file size if necessary.
int64_t get_size() const override
Get the size of the file, or -1 if it is unknown.
void shared_lock(int64_t start, int64_t size) override
Lock a range of bytes for reading (prevents writes, not reads)
void unlock(int64_t start, int64_t size) noexcept override
Remove a lock. The range should match the range of a corresponding lock.
void exclusive_lock(int64_t start, int64_t size) override
Lock a range of bytes for writing (prevents both writes and reads)
Interpreted_File(const char *file_name, Open_Mode mode)
https://en.cppreference.com/w/cpp/io/basic_streambuf.html