1#ifndef joedb_Writable_Journal_declared
2#define joedb_Writable_Journal_declared
61 const std::string &name
67 const std::string &name,
81 const std::string &name
84 void custom(
const std::string &name)
final;
106 #define TYPE_MACRO(type, return_type, type_id, read_method, write_method)\
107 void update_##type_id\
110 Record_Id record_id,\
114 void update_vector_##type_id\
117 Record_Id record_id,\
148 throw Exception(
"locking journal with uncheckpointed data");
void set_position(int64_t position)
bool tail_is_locked() const noexcept
int64_t get_position() const noexcept
Journal_Lock(Writable_Journal &journal)
Journal_Lock & operator=(const Journal_Lock &lock)=delete
Journal_Lock(const Journal_Lock &lock)=delete
friend class Writable_Journal
int64_t checkpoint_position
int64_t get_checkpoint() const
int64_t pull_from(const Readonly_Journal &journal, int64_t until)
void hard_checkpoint_at(int64_t position) override
void soft_checkpoint_at(int64_t position) override
bool wants_blob_data() const final
int64_t ahead_of_checkpoint() const noexcept
Writable_Journal(Buffered_File &file)
Blob write_blob(const std::string &data) final
void start_writing(int64_t position) override
int64_t get_position() const override
int64_t pull_from(const Readonly_Journal &journal)
Writable_Journal(Journal_Construction_Lock &&lock)
Async_Writer get_async_tail_writer()