Joedb 10.4.3
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Stream_File.h
Go to the documentation of this file.
1#ifndef joedb_Stream_File_declared
2#define joedb_Stream_File_declared
3
5
6#include <streambuf>
7
8namespace joedb
9{
10 /// @ingroup journal
12 {
13 private:
14 std::streambuf &streambuf;
15 void seek(int64_t offset, std::ios_base::openmode which) const;
16
17 public:
18 static constexpr bool lockable = false;
19 static constexpr bool has_broken_posix_locking = false;
20
21 Stream_File(std::streambuf &streambuf, Open_Mode mode);
22
23 size_t pread(char *data, size_t size, int64_t offset) const override;
24 void pwrite(const char *data, size_t size, int64_t offset) override;
25 int64_t get_size() const override;
26 };
27}
28
29#endif
static constexpr bool has_broken_posix_locking
Definition Stream_File.h:19
int64_t get_size() const override
Get the size of the file, or -1 if it is unknown.
size_t pread(char *data, size_t size, int64_t offset) const override
Read a range of bytes.
void pwrite(const char *data, size_t size, int64_t offset) override
Write a range of bytes. Extend file size if necessary.
static constexpr bool lockable
Definition Stream_File.h:18
Open_Mode
Definition Open_Mode.h:8