update PYLibPinyin.*
[platform/upstream/ibus-libpinyin.git] / src / PYLibPinyin.h
index 3d40b1d..e1d1803 100644 (file)
@@ -1,6 +1,6 @@
 /* vim:set et ts=4 sts=4:
  *
- * ibus-pinyin - The Chinese PinYin engine for IBus
+ * ibus-libpinyin - Intelligent Pinyin engine based on libpinyin for IBus
  *
  * Copyright (c) 2011 Peng Wu <alexepico@gmail.com>
  *
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
 #ifndef __PY_LIB_PINYIN_H_
 #define __PY_LIB_PINYIN_H_
 
 #include <memory>
-#include <pinyin.h>
+#include <glib.h>
+
+typedef struct _pinyin_context_t pinyin_context_t;
+typedef struct _pinyin_instance_t pinyin_instance_t;
 
 namespace PY {
 
@@ -38,17 +41,34 @@ public:
     gboolean setPinyinOptions (Config *config);
     gboolean setChewingOptions (Config *config);
 
+    pinyin_context_t * initPinyinContext (Config *config);
+    pinyin_context_t * initChewingContext (Config *config);
+
+    pinyin_instance_t *allocPinyinInstance ();
+    void freePinyinInstance (pinyin_instance_t *instance);
+    pinyin_instance_t *allocChewingInstance ();
+    void freeChewingInstance (pinyin_instance_t *instance);
+    void modified (void);
+
     /* use static initializer in C++. */
     static LibPinyinBackEnd & instance (void) { return *m_instance; }
 
-protected:
-    gboolean setFuzzyOptions (Config *config, pinyin_context_t *context);
+    static void init (void);
+    static void finalize (void);
+
+
+private:
+    gboolean saveUserDB (void);
+    static gboolean timeoutCallback (gpointer data);
 
 private:
     /* libpinyin context */
     pinyin_context_t *m_pinyin_context;
     pinyin_context_t *m_chewing_context;
 
+    guint m_timeout_id;
+    GTimer *m_timer;
+
 private:
     static std::unique_ptr<LibPinyinBackEnd> m_instance;
 };