30 #ifndef ENCHANT_PLUS_PLUS_H
31 #define ENCHANT_PLUS_PLUS_H
40 void set_prefix_dir (
const std::string prefix) {
41 enchant_set_prefix_dir (prefix.c_str ());
46 class Exception :
public std::exception
49 explicit Exception (
const char * ex)
50 : std::exception (), m_ex (
"") {
55 virtual ~Exception () noexcept {
58 virtual const char * what () const noexcept {
73 enchant_broker_free_dict (m_broker, m_dict);
76 bool check (
const std::string & utf8word) {
79 val = enchant_dict_check (m_dict, utf8word.c_str(),
92 void suggest (
const std::string & utf8word,
93 std::vector<std::string> & out_suggestions) {
97 out_suggestions.clear ();
99 suggs = enchant_dict_suggest (m_dict, utf8word.c_str(),
100 utf8word.size(), &n_suggs);
102 if (suggs && n_suggs) {
103 out_suggestions.reserve(n_suggs);
105 for (
size_t i = 0; i < n_suggs; i++) {
106 out_suggestions.push_back (suggs[i]);
109 enchant_dict_free_string_list (m_dict, suggs);
113 std::vector<std::string> suggest (
const std::string & utf8word) {
114 std::vector<std::string> result;
115 suggest (utf8word, result);
119 void add (
const std::string & utf8word) {
120 enchant_dict_add (m_dict, utf8word.c_str(),
124 void add_to_session (
const std::string & utf8word) {
125 enchant_dict_add_to_session (m_dict, utf8word.c_str(),
129 bool is_added (
const std::string & utf8word) {
130 return enchant_dict_is_added (m_dict, utf8word.c_str(),
134 void remove (
const std::string & utf8word) {
135 enchant_dict_remove (m_dict, utf8word.c_str(),
139 void remove_from_session (
const std::string & utf8word) {
140 enchant_dict_remove_from_session (m_dict, utf8word.c_str(),
144 void is_removed (
const std::string & utf8word) {
145 enchant_dict_is_removed (m_dict, utf8word.c_str(),
149 void store_replacement (
const std::string & utf8bad,
150 const std::string & utf8good) {
151 enchant_dict_store_replacement (m_dict,
152 utf8bad.c_str(), utf8bad.size(),
153 utf8good.c_str(), utf8good.size());
156 const std::string & get_lang ()
const {
160 const std::string & get_provider_name ()
const {
161 return m_provider_name;
164 const std::string & get_provider_desc ()
const {
165 return m_provider_desc;
168 const std::string & get_provider_file ()
const {
169 return m_provider_file;
177 static void s_describe_fn (
const char *
const lang,
178 const char *
const provider_name,
179 const char *
const provider_desc,
180 const char *
const provider_file,
185 dict->m_provider_name = provider_name;
186 dict->m_provider_desc = provider_desc;
187 dict->m_provider_file = provider_file;
191 : m_dict (dict), m_broker (broker) {
192 enchant_dict_describe (m_dict, s_describe_fn,
this);
197 Dict (
const Dict & rhs);
198 Dict& operator=(
const Dict & rhs);
204 std::string m_provider_name;
205 std::string m_provider_desc;
206 std::string m_provider_file;
215 : m_broker (enchant_broker_init ())
220 enchant_broker_free (m_broker);
223 Dict * request_dict (
const std::string & lang) {
224 EnchantDict * dict = enchant_broker_request_dict (m_broker, lang.c_str());
231 return new Dict (dict, m_broker);
234 Dict * request_pwl_dict (
const std::string & pwl) {
235 EnchantDict * dict = enchant_broker_request_pwl_dict (m_broker, pwl.c_str());
242 return new Dict (dict, m_broker);
245 bool dict_exists (
const std::string & lang) {
246 if (enchant_broker_dict_exists (m_broker, lang.c_str()))
251 void set_ordering (
const std::string & tag,
const std::string & ordering) {
252 enchant_broker_set_ordering (m_broker, tag.c_str(), ordering.c_str());
255 void describe (EnchantBrokerDescribeFn fn,
void * user_data = NULL) {
256 enchant_broker_describe (m_broker, fn, user_data);
259 void list_dicts (EnchantDictDescribeFn fn,
void * user_data = NULL) {
260 enchant_broker_list_dicts (m_broker, fn, user_data);
266 Broker (
const Broker & rhs);
267 Broker& operator=(
const Broker & rhs);
Definition: enchant++.h:210
Definition: enchant++.h:67
Definition: enchant++.h:47
Definition: enchant-provider.h:125