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


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ByteBlockPool.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 BYTEBLOCKPOOL_H
8 #define BYTEBLOCKPOOL_H
9 
10 #include "LuceneObject.h"
11 
12 namespace Lucene {
13 
23 class ByteBlockPool : public LuceneObject {
24 public:
26  virtual ~ByteBlockPool();
27 
29 
30 public:
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 
41 protected:
44 
45 public:
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 
55 public:
57 
59 
60 public:
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
Definition: ByteBlockPool.h:54
int32_t newSlice(int32_t size)
int32_t byteOffset
Definition: ByteBlockPool.h:36
boost::shared_ptr< ByteBlockPoolAllocatorBase > ByteBlockPoolAllocatorBasePtr
Definition: LuceneTypes.h:90
virtual void recycleByteBlocks(Collection< ByteArray > blocks, int32_t start, int32_t end)=0
int32_t bufferUpto
Definition: ByteBlockPool.h:32
static int32_t FIRST_LEVEL_SIZE()
Base class for all Lucene classes.
Definition: LuceneObject.h:31
virtual ByteArray getByteBlock(bool trackAllocations)=0
bool trackAllocations
Definition: ByteBlockPool.h:42
int32_t byteUpto
Definition: ByteBlockPool.h:33
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Definition: AbstractAllTermDocs.h:12
static const int32_t levelSizeArray[]
Definition: ByteBlockPool.h:39
Collection< ByteArray > buffers
Definition: ByteBlockPool.h:28
ByteBlockPool(const ByteBlockPoolAllocatorBasePtr &allocator, bool trackAllocations)
ByteBlockPoolAllocatorBasePtr allocator
Definition: ByteBlockPool.h:43
ByteArray buffer
Definition: ByteBlockPool.h:35
Class that Posting and PostingVector use to write byte streams into shared fixed-size byte[] arrays...
Definition: ByteBlockPool.h:23
static const int32_t nextLevelArray[]
Definition: ByteBlockPool.h:38
int32_t allocSlice(ByteArray slice, int32_t upto)

clucene.sourceforge.net