Joedb 9.1.3
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Public Member Functions | List of all members
joedb::Writable_Journal Class Reference

#include <joedb/journal/Writable_Journal.h>

Inheritance diagram for joedb::Writable_Journal:
Inheritance graph
[legend]
Collaboration diagram for joedb::Writable_Journal:
Collaboration graph
[legend]

Public Member Functions

 Writable_Journal (Journal_Construction_Lock &lock, Check check, Commit_Level commit_level)
 
 Writable_Journal (Journal_Construction_Lock &&lock, Check check, Commit_Level commit_level)
 
 Writable_Journal (Buffered_File &file, Check check=Check::all, Commit_Level commit_level=Commit_Level::no_commit)
 
void append ()
 
int64_t pull_from (Readonly_Journal &journal, int64_t until_checkpoint=std::numeric_limits< int64_t >::max())
 
int64_t ahead_of_checkpoint () const noexcept
 
void flush () final
 
void checkpoint (Commit_Level commit_level) final
 
void create_table (const std::string &name) final
 
void drop_table (Table_Id table_id) final
 
void rename_table (Table_Id table_id, const std::string &name) final
 
void add_field (Table_Id table_id, const std::string &name, Type type) final
 
void drop_field (Table_Id table_id, Field_Id field_id) final
 
void rename_field (Table_Id table_id, Field_Id field_id, const std::string &name) final
 
void custom (const std::string &name) final
 
void comment (const std::string &comment) final
 
void timestamp (int64_t timestamp) final
 
void valid_data () final
 
void insert_into (Table_Id table_id, Record_Id record_id) final
 
void insert_vector (Table_Id table_id, Record_Id record_id, size_t size) final
 
void delete_from (Table_Id table_id, Record_Id record_id) final
 
bool wants_blob_data () const final
 
Blob write_blob_data (const std::string &data) final
 
Async_Writer get_async_tail_writer ()
 
Writable_Journalget_writable_journal () override
 
void lock_pull ()
 
bool is_locked () const
 
void unlock () noexcept
 
 ~Writable_Journal () override
 
- Public Member Functions inherited from joedb::Readonly_Journal
 Readonly_Journal (Journal_Construction_Lock &lock, Check check)
 
 Readonly_Journal (Journal_Construction_Lock &&lock, Check check)
 
 Readonly_Journal (Buffered_File &file, Check check=Check::readonly)
 
uint32_t get_file_version () const
 
bool at_end_of_file () const
 
int64_t get_position () const
 
int64_t get_checkpoint_position () const
 
bool is_empty () const
 
bool is_shared () const
 
void pull ()
 
const Buffered_Fileget_file () const
 
void replay_log (Writable &writable)
 
void replay_with_checkpoint_comments (Writable &writable)
 
void rewind ()
 
void set_position (int64_t position)
 
void one_step (Writable &writable)
 
void play_until (Writable &writable, int64_t end)
 
void play_until_checkpoint (Writable &writable)
 
void seek_to_checkpoint ()
 
Async_Reader get_async_tail_reader (int64_t start_position) const
 
Async_Reader get_async_reader (int64_t start_position, int64_t until_position) const
 
Async_Reader get_async_blob_reader (Blob blob) const
 
virtual ~Readonly_Journal ()=default
 
- Public Member Functions inherited from joedb::Writable
 Writable (Commit_Level default_commit_level=Commit_Level::no_commit)
 
Commit_Level get_default_commit_level () const
 
void default_checkpoint ()
 
virtual void on_blob (Blob blob)
 
virtual ~Writable ()=default
 
- Public Member Functions inherited from joedb::Posthumous_Thrower
void set_catcher (Posthumous_Catcher &new_catcher) noexcept
 

Additional Inherited Members

- Public Types inherited from joedb::Readonly_Journal
enum class  Check {
  joedb = 1 , version = 2 , big_size = 4 , small_size = 8 ,
  set_checkpoint = 16 , checkpoint_mismatch = 32 , all = joedb | version | big_size | small_size | checkpoint_mismatch , readonly = joedb | version | small_size ,
  overwrite = all & ~big_size & ~checkpoint_mismatch , none = set_checkpoint
}
 
- Static Public Member Functions inherited from joedb::Readonly_Journal
static bool check_flag (Check check, Check flag)
 
static constexpr bool is_second_checkpoint_copy (int64_t offset)
 
- Static Public Attributes inherited from joedb::Readonly_Journal
static constexpr uint32_t version_number = 0x00000004
 
static constexpr uint32_t compatible_version = 0x00000004
 
static constexpr int64_t header_size = 41
 
static constexpr int64_t checkpoint_offset = 5 + 4
 
- Protected Types inherited from joedb::Readonly_Journal
enum class  operation_t : uint8_t {
  create_table = 0x01 , drop_table = 0x02 , add_field = 0x03 , drop_field = 0x04 ,
  insert_into = 0x05 , delete_from = 0x06 , update = 0x07 , append = 0x08 ,
  update_last = 0x09 , comment = 0x0a , timestamp = 0x0b , rename_table = 0x0c ,
  rename_field = 0x0d , valid_data = 0x0e , insert_vector = 0x0f , custom = 0x10 ,
  update_vector = 0x11 , update_next = 0x12 , blob = 0x13 , updates = 0x80 ,
  TYPE_MACRO
}
 
- Protected Member Functions inherited from joedb::Readonly_Journal
Type read_type ()
 
std::string safe_read_string ()
 
- Protected Member Functions inherited from joedb::Posthumous_Thrower
void postpone_exception (const char *message=nullptr) noexcept
 
