/src/im/gpinyin/include/sync.h
http://ftk.googlecode.com/ · C++ Header · 85 lines · 29 code · 19 blank · 37 comment · 0 complexity · 20f1a80e2d8f926eec95861c977dc94a MD5 · raw file
- /*
- * 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__