Joedb 9.4.0
The Journal-Only Embedded Database
|
#include <joedb/journal/Buffered_File.h>
Classes | |
class | Head_Exclusive_Lock |
class | Head_Shared_Lock |
Public Member Functions | |
Buffered_File (Open_Mode mode) | |
void | flush () |
void | flush_for_writing () |
void | exclusive_lock_tail () |
void | unlock_tail () noexcept |
bool | tail_is_locked () const noexcept |
void | shared_lock_head () |
void | exclusive_lock_head () |
void | unlock_head () noexcept |
bool | is_shared () const noexcept |
bool | is_readonly () const noexcept |
void | set_position (int64_t position) |
int64_t | get_position () const noexcept |
virtual void | copy_to (Buffered_File &destination, int64_t start, int64_t size) const |
virtual bool | equal_to (Buffered_File &destination, int64_t from, int64_t until) const |
void | copy_to (Buffered_File &destination) const |
template<typename T > | |
void | write (T x) |
template<typename T > | |
T | read () |
template<typename T > | |
void | compact_write (T x) |
template<typename T > | |
T | compact_read () |
template<typename T > | |
T | read_strong_type () |
void | write_reference (Record_Id id) |
Record_Id | read_reference () |
void | write_string (const std::string &s) |
std::string | read_string () |
std::string | safe_read_string (int64_t max_size) |
void | write_blob (Blob blob) |
Blob | read_blob () |
void | write_data (const char *data, size_t n) |
size_t | read_data (char *data, const size_t n) |
void | ignore (const int64_t n) |
std::string | read_blob (Blob blob) const |
![]() | |
void | sequential_seek (int64_t new_position) |
size_t | sequential_read (char *data, size_t size) |
void | sequential_write (const char *data, size_t size) |
int64_t | get_position () const |
![]() | |
virtual int64_t | get_size () const |
Get the size of the file, or -1 if it is unknown. | |
virtual size_t | pread (char *data, size_t size, int64_t offset) const |
Read a range of bytes. | |
virtual void | pwrite (const char *data, size_t size, int64_t offset) |
Write a range of bytes. Extend file size if necessary. | |
virtual void | sync () |
Write data and meta-data (such as file size) durably to permanent storage. | |
virtual void | datasync () |
Write data durably to permanent storage. | |
virtual void | shared_lock (int64_t start, int64_t size) |
Lock a range of bytes for reading (prevents writes, not reads) | |
virtual void | exclusive_lock (int64_t start, int64_t size) |
Lock a range of bytes for writing (prevents both writes and reads) | |
virtual void | unlock (int64_t start, int64_t size) noexcept |
Remove a lock. The range should match the range of a corresponding lock. | |
virtual | ~Abstract_File ()=default |
Static Public Member Functions | |
static void | reading_past_end_of_file () |
Static Public Attributes | |
static constexpr int64_t | last_position = (1ULL << 63) - 1 |
Protected Member Functions | |
void | destructor_flush () noexcept |
void | make_readonly () |
void | make_writable () |
Friends | |
class | File_Hasher |
Definition at line 17 of file Buffered_File.h.
joedb::Buffered_File::Buffered_File | ( | Open_Mode | mode | ) |
Definition at line 8 of file Buffered_File.cpp.
|
inline |
Definition at line 205 of file Buffered_File.h.
|
inline |
Definition at line 197 of file Buffered_File.h.
|
inline |
Definition at line 172 of file Buffered_File.h.
|
virtual |
Definition at line 51 of file Buffered_File.cpp.
|
protectednoexcept |
Definition at line 168 of file Buffered_File.cpp.
|
virtual |
Definition at line 75 of file Buffered_File.cpp.
|
inline |
Definition at line 102 of file Buffered_File.h.
|
inline |
Definition at line 88 of file Buffered_File.h.
void joedb::Buffered_File::flush | ( | ) |
Definition at line 22 of file Buffered_File.cpp.
void joedb::Buffered_File::flush_for_writing | ( | ) |
Definition at line 32 of file Buffered_File.cpp.
|
inlinenoexcept |
Definition at line 141 of file Buffered_File.h.
|
inline |
Definition at line 324 of file Buffered_File.h.
|
inlinenoexcept |
Definition at line 136 of file Buffered_File.h.
|
inlinenoexcept |
Definition at line 135 of file Buffered_File.h.
|
inlineprotected |
Definition at line 78 of file Buffered_File.h.
|
inlineprotected |
Definition at line 79 of file Buffered_File.h.
|
inline |
Definition at line 188 of file Buffered_File.h.
|
inline |
Definition at line 244 of file Buffered_File.h.
std::string joedb::Buffered_File::read_blob | ( | Blob | blob | ) | const |
Definition at line 179 of file Buffered_File.cpp.
|
inline |
Definition at line 282 of file Buffered_File.h.
|
inline |
Definition at line 229 of file Buffered_File.h.
std::string joedb::Buffered_File::read_string | ( | ) |
Definition at line 144 of file Buffered_File.cpp.
|
inline |
Definition at line 219 of file Buffered_File.h.
|
inlinestatic |
Definition at line 147 of file Buffered_File.h.
std::string joedb::Buffered_File::safe_read_string | ( | int64_t | max_size | ) |
Definition at line 154 of file Buffered_File.cpp.
void joedb::Buffered_File::set_position | ( | int64_t | position | ) |
Definition at line 43 of file Buffered_File.cpp.
|
inline |
Definition at line 101 of file Buffered_File.h.
|
inlinenoexcept |
Definition at line 100 of file Buffered_File.h.
|
inlinenoexcept |
Definition at line 103 of file Buffered_File.h.
|
inlinenoexcept |
Definition at line 94 of file Buffered_File.h.
|
inline |
Definition at line 179 of file Buffered_File.h.
|
inline |
Definition at line 238 of file Buffered_File.h.
|
inline |
Definition at line 252 of file Buffered_File.h.
|
inline |
Definition at line 224 of file Buffered_File.h.
void joedb::Buffered_File::write_string | ( | const std::string & | s | ) |
Definition at line 136 of file Buffered_File.cpp.
|
friend |
Definition at line 19 of file Buffered_File.h.
|
staticconstexpr |
Definition at line 86 of file Buffered_File.h.