static LibPinyinBackEnd libpinyin_backend;
-LibPinyinBackEnd::LibPinyinBackEnd(){
- g_assert (NULL == m_instance.get ());
- m_pinyin_context = pinyin_init("/usr/share/libpinyin/data", "../data");
- m_instance.reset(this);
+LibPinyinBackEnd::LibPinyinBackEnd () {
+ m_pinyin_context = pinyin_init ("/usr/share/libpinyin/data", NULL);
+ m_chewing_context = pinyin_init ("/usr/share/libpinyin/data", NULL);
}
-LibPinyinBackEnd::~LibPinyinBackEnd(){
+LibPinyinBackEnd::~LibPinyinBackEnd () {
pinyin_fini(m_pinyin_context);
- m_instance = NULL;
+ pinyin_fini(m_chewing_context);
+}
+
+void
+LibPinyinBackEnd::init (void) {
+ g_assert (NULL == m_instance.get ());
+ LibPinyinBackEnd * backend = new LibPinyinBackEnd;
+ m_instance.reset(backend);
+}
+
+void
+LibPinyinBackEnd::finalize (void) {
}
/* Here are the fuzzy pinyin options conversion table. */
/* use static initializer in C++. */
static LibPinyinBackEnd & instance (void) { return *m_instance; }
+ static void init (void);
+ static void finalize (void);
+
protected:
gboolean setFuzzyOptions (Config *config, pinyin_context_t *context);
#include "PYBus.h"
#include "PYConfig.h"
#include "PYDatabase.h"
+#include "PYLibPinyin.h"
using namespace PY;
Database::init ();
PinyinConfig::init (bus);
BopomofoConfig::init (bus);
+ LibPinyinBackEnd::init ();
g_signal_connect ((IBusBus *)bus, "disconnected", G_CALLBACK (ibus_disconnected_cb), NULL);
static void
atexit_cb (void)
{
+ LibPinyinBackEnd::finalize ();
PY::Database::finalize ();
}