about summary refs log tree commit diff stats
path: root/generator/database.h
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2017-01-09 14:01:51 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2017-01-09 14:01:51 -0500
commit46b7119fab32b05923dbf9cda7cd6ce62f572846 (patch)
tree31ac6c281869085e5dbc6b210886c554d4c52cad /generator/database.h
downloadcadence-46b7119fab32b05923dbf9cda7cd6ce62f572846.tar.gz
cadence-46b7119fab32b05923dbf9cda7cd6ce62f572846.tar.bz2
cadence-46b7119fab32b05923dbf9cda7cd6ce62f572846.zip
Initial commit
Diffstat (limited to 'generator/database.h')
-rw-r--r--generator/database.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/generator/database.h b/generator/database.h new file mode 100644 index 0000000..7aa8dfa --- /dev/null +++ b/generator/database.h
@@ -0,0 +1,73 @@
1#ifndef DATABASE_H_0B0A47D2
2#define DATABASE_H_0B0A47D2
3
4#include <string>
5#include <exception>
6#include <list>
7
8struct sqlite3;
9
10namespace cadence {
11 namespace generator {
12
13 class field;
14
15 class sqlite3_error : public std::exception {
16 public:
17
18 sqlite3_error(const std::string& what, const std::string& db_err);
19
20 const char* what() const noexcept override;
21 const char* db_err() const noexcept;
22
23 private:
24 std::string what_;
25 std::string db_err_;
26
27 };
28
29 class database {
30 public:
31
32 // Constructor
33
34 explicit database(std::string path);
35
36 // Disable copying
37
38 database(const database& other) = delete;
39 database& operator=(const database& other) = delete;
40
41 // Move constructor and move assignment
42
43 database(database&& other);
44 database& operator=(database&& other);
45
46 // Swap
47
48 friend void swap(database& first, database& second);
49
50 // Destructor
51
52 ~database();
53
54 // Actions
55
56 void runQuery(std::string query);
57
58 void insertIntoTable(std::string table, std::list<field> fields);
59
60 private:
61
62 database()
63 {
64 }
65
66 sqlite3* ppdb_ = nullptr;
67
68 };
69
70 };
71};
72
73#endif /* end of include guard: DATABASE_H_0B0A47D2 */