Joedb 10.0.4
The Journal-Only Embedded Database
|
Shortcut to directly build a Writable_Database with a Memory_File. More...
#include <joedb/db/encoded_file/Memory_Database.h>
Public Member Functions | |
Memory_Database () | |
void | pull () |
![]() | |
Memory_File () | |
void | resize (size_t size) |
std::string & | get_data () |
const std::string & | get_data () const |
std::string | move_data () const |
int64_t | get_size () const override |
Get the size of the file, or -1 if it is unknown. | |
size_t | pread (char *buffer, size_t size, int64_t offset) const override |
Read a range of bytes. | |
void | pwrite (const char *buffer, size_t size, int64_t offset) override |
Write a range of bytes. Extend file size if necessary. | |
~Memory_File () override | |
![]() | |
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 |
Open_Mode | get_mode () 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 void | sync () |
Write data durably (including file-size change) | |
virtual void | datasync () |
Write data durably (no file-size change) | |
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 |
![]() | |
Writable_Database (joedb::Buffered_File &file) | |
Writable_Database (joedb::Buffered_File &file, joedb::Recovery recovery) | |
const joedb::Readonly_Journal & | get_journal () const |
std::string | read_blob (joedb::Blob blob) const |
joedb::Blob | write_blob (const std::string &data) override |
int64_t | ahead_of_checkpoint () const |
void | soft_checkpoint () override |
void | hard_checkpoint () override |
void | write_comment (const std::string &comment) |
void | write_timestamp () |
void | write_timestamp (int64_t timestamp) |
void | write_valid_data () |
void | flush () override |
void | clear_buffer_table () |
id_of_buffer | new_buffer () |
id_of_buffer | new_vector_of_buffer (size_t size) |
id_of_buffer | new_buffer (joedb::Blob field_value_of_data, int64_t field_value_of_size, int64_t field_value_of_offset) |
void | delete_buffer (id_of_buffer record) |
void | delete_vector_of_buffer (id_of_buffer v, size_t size) |
void | set_data (id_of_buffer record, joedb::Blob field_value_of_data) |
template<typename F > | |
void | update_vector_of_data (id_of_buffer record, size_t size, F f) |
void | set_size (id_of_buffer record, int64_t field_value_of_size) |
template<typename F > | |
void | update_vector_of_size (id_of_buffer record, size_t size, F f) |
void | set_offset (id_of_buffer record, int64_t field_value_of_offset) |
template<typename F > | |
void | update_vector_of_offset (id_of_buffer record, size_t size, F f) |
![]() | |
Database_Writable () | |
void | set_max_record_id (joedb::index_t record_id) |
int64_t | get_schema_checkpoint () const |
void | initialize_with_readonly_journal (joedb::Readonly_Journal &journal) |
![]() | |
bool | is_valid (id_of_buffer id) const |
container_of_buffer | get_buffer_table () const |
id_of_buffer | next (id_of_buffer id) const |
id_of_buffer | previous (id_of_buffer id) const |
template<class Comparator > | |
std::vector< id_of_buffer > | sorted_buffer (Comparator comparator) const |
joedb::Blob | get_data (id_of_buffer record) const |
int64_t | get_size (id_of_buffer record) const |
int64_t | get_offset (id_of_buffer record) const |
![]() | |
virtual int64_t | get_position () const |
virtual void | start_writing (int64_t position) |
virtual void | end_writing (int64_t position) |
virtual void | drop_table (Table_Id table_id) |
virtual void | rename_table (Table_Id table_id, const std::string &name) |
virtual void | add_field (Table_Id table_id, const std::string &name, Type type) |
virtual void | drop_field (Table_Id table_id, Field_Id field_id) |
virtual void | rename_field (Table_Id table_id, Field_Id field_id, const std::string &name) |
virtual void | insert_into (Table_Id table_id, Record_Id record_id) |
virtual void | delete_from (Table_Id table_id, Record_Id record_id) |
virtual void | insert_vector (Table_Id table_id, Record_Id record_id, size_t size)=0 |
virtual void | delete_vector (Table_Id table_id, Record_Id record_id, size_t size)=0 |
virtual void | on_blob (Blob blob) |
virtual bool | wants_blob_data () const |
virtual | ~Writable ()=default |
Additional Inherited Members | |
![]() | |
static void | reading_past_end_of_file () |
![]() | |
template<typename E = joedb::Exception> | |
static void | throw_exception (const std::string &message) |
static id_of_buffer | null_buffer () |
![]() | |
void | destructor_flush () noexcept |
void | make_readonly () |
void | make_writable () |
![]() | |
void | delete_from (Table_Id table_id, Record_Id record_id) override |
void | insert_into (Table_Id table_id, Record_Id record_id) override |
void | delete_vector (Table_Id table_id, Record_Id record_id, size_t size) override |
void | insert_vector (Table_Id table_id, Record_Id record_id, size_t size) override |
void | update_int64 (Table_Id table_id, Record_Id record_id, Field_Id field_id, int64_t value) override |
void | update_blob (Table_Id table_id, Record_Id record_id, Field_Id field_id, joedb::Blob value) override |
void | update_vector_int64 (Table_Id table_id, Record_Id record_id, Field_Id field_id, size_t size, const int64_t *value) override |
void | update_vector_blob (Table_Id table_id, Record_Id record_id, Field_Id field_id, size_t size, const joedb::Blob *value) override |
int64_t * | get_own_int64_storage (Table_Id table_id, Record_Id record_id, Field_Id field_id, size_t &capacity) override |
joedb::Blob * | get_own_blob_storage (Table_Id table_id, Record_Id record_id, Field_Id field_id, size_t &capacity) override |
void | comment (const std::string &comment) override |
void | timestamp (int64_t timestamp) override |
void | valid_data () override |
bool | requires_schema_upgrade () const |
void | check_schema () |
void | create_table (const std::string &name) override |
void | drop_table (Table_Id table_id) override |
void | rename_table (Table_Id table_id, const std::string &name) override |
void | add_field (Table_Id table_id, const std::string &name, joedb::Type type) override |
void | drop_field (Table_Id table_id, Field_Id field_id) override |
void | rename_field (Table_Id table_id, Field_Id field_id, const std::string &name) override |
void | custom (const std::string &name) override |
![]() | |
bool | is_valid_record_id_for_buffer (Record_Id record_id) const |
void | internal_delete_buffer (Record_Id record_id) |
void | internal_insert_buffer (Record_Id record_id) |
void | internal_vector_insert_buffer (Record_Id record_id, size_t size) |
void | internal_update_buffer__data (Record_Id record_id, joedb::Blob field_value_of_data) |
void | internal_update_vector_buffer__data (Record_Id record_id, size_t size, const joedb::Blob *value) |
void | internal_update_buffer__size (Record_Id record_id, int64_t field_value_of_size) |
void | internal_update_vector_buffer__size (Record_Id record_id, size_t size, const int64_t *value) |
void | internal_update_buffer__offset (Record_Id record_id, int64_t field_value_of_offset) |
void | internal_update_vector_buffer__offset (Record_Id record_id, size_t size, const int64_t *value) |
![]() | |
std::string | data |
![]() | |
joedb::index_t | max_record_id |
Table_Id | current_table_id = Table_Id{0} |
bool | upgrading_schema = false |
joedb::Memory_File | schema_file |
joedb::Writable_Journal | schema_journal |
![]() | |
detail::data_of_buffer | storage_of_buffer |
![]() | |
static constexpr int64_t | last_position = (1ULL << 63) - 1 |
Definition at line 21 of file Memory_Database.h.
|
inline |
Definition at line 24 of file Memory_Database.h.
|
inline |
Definition at line 28 of file Memory_Database.h.