12#ifndef settings_Writable_Database_declared
13#define settings_Writable_Database_declared
26 class Memory_Database;
31 friend class detail::Client_Data;
42 void check_single_row();
48 const std::string &name,
52 void create_table(
const std::string &name)
override;
58 bool perform_initialization
110 journal.
insert_into(Table_Id(1), result.get_record_id());
114 id_of_settings new_settings
116 bool field_value_of_dark_mode,
117 const std::string& field_value_of_host,
118 const std::string& field_value_of_user
121 auto result = new_settings();
123 set_host(result, field_value_of_host);
124 set_user(result, field_value_of_user);
132 journal.update_boolean(Table_Id(1), record.
get_record_id(), Field_Id(1), field_value_of_dark_mode);
143 journal.update_string(Table_Id(1), record.
get_record_id(), Field_Id(2), field_value_of_host);
146 void set_host(
const std::string& field_value_of_host)
154 journal.update_string(Table_Id(1), record.
get_record_id(), Field_Id(3), field_value_of_user);
157 void set_user(
const std::string& field_value_of_user)
std::string read_blob(Blob blob) const
const Abstract_File & get_file() const
void soft_checkpoint() override
int64_t ahead_of_checkpoint() const noexcept
void hard_checkpoint() override
void insert_into(Table_Id table_id, Record_Id record_id) override
Blob write_blob(const std::string &data) override
Handle concurrent access to a joedb::Abstract_File using a joedb::Connection.
implement joedb::Writable in a Database
void comment(const std::string &comment) override
void timestamp(int64_t timestamp) override
static constexpr id_of_settings the_settings()
void internal_update_settings__dark_mode(Record_Id record_id, bool field_value_of_dark_mode)
void internal_insert_settings(Record_Id record_id)
void internal_update_settings__host(Record_Id record_id, const std::string &field_value_of_host)
detail::data_of_settings storage_of_settings
void internal_update_settings__user(Record_Id record_id, const std::string &field_value_of_user)
Shortcut to directly build a Writable_Database with a Memory_File.
Write simultaneously to the database and the file (ignore schema changes)
A Database that contains a joedb::Writable_Journal and keeps them in sync.
void set_dark_mode(id_of_settings record, bool field_value_of_dark_mode)
void set_dark_mode(bool field_value_of_dark_mode)
void write_comment(const std::string &comment)
std::string read_blob(joedb::Blob blob) const
void set_host(const std::string &field_value_of_host)
const joedb::Readonly_Journal & get_journal() const
void set_user(id_of_settings record, const std::string &field_value_of_user)
joedb::Blob write_blob(const std::string &data) override
void set_user(const std::string &field_value_of_user)
void set_host(id_of_settings record, const std::string &field_value_of_host)
void soft_checkpoint() override
int64_t ahead_of_checkpoint() const
void hard_checkpoint() override
Strongly-typed wrapper around an integer representing a row of the settings table.
constexpr Record_Id get_record_id() const
Automatically generated by joedbc.