9 std::initializer_list<std::reference_wrapper<Writable>> initializer_list
11 writables(initializer_list),
16 #define MULTIPLEX(x) do {for (size_t i = start_index; i < writables.size(); i++) writables[i].get().x;} while(0)
37 const std::string &name
48 const std::string &name,
52 MULTIPLEX(add_field(table_id, name, type));
63 MULTIPLEX(drop_field(table_id, field_id));
72 const std::string &name
75 MULTIPLEX(rename_field(table_id, field_id, name));
119 for (
auto w: writables)
121 result = w.get().get_position();
165 MULTIPLEX(insert_into(table_id, record_id));
176 MULTIPLEX(delete_from(table_id, record_id));
188 MULTIPLEX(insert_vector(table_id, record_id, size));
200 MULTIPLEX(delete_vector(table_id, record_id, size));
203 #define TYPE_MACRO(type, return_type, type_id, R, W)\
204 void Multiplexer::update_##type_id\
207 Record_Id record_id,\
212 MULTIPLEX(update_##type_id(table_id, record_id, field_id, value));\
214 void Multiplexer::update_vector_##type_id\
217 Record_Id record_id,\
225 update_vector_##type_id(table_id, record_id, field_id, size, value)\
228 type *Multiplexer::get_own_##type_id##_storage\
231 Record_Id record_id,\
237 type *result = nullptr;\
238 for (auto w: writables)\
240 result = w.get().get_own_##type_id##_storage(table_id, record_id, field_id, capacity);\
261 for (
auto w: writables)
263 if (w.get().wants_blob_data())
276 for (
auto w: writables)
278 if (w.get().wants_blob_data())
279 result = w.get().write_blob(data);
void soft_checkpoint() override
void insert_into(Table_Id table_id, Record_Id record_id) override
void comment(const std::string &comment) override
bool wants_blob_data() const override
Blob write_blob(const std::string &data) override
void custom(const std::string &name) override
void create_table(const std::string &name) override
int64_t get_position() const override
void rename_field(Table_Id table_id, Field_Id field_id, const std::string &name) override
void drop_field(Table_Id table_id, Field_Id field_id) override
void valid_data() override
void timestamp(int64_t timestamp) override
void end_writing(int64_t position) override
void add_field(Table_Id table_id, const std::string &name, Type type) override
void delete_from(Table_Id table_id, Record_Id record_id) override
void on_blob(Blob blob) override
void rename_table(Table_Id table_id, const std::string &name) override
void insert_vector(Table_Id table_id, Record_Id record_id, size_t size) override
void hard_checkpoint() override
void delete_vector(Table_Id table_id, Record_Id record_id, size_t size) override
void start_writing(int64_t position) override
void drop_table(Table_Id table_id) override
Multiplexer(std::initializer_list< std::reference_wrapper< Writable > > initializer_list)