Joedb 9.1.4
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
Interpreter_Dump_Writable.h
Go to the documentation of this file.
1#ifndef joedb_Interpreter_Dump_Writable_declared
2#define joedb_Interpreter_Dump_Writable_declared
3
5#include "joedb/Multiplexer.h"
6
7namespace joedb
8{
9 /// @ingroup ui
11 {
12 private:
13 std::ostream &out;
14 const Database_Schema &schema;
15 const bool blob_wanted;
16
17 void write_type(Type type);
18
19 public:
21 (
22 std::ostream &out,
23 const Database_Schema &schema,
24 bool blob_wanted = true
25 ):
26 out(out),
27 schema(schema),
28 blob_wanted(blob_wanted)
29 {
30 }
31
32 const char *get_name() const {return "dump";}
33
34 void create_table(const std::string &name) final;
35 void drop_table(Table_Id table_id) final;
36 void rename_table(Table_Id table_id, const std::string &name) final;
37 void add_field
38 (
39 Table_Id table_id,
40 const std::string &name,
41 Type type
42 ) final;
43 void drop_field(Table_Id table_id, Field_Id field_id) final;
44 void rename_field
45 (
46 Table_Id table_id,
47 Field_Id field_id,
48 const std::string &name
49 ) final;
50 void custom(const std::string &name) final;
51 void comment(const std::string &comment) final;
52 void timestamp(int64_t timestamp) final;
53 void valid_data() final;
54 void insert_into(Table_Id table_id, Record_Id record_id) final;
55 void insert_vector
56 (
57 Table_Id table_id,
58 Record_Id record_id,
59 size_t size
60 ) final;
61 void delete_from(Table_Id table_id, Record_Id record_id) final;
62 void write_update(const char *command, Table_Id table_id, Record_Id record_id, Field_Id field_id);
63
64 #define TYPE_MACRO(type, return_type, type_id, R, W)\
65 void update_##type_id\
66 (\
67 Table_Id table_id,\
68 Record_Id record_id,\
69 Field_Id field_id,\
70 return_type value\
71 ) final;\
72 void update_vector_##type_id\
73 (\
74 Table_Id table_id,\
75 Record_Id record_id,\
76 Field_Id field_id,\
77 size_t size,\
78 const type *value\
79 ) final;
80 #include "joedb/TYPE_MACRO.h"
81
82 bool wants_blob_data() const final {return blob_wanted;}
83 void on_blob(Blob blob) final;
84 Blob write_blob_data(const std::string &data) final;
85
87 };
88
90 {
91 protected:
94
95 public:
96 Interpreter_Dump_Writable_Parent(std::ostream &out, bool blob_wanted):
97 interpreter_writable(out, schema, blob_wanted)
98 {
99 }
100 };
101
104 public Multiplexer
105 {
106
107 public:
108 Interpreter_Dump_Writable(std::ostream &out, bool blob_wanted = true):
109 Interpreter_Dump_Writable_Parent(out, blob_wanted),
111 {
112 }
113 };
114}
115
116#endif
Interpreter_Dump_Writable_Parent(std::ostream &out, bool blob_wanted)
Interpreter_Dump_Writable(std::ostream &out, bool blob_wanted=true)
Interpreter_Writable(std::ostream &out, const Database_Schema &schema, bool blob_wanted=true)
void timestamp(int64_t timestamp) final
void drop_field(Table_Id table_id, Field_Id field_id) final
void create_table(const std::string &name) final
void add_field(Table_Id table_id, const std::string &name, Type type) final
void delete_from(Table_Id table_id, Record_Id record_id) final
void rename_table(Table_Id table_id, const std::string &name) final
void drop_table(Table_Id table_id) final
void rename_field(Table_Id table_id, Field_Id field_id, const std::string &name) final
void insert_into(Table_Id table_id, Record_Id record_id) final
void custom(const std::string &name) final
Blob write_blob_data(const std::string &data) final
void insert_vector(Table_Id table_id, Record_Id record_id, size_t size) final
void comment(const std::string &comment) final
void write_update(const char *command, Table_Id table_id, Record_Id record_id, Field_Id field_id)
Definition Blob.h:7