Joedb 10.0.1
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
File_View.h
Go to the documentation of this file.
1#ifndef joedb_File_View_declared
2#define joedb_File_View_declared
3
5
6namespace joedb
7{
8 /// @ingroup journal
9 class File_View: public Buffered_File
10 {
11 private:
12 Abstract_File &file;
13
14 public:
15 File_View(Buffered_File &file): Buffered_File(file.get_mode()), file(file)
16 {
17 }
18
19 int64_t get_size() const override
20 {
21 return file.get_size();
22 }
23
24 size_t pread(char *data, size_t size, int64_t offset) const override
25 {
26 return file.pread(data, size, offset);
27 }
28
29 void pwrite(const char *data, size_t size, int64_t offset) override
30 {
31 return file.pwrite(data, size, offset);
32 }
33
34 void sync() override
35 {
36 file.sync();
37 }
38
39 void datasync() override
40 {
41 file.datasync();
42 }
43
44 void shared_lock(int64_t start, int64_t size) override
45 {
46 file.shared_lock(start, size);
47 }
48
49 void exclusive_lock(int64_t start, int64_t size) override
50 {
51 file.exclusive_lock(start, size);
52 }
53
54 void unlock(int64_t start, int64_t size) noexcept override
55 {
56 file.unlock(start, size);
57 }
58 };
59}
60
61#endif
virtual void shared_lock(int64_t start, int64_t size)
Lock a range of bytes for reading (prevents writes, not reads)
virtual int64_t get_size() const
Get the size of the file, or -1 if it is unknown.
virtual void datasync()
Write data durably (no file-size change)
virtual void unlock(int64_t start, int64_t size) noexcept
Remove a lock. The range should match the range of a corresponding lock.
virtual void sync()
Write data durably (including file-size change)
virtual void pwrite(const char *data, size_t size, int64_t offset)
Write a range of bytes. Extend file size if necessary.
virtual void exclusive_lock(int64_t start, int64_t size)
Lock a range of bytes for writing (prevents both writes and reads)
virtual size_t pread(char *data, size_t size, int64_t offset) const
Read a range of bytes.
Open_Mode get_mode() const noexcept
void pwrite(const char *data, size_t size, int64_t offset) override
Write a range of bytes. Extend file size if necessary.
Definition File_View.h:29
File_View(Buffered_File &file)
Definition File_View.h:15
void unlock(int64_t start, int64_t size) noexcept override
Remove a lock. The range should match the range of a corresponding lock.
Definition File_View.h:54
void sync() override
Write data durably (including file-size change)
Definition File_View.h:34
void shared_lock(int64_t start, int64_t size) override
Lock a range of bytes for reading (prevents writes, not reads)
Definition File_View.h:44
int64_t get_size() const override
Get the size of the file, or -1 if it is unknown.
Definition File_View.h:19
size_t pread(char *data, size_t size, int64_t offset) const override
Read a range of bytes.
Definition File_View.h:24
void exclusive_lock(int64_t start, int64_t size) override
Lock a range of bytes for writing (prevents both writes and reads)
Definition File_View.h:49
void datasync() override
Write data durably (no file-size change)
Definition File_View.h:39
Definition Blob.h:7