Joedb 9.5.0
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)
 
 Writable_Journal (Journal_Construction_Lock &&lock)
 
 Writable_Journal (Buffered_File &file)
 
void append ()
 
int64_t pull_from (const Readonly_Journal &journal, int64_t until)
 
int64_t pull_from (const Readonly_Journal &journal)
 
int64_t ahead_of_checkpoint () const noexcept
 
void flush () final
 
int64_t get_position () const override
 
void start_writing (int64_t position) override
 
void soft_checkpoint_at (int64_t position) override
 
void hard_checkpoint_at (int64_t position) override
 
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 delete_from (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_vector (Table_Id table_id, Record_Id record_id, size_t size) final
 
bool wants_blob_data () const final
 
Blob write_blob (const std::string &data) final
 
Async_Writer get_async_tail_writer ()
 
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)
 
 Readonly_Journal (Journal_Construction_Lock &&lock)
 
 Readonly_Journal (Buffered_File &file)
 
int64_t get_position () const
 
int64_t get_checkpoint () const
 
bool is_empty () const
 
bool is_shared () const
 
int64_t pull ()
 
const Buffered_Fileget_file () const
 
void replay_log (Writable &writable)
 
void replay_with_checkpoint_comments (Writable &writable)
 
void rewind ()
 
void one_step (Writable &writable)
 
void play_until (Writable &writable, int64_t end)
 
void append_until (Writable &writable, int64_t end)
 
void play_until_checkpoint (Writable &writable)
 
void skip_directly_to (int64_t position)
 
bool equal_to (Readonly_Journal &journal, int64_t until) const
 
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
 
- Public Member Functions inherited from joedb::Writable
void soft_checkpoint ()
 
void hard_checkpoint ()
 
virtual void on_blob (Blob blob)
 
virtual ~Writable ()=default
 

Additional Inherited Members

- Static Public Attributes inherited from joedb::Readonly_Journal
static constexpr uint32_t format_version = 5
 
- 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 , delete_vector = 0x14 ,
  updates = 0x80 , TYPE_MACRO
}
 
- Protected Member Functions inherited from joedb::Readonly_Journal
void reset_context ()
 
Type read_type ()
 
std::string safe_read_string ()
 
- Protected Attributes inherited from joedb::Readonly_Journal
Buffered_Filefile
 
int hard_index
 
int soft_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 11 of file Writable_Journal.h.

Constructor & Destructor Documentation

◆ Writable_Journal() [1/3]

joedb::Writable_Journal::Writable_Journal ( Journal_Construction_Lock lock)
explicit

Definition at line 7 of file Writable_Journal.cpp.

◆ Writable_Journal() [2/3]

joedb::Writable_Journal::Writable_Journal ( Journal_Construction_Lock &&  lock)
inlineexplicit

Definition at line 25 of file Writable_Journal.h.

◆ Writable_Journal() [3/3]

joedb::Writable_Journal::Writable_Journal ( Buffered_File file)
inlineexplicit

Definition at line 30 of file Writable_Journal.h.

◆ ~Writable_Journal()

joedb::Writable_Journal::~Writable_Journal ( )
override

Definition at line 425 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 150 of file Writable_Journal.cpp.

◆ ahead_of_checkpoint()

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

Definition at line 52 of file Writable_Journal.cpp.

◆ append()

void joedb::Writable_Journal::append ( )
inline

Definition at line 35 of file Writable_Journal.h.

◆ comment()

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

Reimplemented from joedb::Writable.

Definition at line 203 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 121 of file Writable_Journal.cpp.

◆ custom()

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

Reimplemented from joedb::Writable.

Definition at line 195 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 250 of file Writable_Journal.cpp.

◆ delete_vector()

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

Reimplemented from joedb::Writable.

Definition at line 281 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 167 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 129 of file Writable_Journal.cpp.

◆ flush()

void joedb::Writable_Journal::flush ( )
inlinefinalvirtual

Reimplemented from joedb::Writable.

Definition at line 48 of file Writable_Journal.h.

◆ get_async_tail_writer()

Async_Writer joedb::Writable_Journal::get_async_tail_writer ( )
inline

Definition at line 127 of file Writable_Journal.h.

◆ get_position()

int64_t joedb::Writable_Journal::get_position ( ) const
inlineoverridevirtual

Reimplemented from joedb::Writable.

Definition at line 50 of file Writable_Journal.h.

◆ hard_checkpoint_at()

void joedb::Writable_Journal::hard_checkpoint_at ( int64_t  position)
overridevirtual

Reimplemented from joedb::Writable.

Definition at line 91 of file Writable_Journal.cpp.

◆ insert_into()

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

Reimplemented from joedb::Writable.

Definition at line 226 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 263 of file Writable_Journal.cpp.

◆ is_locked()

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

Definition at line 133 of file Writable_Journal.h.

◆ lock_pull()

void joedb::Writable_Journal::lock_pull ( )

Definition at line 406 of file Writable_Journal.cpp.

◆ pull_from() [1/2]

int64_t joedb::Writable_Journal::pull_from ( const Readonly_Journal journal)
inline

Definition at line 41 of file Writable_Journal.h.

◆ pull_from() [2/2]

int64_t joedb::Writable_Journal::pull_from ( const Readonly_Journal journal,
int64_t  until 
)

Definition at line 34 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 180 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 137 of file Writable_Journal.cpp.

◆ soft_checkpoint_at()

void joedb::Writable_Journal::soft_checkpoint_at ( int64_t  position)
overridevirtual

Reimplemented from joedb::Writable.

Definition at line 67 of file Writable_Journal.cpp.

◆ start_writing()

void joedb::Writable_Journal::start_writing ( int64_t  position)
overridevirtual

Reimplemented from joedb::Writable.

Definition at line 59 of file Writable_Journal.cpp.

◆ timestamp()

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

Reimplemented from joedb::Writable.

Definition at line 211 of file Writable_Journal.cpp.

◆ unlock()

void joedb::Writable_Journal::unlock ( )
noexcept

Definition at line 417 of file Writable_Journal.cpp.

◆ valid_data()

void joedb::Writable_Journal::valid_data ( )
finalvirtual

Reimplemented from joedb::Writable.

Definition at line 219 of file Writable_Journal.cpp.

◆ wants_blob_data()

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

Reimplemented from joedb::Writable.

Definition at line 124 of file Writable_Journal.h.

◆ write_blob()

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

Reimplemented from joedb::Writable.

Definition at line 391 of file Writable_Journal.cpp.


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