11/25
This commit is contained in:
@@ -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__
|
||||
Reference in New Issue
Block a user