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 2188bc312ad34321fb3e81be2dc939a889d065f4a7Keisuke Kuroyanagi * dictionary/structure/v4/ver4_patricia_trie_node_reader.h 226bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi */ 236bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 2407e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H 2507e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H 266bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 276bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi#include "defines.h" 2888bc312ad34321fb3e81be2dc939a889d065f4a7Keisuke Kuroyanagi#include "dictionary/structure/pt_common/pt_node_params.h" 2988bc312ad34321fb3e81be2dc939a889d065f4a7Keisuke Kuroyanagi#include "dictionary/structure/pt_common/pt_node_reader.h" 306bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 316bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanaginamespace latinime { 326bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanaginamespace backward { 3307e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanaginamespace v402 { 346bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 3507e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi} // namespace v402 366bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi} // namespace backward 376bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiclass BufferWithExtendableBuffer; 386bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanaginamespace backward { 3907e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanaginamespace v402 { 4007e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi} // namespace v402 416bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi} // namespace backward 426bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiclass HeaderPolicy; 436bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanaginamespace backward { 4407e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanaginamespace v402 { 456bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiclass ProbabilityDictContent; 466bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 476bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi/* 486bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * This class is used for helping to read nodes of ver4 patricia trie. This class handles moved 496bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * node and reads node attributes including probability form probabilityBuffer. 506bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi */ 516bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiclass Ver4PatriciaTrieNodeReader : public PtNodeReader { 526bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi public: 536bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi Ver4PatriciaTrieNodeReader(const BufferWithExtendableBuffer *const buffer, 546bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const ProbabilityDictContent *const probabilityDictContent, 556bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const HeaderPolicy *const headerPolicy) 566bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi : mBuffer(buffer), mProbabilityDictContent(probabilityDictContent), 576bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi mHeaderPolicy(headerPolicy) {} 586bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 596bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi ~Ver4PatriciaTrieNodeReader() {} 606bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 610fbca1ac2388db81a443c1705732130564c3f714Keisuke Kuroyanagi virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(const int ptNodePos) const { 626bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(ptNodePos, 636bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi NOT_A_DICT_POS /* siblingNodePos */); 646bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi } 656bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 666bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi private: 676bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeReader); 686bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 696bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const BufferWithExtendableBuffer *const mBuffer; 706bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const ProbabilityDictContent *const mProbabilityDictContent; 716bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const HeaderPolicy *const mHeaderPolicy; 726bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 736bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const PtNodeParams fetchPtNodeInfoFromBufferAndProcessMovedPtNode(const int ptNodePos, 746bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const int siblingNodePos) const; 756bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi}; 7607e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi} // namespace v402 776bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi} // namespace backward 786bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi} // namespace latinime 7907e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H */ 80