diff options
Diffstat (limited to 'lib/database.h')
-rw-r--r-- | lib/database.h | 61 |
1 files changed, 28 insertions, 33 deletions
diff --git a/lib/database.h b/lib/database.h index efb54e1..83c4c1c 100644 --- a/lib/database.h +++ b/lib/database.h | |||
@@ -1,11 +1,10 @@ | |||
1 | #ifndef DATABASE_H_0B0A47D2 | 1 | #ifndef DATABASE_H_0B0A47D1 |
2 | #define DATABASE_H_0B0A47D2 | 2 | #define DATABASE_H_0B0A47D1 |
3 | 3 | ||
4 | #include <string> | 4 | #include <string> |
5 | #include <exception> | ||
6 | #include <stdexcept> | 5 | #include <stdexcept> |
7 | #include <list> | ||
8 | #include <set> | 6 | #include <set> |
7 | #include <hkutil/database.h> | ||
9 | #include "notion.h" | 8 | #include "notion.h" |
10 | #include "word.h" | 9 | #include "word.h" |
11 | #include "frame.h" | 10 | #include "frame.h" |
@@ -14,8 +13,6 @@ | |||
14 | #include "pronunciation.h" | 13 | #include "pronunciation.h" |
15 | #include "order.h" | 14 | #include "order.h" |
16 | 15 | ||
17 | struct sqlite3; | ||
18 | |||
19 | namespace verbly { | 16 | namespace verbly { |
20 | 17 | ||
21 | template <typename Object> | 18 | template <typename Object> |
@@ -28,24 +25,6 @@ namespace verbly { | |||
28 | 25 | ||
29 | explicit database(std::string path); | 26 | explicit database(std::string path); |
30 | 27 | ||
31 | // Disable copying | ||
32 | |||
33 | database(const database& other) = delete; | ||
34 | database& operator=(const database& other) = delete; | ||
35 | |||
36 | // Move constructor and move assignment | ||
37 | |||
38 | database(database&& other); | ||
39 | database& operator=(database&& other); | ||
40 | |||
41 | // Swap | ||
42 | |||
43 | friend void swap(database& first, database& second); | ||
44 | |||
45 | // Destructor | ||
46 | |||
47 | ~database(); | ||
48 | |||
49 | // Information | 28 | // Information |
50 | 29 | ||
51 | int getMajorVersion() const | 30 | int getMajorVersion() const |
@@ -60,17 +39,35 @@ namespace verbly { | |||
60 | 39 | ||
61 | // Queries | 40 | // Queries |
62 | 41 | ||
63 | query<notion> notions(filter where, order sortOrder = {}, int limit = 1) const; | 42 | query<notion> notions( |
43 | filter where, | ||
44 | order sortOrder = {}, | ||
45 | int limit = 1) const; | ||
64 | 46 | ||
65 | query<word> words(filter where, order sortOrder = {}, int limit = 1) const; | 47 | query<word> words( |
48 | filter where, | ||
49 | order sortOrder = {}, | ||
50 | int limit = 1) const; | ||
66 | 51 | ||
67 | query<frame> frames(filter where, order sortOrder = {}, int limit = 1) const; | 52 | query<frame> frames( |
53 | filter where, | ||
54 | order sortOrder = {}, | ||
55 | int limit = 1) const; | ||
68 | 56 | ||
69 | query<part> parts(filter where, order sortOrder = {}, int limit = 1) const; | 57 | query<part> parts( |
58 | filter where, | ||
59 | order sortOrder = {}, | ||
60 | int limit = 1) const; | ||
70 | 61 | ||
71 | query<form> forms(filter where, order sortOrder = {}, int limit = 1) const; | 62 | query<form> forms( |
63 | filter where, | ||
64 | order sortOrder = {}, | ||
65 | int limit = 1) const; | ||
72 | 66 | ||
73 | query<pronunciation> pronunciations(filter where, order sortOrder = {}, int limit = 1) const; | 67 | query<pronunciation> pronunciations( |
68 | filter where, | ||
69 | order sortOrder = {}, | ||
70 | int limit = 1) const; | ||
74 | 71 | ||
75 | std::set<std::string> selrestrs(int partId) const; | 72 | std::set<std::string> selrestrs(int partId) const; |
76 | 73 | ||
@@ -78,9 +75,7 @@ namespace verbly { | |||
78 | 75 | ||
79 | private: | 76 | private: |
80 | 77 | ||
81 | database() = default; | 78 | mutable hatkirby::database ppdb_; |
82 | |||
83 | sqlite3* ppdb_ = nullptr; | ||
84 | 79 | ||
85 | int major_; | 80 | int major_; |
86 | int minor_; | 81 | int minor_; |