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


Loading...
Searching...
No Matches
ByteBlockPool.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 BYTEBLOCKPOOL_H
8#define BYTEBLOCKPOOL_H
9
10#include "LuceneObject.h"
11
12namespace Lucene {
13
23class LPPAPI ByteBlockPool : public LuceneObject {
24public:
25 ByteBlockPool(const ByteBlockPoolAllocatorBasePtr& allocator, bool trackAllocations);
26 virtual ~ByteBlockPool();
27
29
30public:
32 int32_t bufferUpto; // Which buffer we are up to
33 int32_t byteUpto; // Where we are in head buffer
34
35 ByteArray buffer;
36 int32_t byteOffset;
37
38 static const int32_t nextLevelArray[];
39 static const int32_t levelSizeArray[];
40
41protected:
44
45public:
46 static int32_t FIRST_LEVEL_SIZE();
47
48 void reset();
49 void nextBuffer();
50 int32_t newSlice(int32_t size);
51 int32_t allocSlice(ByteArray slice, int32_t upto);
52};
53
55public:
57
59
60public:
61 virtual void recycleByteBlocks(Collection<ByteArray> blocks, int32_t start, int32_t end) = 0;
62 virtual void recycleByteBlocks(Collection<ByteArray> blocks) = 0;
63 virtual ByteArray getByteBlock(bool trackAllocations) = 0;
64};
65
66}
67
68#endif
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
Definition ByteBlockPool.h:54
virtual void recycleByteBlocks(Collection< ByteArray > blocks)=0
virtual ByteArray getByteBlock(bool trackAllocations)=0
virtual void recycleByteBlocks(Collection< ByteArray > blocks, int32_t start, int32_t end)=0
Class that Posting and PostingVector use to write byte streams into shared fixed-size byte[] arrays....
Definition ByteBlockPool.h:23
int32_t newSlice(int32_t size)
bool trackAllocations
Definition ByteBlockPool.h:42
Collection< ByteArray > buffers
Definition ByteBlockPool.h:31
int32_t byteOffset
Definition ByteBlockPool.h:36
int32_t byteUpto
Definition ByteBlockPool.h:33
int32_t bufferUpto
Definition ByteBlockPool.h:32
ByteBlockPool(const ByteBlockPoolAllocatorBasePtr &allocator, bool trackAllocations)
ByteBlockPoolAllocatorBasePtr allocator
Definition ByteBlockPool.h:43
static int32_t FIRST_LEVEL_SIZE()
int32_t allocSlice(ByteArray slice, int32_t upto)
ByteArray buffer
Definition ByteBlockPool.h:35
Utility template class to handle collections that can be safely copied and shared.
Definition Collection.h:17
Base class for all Lucene classes.
Definition LuceneObject.h:31
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< ByteBlockPoolAllocatorBase > ByteBlockPoolAllocatorBasePtr
Definition LuceneTypes.h:90

clucene.sourceforge.net