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


Loading...
Searching...
No Matches
BufferedIndexInput.h
Go to the documentation of this file.
1
2// 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
12namespace Lucene {
13
15class LPPAPI BufferedIndexInput : public IndexInput {
16public:
18 BufferedIndexInput(int32_t bufferSize = BUFFER_SIZE);
20
22
23public:
25 static const int32_t BUFFER_SIZE;
26
27protected:
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 decltype(buffer.get()) __buffer;
34
35public:
38 virtual uint8_t readByte();
39
43 virtual int32_t readVInt();
44
46 void setBufferSize(int32_t newSize);
47
50 int32_t getBufferSize();
51
58 virtual void readBytes(uint8_t* b, int32_t offset, int32_t length);
59
69 virtual void readBytes(uint8_t* b, int32_t offset, int32_t length, bool useBuffer);
70
72 virtual void close();
73
76 virtual int64_t getFilePointer();
77
81 virtual void seek(int64_t pos);
82
85
86protected:
87 virtual void newBuffer(ByteArray newBuffer);
88
89 void checkBufferSize(int32_t bufferSize);
90
94 virtual void refill();
95
100 virtual void readInternal(uint8_t* b, int32_t offset, int32_t length) = 0;
101
106 virtual void seekInternal(int64_t pos) = 0;
107};
108
109}
110
111#endif
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
Base implementation class for buffered IndexInput.
Definition BufferedIndexInput.h:15
int32_t bufferLength
Definition BufferedIndexInput.h:30
virtual void newBuffer(ByteArray newBuffer)
void setBufferSize(int32_t newSize)
Change the buffer size used by this IndexInput.
virtual void close()
Closes the stream to further operations.
int32_t getBufferSize()
Returns buffer size.
virtual void refill()
Refill buffer in preparation for reading.
void checkBufferSize(int32_t bufferSize)
int32_t bufferSize
Definition BufferedIndexInput.h:28
virtual int32_t readVInt()
Reads an int stored in variable-length format. Reads between one and five bytes. Smaller values take ...
BufferedIndexInput(int32_t bufferSize=BUFFER_SIZE)
Construct BufferedIndexInput with a specific bufferSize.
static const int32_t BUFFER_SIZE
Default buffer size.
Definition BufferedIndexInput.h:25
virtual uint8_t readByte()
Reads and returns a single byte.
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...
virtual int64_t getFilePointer()
Returns the current position in this file, where the next read will occur.
virtual LuceneObjectPtr clone(const LuceneObjectPtr &other=LuceneObjectPtr())
Returns a clone of this stream.
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.
int64_t bufferStart
Definition BufferedIndexInput.h:29
virtual void seek(int64_t pos)
Sets current position in this file, where the next read will occur.
int32_t bufferPosition
Definition BufferedIndexInput.h:31
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.
virtual void seekInternal(int64_t pos)=0
Implements seek. Sets current position in this file, where the next readInternal(uint8_t*,...
ByteArray buffer
Definition BufferedIndexInput.h:32
Abstract base class for input from a file in a Directory. A random-access input stream....
Definition IndexInput.h:17
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition LuceneTypes.h:539

clucene.sourceforge.net