- Protected Attributes inherited from joedb::Readonly_Journal
Buffered_Filefile
 
uint32_t file_version
 
unsigned checkpoint_index
 
int64_t checkpoint_position
 
Table_Id table_of_last_operation
 
Record_Id record_of_last_operation
 
Field_Id field_of_last_update
 

Detailed Description

Definition at line 13 of file Writable_Journal.h.

Constructor & Destructor Documentation

◆ Writable_Journal() [1/3]

joedb::Writable_Journal::Writable_Journal ( Journal_Construction_Lock lock,
Check  check,
Commit_Level  commit_level 
)
explicit

Definition at line 6 of file Writable_Journal.cpp.

◆ Writable_Journal() [2/3]

joedb::Writable_Journal::Writable_Journal ( Journal_Construction_Lock &&  lock,
Check  check,
Commit_Level  commit_level 
)
explicit

Definition at line 64 of file Writable_Journal.cpp.

◆ Writable_Journal() [3/3]

joedb::Writable_Journal::Writable_Journal ( Buffered_File file,
Check  check = Check::all,
Commit_Level  commit_level = Commit_Level::no_commit 
)
explicit

Definition at line 76 of file Writable_Journal.cpp.

◆ ~Writable_Journal()

joedb::Writable_Journal::~Writable_Journal ( )
override

Definition at line 467 of file Writable_Journal.cpp.

Member Function Documentation

◆ add_field()

void joedb::Writable_Journal::add_field ( Table_Id  table_id,
const std::string &  name,
Type  type 
)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 207 of file Writable_Journal.cpp.

◆ ahead_of_checkpoint()

int64_t joedb::Writable_Journal::ahead_of_checkpoint ( ) const
noexcept

Definition at line 123 of file Writable_Journal.cpp.

◆ append()

void joedb::Writable_Journal::append ( )
inline

Definition at line 58 of file Writable_Journal.h.

◆ checkpoint()

void joedb::Writable_Journal::checkpoint ( joedb::Commit_Level  commit_level)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 130 of file Writable_Journal.cpp.

◆ comment()

void joedb::Writable_Journal::comment ( const std::string &  comment)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 260 of file Writable_Journal.cpp.

◆ create_table()

void joedb::Writable_Journal::create_table ( const std::string &  name)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 178 of file Writable_Journal.cpp.

◆ custom()

void joedb::Writable_Journal::custom ( const std::string &  name)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 252 of file Writable_Journal.cpp.

◆ delete_from()

void joedb::Writable_Journal::delete_from ( Table_Id  table_id,
Record_Id  record_id 
)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 325 of file Writable_Journal.cpp.

◆ drop_field()

void joedb::Writable_Journal::drop_field ( Table_Id  table_id,
Field_Id  field_id 
)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 224 of file Writable_Journal.cpp.

◆ drop_table()

void joedb::Writable_Journal::drop_table ( Table_Id  table_id)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 186 of file Writable_Journal.cpp.

◆ flush()

void joedb::Writable_Journal::flush ( )
inlinefinalvirtual

Reimplemented from joedb::Writable.

Definition at line 71 of file Writable_Journal.h.

◆ get_async_tail_writer()

Async_Writer joedb::Writable_Journal::get_async_tail_writer ( )
inline

Definition at line 139 of file Writable_Journal.h.

◆ get_writable_journal()

Writable_Journal * joedb::Writable_Journal::get_writable_journal ( )
inlineoverridevirtual

Reimplemented from joedb::Readonly_Journal.

Definition at line 144 of file Writable_Journal.h.

◆ insert_into()

void joedb::Writable_Journal::insert_into ( Table_Id  table_id,
Record_Id  record_id 
)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 283 of file Writable_Journal.cpp.

◆ insert_vector()

void joedb::Writable_Journal::insert_vector ( Table_Id  table_id,
Record_Id  record_id,
size_t  size 
)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 307 of file Writable_Journal.cpp.

◆ is_locked()

bool joedb::Writable_Journal::is_locked ( ) const
inline

Definition at line 147 of file Writable_Journal.h.

◆ lock_pull()

void joedb::Writable_Journal::lock_pull ( )

Definition at line 448 of file Writable_Journal.cpp.

◆ pull_from()

int64_t joedb::Writable_Journal::pull_from ( Readonly_Journal journal,
int64_t  until_checkpoint = std::numeric_limits<int64_t>::max() 
)

Definition at line 88 of file Writable_Journal.cpp.

◆ rename_field()

void joedb::Writable_Journal::rename_field ( Table_Id  table_id,
Field_Id  field_id,
const std::string &  name 
)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 237 of file Writable_Journal.cpp.

◆ rename_table()

void joedb::Writable_Journal::rename_table ( Table_Id  table_id,
const std::string &  name 
)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 194 of file Writable_Journal.cpp.

◆ timestamp()

void joedb::Writable_Journal::timestamp ( int64_t  timestamp)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 268 of file Writable_Journal.cpp.

◆ unlock()

void joedb::Writable_Journal::unlock ( )
noexcept

Definition at line 459 of file Writable_Journal.cpp.

◆ valid_data()

void joedb::Writable_Journal::valid_data ( )
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 276 of file Writable_Journal.cpp.

◆ wants_blob_data()

bool joedb::Writable_Journal::wants_blob_data ( ) const
inlinefinalvirtual

Reimplemented from joedb::Writable.

Definition at line 136 of file Writable_Journal.h.

◆ write_blob_data()

joedb::Blob joedb::Writable_Journal::write_blob_data ( const std::string &  data)
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 433 of file Writable_Journal.cpp.


The documentation for this class was generated from the following files: