aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/pinyin/3rdparty/pinyin/include/sync.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/pinyin/3rdparty/pinyin/include/sync.h')
-rw-r--r--src/plugins/pinyin/3rdparty/pinyin/include/sync.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/plugins/pinyin/3rdparty/pinyin/include/sync.h b/src/plugins/pinyin/3rdparty/pinyin/include/sync.h
new file mode 100644
index 00000000..bf42d1f1
--- /dev/null
+++ b/src/plugins/pinyin/3rdparty/pinyin/include/sync.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef PINYINIME_INCLUDE_SYNC_H__
+#define PINYINIME_INCLUDE_SYNC_H__
+
+#define ___SYNC_ENABLED___
+
+#ifdef ___SYNC_ENABLED___
+
+#include "userdict.h"
+
+namespace ime_pinyin {
+
+// Class for user dictionary synchronization
+// This class is not thread safe
+// Normal invoking flow will be
+// begin() ->
+// put_lemmas() x N ->
+// {
+// get_lemmas() ->
+// [ get_last_got_count() ] ->
+// clear_last_got() ->
+// } x N ->
+// finish()
+class Sync {
+ public:
+ Sync();
+ ~Sync();
+
+ static const int kUserDictMaxLemmaCount = 5000;
+ static const int kUserDictMaxLemmaSize = 200000;
+ static const int kUserDictRatio = 20;
+
+ bool begin(const char * filename);
+
+ // Merge lemmas downloaded from sync server into local dictionary
+ // lemmas, lemmas string encoded in UTF16LE
+ // len, length of lemmas string
+ // Return how many lemmas merged successfully
+ int put_lemmas(char16 * lemmas, int len);
+
+ // Get local new user lemmas into UTF16LE string
+ // str, buffer ptr to store new user lemmas
+ // size, size of buffer
+ // Return length of returned buffer in measure of UTF16LE
+ int get_lemmas(char16 * str, int size);
+
+ // Return lemmas count in last get_lemmas()
+ int get_last_got_count();
+
+ // Return total lemmas count need get_lemmas()
+ int get_total_count();
+
+ // Clear lemmas got by recent get_lemmas()
+ void clear_last_got();
+
+ void finish();
+
+ int get_capacity();
+
+ private:
+ UserDict * userdict_;
+ char * dictfile_;
+ int last_count_;
+};
+
+}
+
+#endif
+
+#endif // PINYINIME_INCLUDE_SYNC_H__