Joedb
10.2.1
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 <cstring>
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::memcpy(buffer, &data[
size_t
(offset)], n);
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::memcpy(&
data
[
size_t
(offset)], buffer, size);
27
}
28
}
Memory_File.h
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:20
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:8
joedb::Memory_File::data
std::string data
Definition
Memory_File.h:14
joedb
Definition
Server.cpp:11
Generated by
1.9.8