Joedb 9.5.0
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Memory_File.cpp
Go to the documentation of this file.
2
3namespace joedb
4{
5 ////////////////////////////////////////////////////////////////////////////
6 size_t Memory_File::pread(char *buffer, size_t size, int64_t offset) const
7 ////////////////////////////////////////////////////////////////////////////
8 {
9 if (size_t(offset) >= data.size())
10 return 0;
11 const size_t max_size = data.size() - size_t(offset);
12 const size_t n = std::min(size, max_size);
13 std::memcpy(buffer, &data[size_t(offset)], n);
14 return n;
15 }
16
17 ////////////////////////////////////////////////////////////////////////////
18 void Memory_File::pwrite(const char *buffer, size_t size, int64_t offset)
19 ////////////////////////////////////////////////////////////////////////////
20 {
21 const size_t end = size_t(offset) + size;
22 if (end > data.size())
23 data.resize(end);
24 std::memcpy(&data[size_t(offset)], buffer, size);
25 }
26
27 ////////////////////////////////////////////////////////////////////////////
29 ////////////////////////////////////////////////////////////////////////////
30 {
32 }
33}
void destructor_flush() noexcept
void pwrite(const char *buffer, size_t size, int64_t offset) override
Write a range of bytes. Extend file size if necessary.
size_t pread(char *buffer, size_t size, int64_t offset) const override
Read a range of bytes.
std::string data
Definition Memory_File.h:14
~Memory_File() override
Definition Blob.h:7