summary refs log tree commit diff stats
path: root/lib/form.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/form.h')
-rw-r--r--lib/form.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/lib/form.h b/lib/form.h index 479672f..b365943 100644 --- a/lib/form.h +++ b/lib/form.h
@@ -5,12 +5,11 @@
5#include <vector> 5#include <vector>
6#include <string> 6#include <string>
7#include <stdexcept> 7#include <stdexcept>
8#include <hkutil/database.h>
8#include "field.h" 9#include "field.h"
9#include "pronunciation.h" 10#include "pronunciation.h"
10#include "filter.h" 11#include "filter.h"
11 12
12struct sqlite3_stmt;
13
14namespace verbly { 13namespace verbly {
15 14
16 class database; 15 class database;
@@ -24,7 +23,7 @@ namespace verbly {
24 23
25 // Construct from database 24 // Construct from database
26 25
27 form(const database& db, sqlite3_stmt* row); 26 form(const database& db, hatkirby::row row);
28 27
29 // Accessors 28 // Accessors
30 29
@@ -43,7 +42,7 @@ namespace verbly {
43 return id_; 42 return id_;
44 } 43 }
45 44
46 std::string getText() const 45 const std::string& getText() const
47 { 46 {
48 if (!valid_) 47 if (!valid_)
49 { 48 {
@@ -83,7 +82,15 @@ namespace verbly {
83 return length_; 82 return length_;
84 } 83 }
85 84
86 const std::vector<pronunciation>& getPronunciations() const; 85 const std::vector<pronunciation>& getPronunciations() const
86 {
87 if (!valid_)
88 {
89 throw std::domain_error("Bad access to uninitialized form");
90 }
91
92 return pronunciations_;
93 }
87 94
88 // Convenience 95 // Convenience
89 96
@@ -130,19 +137,14 @@ namespace verbly {
130 static const field pronunciations; 137 static const field pronunciations;
131 138
132 private: 139 private:
133 bool valid_ = false;
134 140
141 bool valid_ = false;
135 int id_; 142 int id_;
136 std::string text_; 143 std::string text_;
137 int complexity_; 144 int complexity_;
138 bool proper_; 145 bool proper_;
139 int length_; 146 int length_;
140 147 std::vector<pronunciation> pronunciations_;
141 const database* db_;
142
143 mutable bool initializedPronunciations_ = false;
144 mutable std::vector<pronunciation> pronunciations_;
145
146 }; 148 };
147 149
148}; 150};