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