presage  0.9.1
presage.h
Go to the documentation of this file.
1 
2 /******************************************************
3  * Presage, an extensible predictive text entry system
4  * ---------------------------------------------------
5  *
6  * Copyright (C) 2008 Matteo Vescovi <matteo.vescovi@yahoo.co.uk>
7 
8  This program is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 2 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License along
19  with this program; if not, write to the Free Software Foundation, Inc.,
20  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21  *
22  **********(*)*/
23 
24 
25 #ifndef PRESAGE
26 #define PRESAGE
27 
28 #include "presageException.h"
29 #include "presageCallback.h"
30 
85 /********************************
86  * Presage C++ API starts here
87  */
88 
89 #ifdef __cplusplus
90 #ifndef _MSC_VER
91 
92 #include <string>
93 #include <vector>
94 #include <map>
95 
96 /* Forward declarations, not part of presage C++ API */
97 class Configuration;
98 class ProfileManager;
99 class Profile;
100 class ContextTracker;
101 class PredictorRegistry;
102 class PredictorActivator;
103 class Selector;
104 
107 class Presage {
108 public:
116 
117 
125  Presage(PresageCallback* callback, const std::string config) throw (PresageException);
126 
127 
130  ~Presage();
131 
141  std::vector<std::string> predict() throw (PresageException);
142 
156  std::multimap<double, std::string> predict(std::vector<std::string> filter) throw (PresageException);
157 
170  void learn(const std::string text) const throw (PresageException);
171 
180 
193  std::string completion(std::string str) throw (PresageException);
194 
199  std::string context() const throw (PresageException);
200 
206  bool context_change() const throw (PresageException);
207 
212  std::string prefix() const throw (PresageException);
213 
221  std::string config(const std::string variable) const throw (PresageException);
222 
230  void config(const std::string variable, const std::string value) const throw (PresageException);
231 
239  void save_config() const throw (PresageException);
240 
241  /*
242  * Presage public API ends here
243  */
244 
245 private:
252 
253 };
254 
255 #endif /* _MSC_VER */
256 #endif /* __cplusplus */
257 
258 /*
259  * Presage C++ API ends here
260  *******************************/
261 
262 
263 /*******************************
264  * Presage C API starts here
265  */
266 
267 #ifdef __cplusplus
268 extern "C" {
269 #endif
270 
271  typedef struct _presage* presage_t;
272 
274  void* past_stream_cb_arg,
275  _presage_callback_get_future_stream future_stream_cb,
276  void* future_stream_cb_arg,
277  presage_t* result);
278 
280  void* past_stream_cb_arg,
281  _presage_callback_get_future_stream future_stream_cb,
282  void* future_stream_cb_arg,
283  const char* config,
284  presage_t* result);
285 
286  void presage_free (presage_t prsg);
287 
288  void presage_free_string (char* str);
289  void presage_free_string_array (char** str);
290 
292  char*** result);
293 
295  const char* text);
296 
298  const char* token,
299  char** result);
300 
302  char** result);
303 
305  int* result);
306 
308  char** result);
309 
311  const char* variable,
312  char** result);
313 
315  const char* variable,
316  const char* value);
317 
319 
320 #ifdef __cplusplus
321 }
322 #endif
323 
324 /*
325  * Presage C API ends here
326  ****************************/
327 
328 
329 #endif /* PRESAGE */
Presage::callback
PresageCallback * callback(PresageCallback *callback)
Callback getter/setter.
Definition: presage.cpp:146
Selector
Definition: selector.h:79
Presage::predictorRegistry
PredictorRegistry * predictorRegistry
Definition: presage.h:246
presage_error_code_t
presage_error_code_t
Definition: presageException.h:31
presage_config_set
presage_error_code_t presage_config_set(presage_t prsg, const char *variable, const char *value)
Definition: presage.cpp:447
presage_new_with_config
presage_error_code_t presage_new_with_config(_presage_callback_get_past_stream past, void *past_stream_cb_arg, _presage_callback_get_future_stream future_stream_cb, void *future_stream_cb_arg, const char *config, presage_t *result)
Definition: presage.cpp:325
Presage::config
std::string config(const std::string variable) const
Gets the value of specified configuration variable.
Definition: presage.cpp:218
Profile
Definition: profile.h:55
presage_t
struct _presage * presage_t
Definition: presage.h:268
presageCallback.h
Presage::predictorActivator
PredictorActivator * predictorActivator
Definition: presage.h:248
presage_free_string_array
void presage_free_string_array(char **str)
Definition: presage.cpp:363
ProfileManager
Definition: profileManager.h:50
Presage::completion
std::string completion(std::string str)
Request presage to return the completion string for the given predicted token.
Definition: presage.cpp:152
_presage_callback_get_future_stream
const typedef char *(* _presage_callback_get_future_stream)(void *)
Definition: presageCallback.h:32
presage_free
void presage_free(presage_t prsg)
Definition: presage.cpp:347
presage_predict
presage_error_code_t presage_predict(presage_t prsg, char ***result)
Definition: presage.cpp:373
Presage::configuration
Configuration * configuration
Definition: presage.h:245
presage_save_config
presage_error_code_t presage_save_config(presage_t prsg)
Definition: presage.cpp:455
Presage::learn
void learn(const std::string text) const
Learn from text offline.
Definition: presage.cpp:139
ContextTracker
Tracks user interaction and context.
Definition: contextTracker.h:154
_presage
Definition: presage.cpp:238
PredictorRegistry
Definition: predictorRegistry.h:45
Presage::~Presage
~Presage()
Definition: presage.cpp:55
presage_new
presage_error_code_t presage_new(_presage_callback_get_past_stream past_stream_cb, void *past_stream_cb_arg, _presage_callback_get_future_stream future_stream_cb, void *future_stream_cb_arg, presage_t *result)
Definition: presage.cpp:304
Presage::save_config
void save_config() const
Save current configuration to file.
Definition: presage.cpp:230
_presage_callback_get_past_stream
const typedef char *(* _presage_callback_get_past_stream)(void *)
Definition: presageCallback.h:31
presage_prefix
presage_error_code_t presage_prefix(presage_t prsg, char **result)
Definition: presage.cpp:431
Presage::contextTracker
ContextTracker * contextTracker
Definition: presage.h:247
PredictorActivator
Definition: predictorActivator.h:61
presageException.h
Presage::context
std::string context() const
Returns the text entered so far.
Definition: presage.cpp:200
PresageException
Definition: presageException.h:66
Configuration
Definition: configuration.h:35
presage_free_string
void presage_free_string(char *str)
Definition: presage.cpp:358
presage_completion
presage_error_code_t presage_completion(presage_t prsg, const char *token, char **result)
Definition: presage.cpp:407
presage_context
presage_error_code_t presage_context(presage_t prsg, char **result)
Definition: presage.cpp:415
Presage::prefix
std::string prefix() const
Returns the current prefix.
Definition: presage.cpp:212
presage_context_change
presage_error_code_t presage_context_change(presage_t prsg, int *result)
Definition: presage.cpp:423
Presage::context_change
bool context_change() const
Returns true if a context change occured.
Definition: presage.cpp:206
Presage::profileManager
ProfileManager * profileManager
Definition: presage.h:244
Presage::predict
std::vector< std::string > predict()
Obtain a prediction.
Definition: presage.cpp:64
Presage
Presage, the intelligent predictive text entry platform.
Definition: presage.h:105
PresageCallback
Definition: presageCallback.h:65
Presage::selector
Selector * selector
Definition: presage.h:249
presage_learn
presage_error_code_t presage_learn(presage_t prsg, const char *text)
Definition: presage.cpp:399
presage_config
presage_error_code_t presage_config(presage_t prsg, const char *variable, char **result)
Definition: presage.cpp:439
Presage::Presage
Presage(PresageCallback *callback)
Definition: presage.cpp:33