1#ifndef joedb_Writable_Database_Client_declared
2#define joedb_Writable_Database_Client_declared
12 class Writable_Database_Client_Data
15 Writable_Journal data_journal;
17 Multiplexer multiplexer;
20 Writable_Database_Client_Data
23 Record_Id max_record_id,
26 data_journal(Journal_Construction_Lock(file, recovery)),
27 database(max_record_id),
28 multiplexer{database, data_journal}
36 protected detail::Writable_Database_Client_Data,
44 data_journal.play_until_checkpoint(database);
56 Writable_Database_Client_Data(file, max_record_id, recovery),
Lock object that allows writing to a database managed by a joedb::Client.
static const Record_Id null
Writable specialization of Client.
auto transaction(F transaction)
Writable_Database_Client_Lock(Writable_Database_Client &client)
Writable & get_writable()
const Readable & get_readable() const
auto transaction(F transaction)
void read_journal() override
const Database & get_database() const
Writable_Database_Client(Buffered_File &file, Connection &connection, Content_Check content_check=Content_Check::fast, Record_Id max_record_id=Record_Id::null, Recovery recovery=Recovery::none)
Superclass with all joedb journal event listeners as virtual functions.
#define JOEDB_DEBUG_ASSERT(x)
assertion tested in debug mode
@ none
default: fail if file size > checkpoint