12#ifndef tutorial_rpc_population_Writable_Database_declared
13#define tutorial_rpc_population_Writable_Database_declared
33 friend class detail::Client_Data;
44 void check_single_row();
51 bool perform_initialization
67 return journal.get_file().read_blob(blob);
72 return journal.write_blob(data);
77 return journal.ahead_of_checkpoint();
82 journal.soft_checkpoint();
87 journal.hard_checkpoint();
94 void flush()
override {journal.flush();}
113 journal.insert_into(
Table_Id(1),
id.get_record_id());
133 for (
size_t i = size; i > 0;)
156 journal.insert_into(
Table_Id(2),
id.get_record_id());
170 std::string_view field_value_of_city_name,
172 int64_t field_value_of_population
177 set_city(result, field_value_of_city);
190 for (
size_t i = size; i > 0;)
constexpr Record_Id get_record_id() const
Handle concurrent access to a joedb::Abstract_File using a joedb::Connection.
void timestamp(int64_t timestamp) override
void comment(const std::string &comment) override
detail::data_of_data storage_of_data
detail::data_of_city storage_of_city
void internal_update_vector_data__city_name(Record_Id record_id, size_t size, const std::string *value)
void internal_update_vector_data__city(Record_Id record_id, size_t size, const id_of_city *value)
void internal_update_data__city_name(Record_Id record_id, std::string_view field_value_of_city_name)
void internal_vector_insert_city(Record_Id record_id, size_t size)
void internal_update_data__population(Record_Id record_id, int64_t field_value_of_population)
void internal_delete_city(Record_Id record_id)
void internal_update_data__city(Record_Id record_id, id_of_city field_value_of_city)
void internal_delete_data(Record_Id record_id)
void internal_insert_data(Record_Id record_id)
void internal_update_vector_data__population(Record_Id record_id, size_t size, const int64_t *value)
void internal_vector_insert_data(Record_Id record_id, size_t size)
void internal_insert_city(Record_Id record_id)
Shortcut to directly build a Writable_Database with a Memory_File.
Write simultaneously to the database and the file (ignore schema changes).
void set_city_name(id_of_data record, std::string_view field_value_of_city_name)
void set_city(id_of_data record, id_of_city field_value_of_city)
void insert_data(id_of_data id)
void write_comment(const std::string &comment)
id_of_data new_data(std::string_view field_value_of_city_name, id_of_city field_value_of_city, int64_t field_value_of_population)
void delete_city(id_of_city record)
id_of_city new_vector_of_city(size_t size)
void delete_data(id_of_data record)
joedb::Blob write_blob(std::string_view data) override
void delete_vector_of_city(id_of_city v, size_t size)
void update_vector_of_city_name(id_of_data record, size_t size, F f)
friend class Memory_Database
id_of_data new_vector_of_data(size_t size)
void delete_vector_of_data(id_of_data v, size_t size)
int64_t ahead_of_checkpoint() const
void update_vector_of_city(id_of_data record, size_t size, F f)
const joedb::Readonly_Journal & get_journal() const
std::string read_blob(joedb::Blob blob) const
void hard_checkpoint() override
void insert_city(id_of_city id)
void update_vector_of_population(id_of_data record, size_t size, F f)
void soft_checkpoint() override
void set_population(id_of_data record, int64_t field_value_of_population)
Strongly-typed wrapper around an integer representing a row of the data table.
constexpr auto get_id() const
constexpr Record_Id get_record_id() const
Automatically generated by joedbc.
tutorial::id_of_city id_of_city