Joedb 10.2.1
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 mutable std::streambuf::pos_type pos;
16 void seek(int64_t offset) const;
17
18 public:
19 static constexpr bool lockable = false;
20 static constexpr bool has_broken_posix_locking = false;
21
22 Stream_File(std::streambuf &streambuf, Open_Mode mode);
23
24 size_t pread(char *data, size_t size, int64_t offset) const override;
25 void pwrite(const char *data, size_t size, int64_t offset) override;
26 int64_t get_size() const override;
27 };
28}
29
30#endif
static constexpr bool has_broken_posix_locking
Definition Stream_File.h:20
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:19
Open_Mode
Definition Open_Mode.h:8