Joedb
9.1.4
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
#include <algorithm>
4
5
namespace
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
////////////////////////////////////////////////////////////////////////////
30
Memory_File::~Memory_File
()
31
////////////////////////////////////////////////////////////////////////////
32
{
33
destructor_flush
();
34
}
35
}
Memory_File.h
joedb::Buffered_File::destructor_flush
void destructor_flush() noexcept
Definition
Buffered_File.cpp:95
joedb::Buffered_File::read
T read()
Definition
Buffered_File.h:156
joedb::Memory_File::pwrite
void pwrite(const char *buffer, size_t size, int64_t offset) override
Definition
Memory_File.cpp:20
joedb::Memory_File::pread
size_t pread(char *buffer, size_t size, int64_t offset) const override
Definition
Memory_File.cpp:8
joedb::Memory_File::data
std::string data
Definition
Memory_File.h:14
joedb::Memory_File::~Memory_File
~Memory_File() override
Definition
Memory_File.cpp:30
joedb
Definition
Blob.h:7
Generated by
1.9.8