Joedb
9.5.0
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
src
joedb
journal
Memory_File.cpp
Go to the documentation of this file.
1
#include "
joedb/journal/Memory_File.h
"
2
3
namespace
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
////////////////////////////////////////////////////////////////////////////
28
Memory_File::~Memory_File
()
29
////////////////////////////////////////////////////////////////////////////
30
{
31
destructor_flush
();
32
}
33
}
Memory_File.h
joedb::Buffered_File::destructor_flush
void destructor_flush() noexcept
Definition
Buffered_File.cpp:168
joedb::Memory_File::pwrite
void pwrite(const char *buffer, size_t size, int64_t offset) override
Write a range of bytes. Extend file size if necessary.
Definition
Memory_File.cpp:18
joedb::Memory_File::pread
size_t pread(char *buffer, size_t size, int64_t offset) const override
Read a range of bytes.
Definition
Memory_File.cpp:6
joedb::Memory_File::data
std::string data
Definition
Memory_File.h:14
joedb::Memory_File::~Memory_File
~Memory_File() override
Definition
Memory_File.cpp:28
joedb
Definition
Blob.h:7
Generated by
1.9.8