Lucene++ - a full-featured, c++ search engine
API Documentation


BufferedIndexInput.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3 // Distributable under the terms of either the Apache License (Version 2.0)
4 // or the GNU Lesser General Public License.
6 
7 #ifndef BUFFEREDINDEXINPUT_H
8 #define BUFFEREDINDEXINPUT_H
9 
10 #include "IndexInput.h"
11 
12 namespace Lucene {
13 
15 class LPPAPI BufferedIndexInput : public IndexInput {
16 public:
18  BufferedIndexInput(int32_t bufferSize = BUFFER_SIZE);
20 
22 
23 public:
25  static const int32_t BUFFER_SIZE;
26 
27 protected:
28  int32_t bufferSize;
29  int64_t bufferStart; // position in file of buffer
30  int32_t bufferLength; // end of valid bytes
31  int32_t bufferPosition; // next byte to read
32  ByteArray buffer;
33 
34 public:
37  virtual uint8_t readByte();
38 
40  void setBufferSize(int32_t newSize);
41 
44  int32_t getBufferSize();
45 
52  virtual void readBytes(uint8_t* b, int32_t offset, int32_t length);
53 
63  virtual void readBytes(uint8_t* b, int32_t offset, int32_t length, bool useBuffer);
64 
66  virtual void close();
67 
70  virtual int64_t getFilePointer();
71 
75  virtual void seek(int64_t pos);
76 
79 
80 protected:
81  virtual void newBuffer(ByteArray newBuffer);
82 
83  void checkBufferSize(int32_t bufferSize);
84 
88  virtual void refill();
89 
94  virtual void readInternal(uint8_t* b, int32_t offset, int32_t length) = 0;
95 
100  virtual void seekInternal(int64_t pos) = 0;
101 };
102 
103 }
104 
105 #endif
Lucene::BufferedIndexInput::newBuffer
virtual void newBuffer(ByteArray newBuffer)
LUCENE_CLASS
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Lucene::BufferedIndexInput::close
virtual void close()
Closes the stream to further operations.
Lucene::LuceneObjectPtr
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
Lucene::BufferedIndexInput::seek
virtual void seek(int64_t pos)
Sets current position in this file, where the next read will occur.
Lucene::BufferedIndexInput::readInternal
virtual void readInternal(uint8_t *b, int32_t offset, int32_t length)=0
Implements buffer refill. Reads bytes from the current position in the input.
Lucene::BufferedIndexInput::seekInternal
virtual void seekInternal(int64_t pos)=0
Implements seek. Sets current position in this file, where the next {} will occur.
Lucene::BufferedIndexInput::bufferPosition
int32_t bufferPosition
Definition: BufferedIndexInput.h:31
Lucene::BufferedIndexInput::bufferLength
int32_t bufferLength
Definition: BufferedIndexInput.h:30
Lucene::IndexInput
Abstract base class for input from a file in a Directory. A random-access input stream....
Definition: IndexInput.h:17
Lucene::BufferedIndexInput::setBufferSize
void setBufferSize(int32_t newSize)
Change the buffer size used by this IndexInput.
Lucene
Definition: AbstractAllTermDocs.h:12
Lucene::BufferedIndexInput::buffer
ByteArray buffer
Definition: BufferedIndexInput.h:32
Lucene::BufferedIndexInput::bufferSize
int32_t bufferSize
Definition: BufferedIndexInput.h:28
Lucene::BufferedIndexInput
Base implementation class for buffered IndexInput.
Definition: BufferedIndexInput.h:15
Lucene::BufferedIndexInput::~BufferedIndexInput
virtual ~BufferedIndexInput()
Lucene::BufferedIndexInput::readBytes
virtual void readBytes(uint8_t *b, int32_t offset, int32_t length, bool useBuffer)
Reads a specified number of bytes into an array at the specified offset with control over whether the...
IndexInput.h
Lucene::BufferedIndexInput::checkBufferSize
void checkBufferSize(int32_t bufferSize)
Lucene::BufferedIndexInput::getFilePointer
virtual int64_t getFilePointer()
Returns the current position in this file, where the next read will occur.
Lucene::BufferedIndexInput::BUFFER_SIZE
static const int32_t BUFFER_SIZE
Default buffer size.
Definition: BufferedIndexInput.h:21
Lucene::BufferedIndexInput::readByte
virtual uint8_t readByte()
Reads and returns a single byte.
Lucene::BufferedIndexInput::BufferedIndexInput
BufferedIndexInput(int32_t bufferSize=BUFFER_SIZE)
Construct BufferedIndexInput with a specific bufferSize.
Lucene::BufferedIndexInput::bufferStart
int64_t bufferStart
Definition: BufferedIndexInput.h:29
Lucene::BufferedIndexInput::refill
virtual void refill()
Refill buffer in preparation for reading.
Lucene::BufferedIndexInput::readBytes
virtual void readBytes(uint8_t *b, int32_t offset, int32_t length)
Reads a specified number of bytes into an array at the specified offset.
Lucene::BufferedIndexInput::clone
virtual LuceneObjectPtr clone(const LuceneObjectPtr &other=LuceneObjectPtr())
Returns a clone of this stream.
Lucene::BufferedIndexInput::getBufferSize
int32_t getBufferSize()
Returns buffer size.

clucene.sourceforge.net