![Uwe Rathmann](/assets/img/avatar_default.png)
The 3rdparty files are now compiled as part of the corresponding input method, so that the project files can be written without using platform specific linker flags.
86 lines
2.1 KiB
C++
86 lines
2.1 KiB
C++
/*
|
|
* 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__
|