11d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi/* 21d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * Copyright (C) 2014, The Android Open Source Project 31d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * 41d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * Licensed under the Apache License, Version 2.0 (the "License"); 51d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * you may not use this file except in compliance with the License. 61d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * You may obtain a copy of the License at 71d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * 81d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * http://www.apache.org/licenses/LICENSE-2.0 91d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * 101d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * Unless required by applicable law or agreed to in writing, software 111d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * distributed under the License is distributed on an "AS IS" BASIS, 121d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * See the License for the specific language governing permissions and 141d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi * limitations under the License. 151d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi */ 161d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi 171d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi#ifndef LATINIME_VER4_PT_NODE_ARRAY_READER_H 181d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi#define LATINIME_VER4_PT_NODE_ARRAY_READER_H 191d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi 201d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi#include "defines.h" 2188bc312ad34321fb3e81be2dc939a889d065f4a7Keisuke Kuroyanagi#include "dictionary/structure/pt_common/pt_node_array_reader.h" 221d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi 231d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanaginamespace latinime { 241d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi 251d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagiclass BufferWithExtendableBuffer; 261d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi 271d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagiclass Ver4PtNodeArrayReader : public PtNodeArrayReader { 281d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi public: 291d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi Ver4PtNodeArrayReader(const BufferWithExtendableBuffer *const buffer) : mBuffer(buffer) {}; 301d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi 311d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi virtual bool readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos, 321d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi int *const outPtNodeCount, int *const outFirstPtNodePos) const; 331d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi virtual bool readForwardLinkAndReturnIfValid(const int forwordLinkPos, 341d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi int *const outNextPtNodeArrayPos) const; 351d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi 361d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi private: 371d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi DISALLOW_COPY_AND_ASSIGN(Ver4PtNodeArrayReader); 381d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi 391d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi const BufferWithExtendableBuffer *const mBuffer; 401d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi}; 411d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi} // namespace latinime 421d6afa179cd31010efe28f1c3e17698d6be79cabKeisuke Kuroyanagi#endif /* LATINIME_VER4_PT_NODE_ARRAY_READER_H */ 43