diff options
Diffstat (limited to 'lib/database.h')
-rw-r--r-- | lib/database.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/database.h b/lib/database.h index ef5ff87..efb54e1 100644 --- a/lib/database.h +++ b/lib/database.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #include <string> | 4 | #include <string> |
5 | #include <exception> | 5 | #include <exception> |
6 | #include <stdexcept> | ||
6 | #include <list> | 7 | #include <list> |
7 | #include <set> | 8 | #include <set> |
8 | #include "notion.h" | 9 | #include "notion.h" |
@@ -45,6 +46,18 @@ namespace verbly { | |||
45 | 46 | ||
46 | ~database(); | 47 | ~database(); |
47 | 48 | ||
49 | // Information | ||
50 | |||
51 | int getMajorVersion() const | ||
52 | { | ||
53 | return major_; | ||
54 | } | ||
55 | |||
56 | int getMinorVersion() const | ||
57 | { | ||
58 | return minor_; | ||
59 | } | ||
60 | |||
48 | // Queries | 61 | // Queries |
49 | 62 | ||
50 | query<notion> notions(filter where, order sortOrder = {}, int limit = 1) const; | 63 | query<notion> notions(filter where, order sortOrder = {}, int limit = 1) const; |
@@ -69,6 +82,37 @@ namespace verbly { | |||
69 | 82 | ||
70 | sqlite3* ppdb_ = nullptr; | 83 | sqlite3* ppdb_ = nullptr; |
71 | 84 | ||
85 | int major_; | ||
86 | int minor_; | ||
87 | |||
88 | }; | ||
89 | |||
90 | class database_version_mismatch : public std::logic_error { | ||
91 | public: | ||
92 | |||
93 | database_version_mismatch(int right, int wrong) : | ||
94 | std::logic_error(generateMessage(right, wrong)), | ||
95 | right_(right), | ||
96 | wrong_(wrong) | ||
97 | { | ||
98 | } | ||
99 | |||
100 | int getRightVersion() const noexcept | ||
101 | { | ||
102 | return right_; | ||
103 | } | ||
104 | |||
105 | int getWrongVersion() const noexcept | ||
106 | { | ||
107 | return wrong_; | ||
108 | } | ||
109 | |||
110 | private: | ||
111 | |||
112 | static std::string generateMessage(int right, int wrong); | ||
113 | |||
114 | int right_; | ||
115 | int wrong_; | ||
72 | }; | 116 | }; |
73 | 117 | ||
74 | }; | 118 | }; |