16bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi/*
26bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * Copyright (C) 2013, The Android Open Source Project
36bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi *
46bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * Licensed under the Apache License, Version 2.0 (the "License");
56bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * you may not use this file except in compliance with the License.
66bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * You may obtain a copy of the License at
76bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi *
86bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi *     http://www.apache.org/licenses/LICENSE-2.0
96bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi *
106bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * Unless required by applicable law or agreed to in writing, software
116bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * distributed under the License is distributed on an "AS IS" BASIS,
126bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * See the License for the specific language governing permissions and
146bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * limitations under the License.
156bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi */
166bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
176bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi/*
186bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * !!!!! DO NOT EDIT THIS FILE !!!!!
196bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi *
206bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * This file was generated from
216bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp
226bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi */
236bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
2407e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
256bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
266bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanaginamespace latinime {
276bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanaginamespace backward {
2807e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanaginamespace v402 {
296bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
306bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi// These values MUST match the definitions in FormatSpec.java.
316bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::TRIE_FILE_EXTENSION = ".trie";
326bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::HEADER_FILE_EXTENSION = ".header";
336bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::FREQ_FILE_EXTENSION = ".freq";
346bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi// tat = Terminal Address Table
356bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION = ".tat";
366bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::BIGRAM_FILE_EXTENSION = ".bigram_freq";
376bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION = ".bigram_lookup";
386bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION = ".bigram_index_freq";
396bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::SHORTCUT_FILE_EXTENSION = ".shortcut_shortcut";
406bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION = ".shortcut_lookup";
416bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst char *const Ver4DictConstants::SHORTCUT_CONTENT_TABLE_FILE_EXTENSION =
426bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi        ".shortcut_index_shortcut";
436bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
446bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi// Version 4 dictionary size is implicitly limited to 8MB due to 3-byte offsets.
456bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::MAX_DICTIONARY_SIZE = 8 * 1024 * 1024;
466bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi// Extended region size, which is not GCed region size in dict file + additional buffer size, is
476bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi// limited to 1MB to prevent from inefficient traversing.
486bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE = 1 * 1024 * 1024;
496bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
506bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::NOT_A_TERMINAL_ID = -1;
516bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::PROBABILITY_SIZE = 1;
526bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE = 1;
536bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE = 3;
546bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::NOT_A_TERMINAL_ADDRESS = 0;
556bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::TERMINAL_ID_FIELD_SIZE = 4;
566bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::TIME_STAMP_FIELD_SIZE = 4;
576bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::WORD_LEVEL_FIELD_SIZE = 1;
586bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::WORD_COUNT_FIELD_SIZE = 1;
596bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
606bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE = 16;
616bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE = 4;
626bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE = 64;
636bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE = 4;
646bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
656bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE = 3;
666bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi// Unsigned int max value of BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE-byte is used for representing
676bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi// invalid terminal ID in bigram lists.
686bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID =
696bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi        (1 << (BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE * 8)) - 1;
706bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE = 1;
716bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::BIGRAM_PROBABILITY_MASK = 0x0F;
726bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::BIGRAM_HAS_NEXT_MASK = 0x80;
736bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::BIGRAM_LARGE_PROBABILITY_FIELD_SIZE = 1;
746bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
756bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE = 1;
766bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::SHORTCUT_PROBABILITY_MASK = 0x0F;
776bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiconst int Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK = 0x80;
786bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi
7907e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi} // namespace v402
806bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi} // namespace backward
816bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi} // namespace latinime
82