Joedb 10.0.1
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 soft_checkpoint() override;
35
36 void create_table(const std::string &name) override;
37 void drop_table(Table_Id table_id) override;
38 void rename_table(Table_Id table_id, const std::string &name) override;
39 void add_field
40 (
41 Table_Id table_id,
42 const std::string &name,
43 Type type
44 ) override;
45 void drop_field(Table_Id table_id, Field_Id field_id) override;
46 void rename_field
47 (
48 Table_Id table_id,
49 Field_Id field_id,
50 const std::string &name
51 ) override;
52 void custom(const std::string &name) override;
53 void comment(const std::string &comment) override;
54 void timestamp(int64_t timestamp) override;
55 void valid_data() override;
56
57 void insert_into(Table_Id table_id, Record_Id record_id) override;
58 void delete_from(Table_Id table_id, Record_Id record_id) override;
59
60 void insert_vector
61 (
62 Table_Id table_id,
63 Record_Id record_id,
64 size_t size
65 ) override;
66
67 void delete_vector
68 (
69 Table_Id table_id,
70 Record_Id record_id,
71 size_t size
72 ) override;
73
74 void write_update(const char *command, Table_Id table_id, Record_Id record_id, Field_Id field_id);
75
76 #define TYPE_MACRO(type, return_type, type_id, R, W)\
77 void update_##type_id\
78 (\
79 Table_Id table_id,\
80 Record_Id record_id,\
81 Field_Id field_id,\
82 return_type value\
83 ) override;\
84 void update_vector_##type_id\
85 (\
86 Table_Id table_id,\
87 Record_Id record_id,\
88 Field_Id field_id,\
89 size_t size,\
90 const type *value\
91 ) override;
92 #include "joedb/TYPE_MACRO.h"
93
94 bool wants_blob_data() const override {return blob_wanted;}
95 void on_blob(Blob blob) override;
96 Blob write_blob(const std::string &data) override;
97
99 };
100
102 {
103 protected:
106
107 public:
108 Interpreter_Dump_Writable_Parent(std::ostream &out, bool blob_wanted):
109 interpreter_writable(out, schema, blob_wanted)
110 {
111 }
112 };
113
116 public Multiplexer
117 {
118
119 public:
120 Interpreter_Dump_Writable(std::ostream &out, bool blob_wanted = true):
121 Interpreter_Dump_Writable_Parent(out, blob_wanted),
123 {
124 }
125 };
126}
127
128#endif
Interpreter_Dump_Writable_Parent(std::ostream &out, bool blob_wanted)
Interpreter_Dump_Writable(std::ostream &out, bool blob_wanted=true)
void create_table(const std::string &name) override
void comment(const std::string &comment) override
void insert_into(Table_Id table_id, Record_Id record_id) override
Interpreter_Writable(std::ostream &out, const Database_Schema &schema, bool blob_wanted=true)
void rename_table(Table_Id table_id, const std::string &name) override
void custom(const std::string &name) override
void drop_field(Table_Id table_id, Field_Id field_id) override
void timestamp(int64_t timestamp) override
void add_field(Table_Id table_id, const std::string &name, Type type) override
Blob write_blob(const std::string &data) override
void delete_from(Table_Id table_id, Record_Id record_id) override
void delete_vector(Table_Id table_id, Record_Id record_id, size_t size) override
void insert_vector(Table_Id table_id, Record_Id record_id, size_t size) override
void drop_table(Table_Id table_id) override
void rename_field(Table_Id table_id, Field_Id field_id, const std::string &name) override
void write_update(const char *command, Table_Id table_id, Record_Id record_id, Field_Id field_id)
Superclass with all joedb journal event listeners as virtual functions.
Definition Writable.h:17
Definition Blob.h:7