Joedb 9.5.0
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
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 ~Stream_File() override;
28 };
29}
30
31#endif
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.
~Stream_File() override
static constexpr bool lockable
Definition Stream_File.h:19
Open_Mode
Definition Open_Mode.h:8
Definition Blob.h:7