/usr/include/CLucene/index/SegmentTermEnum.h is in libclucene-dev 0.9.21b-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | /*------------------------------------------------------------------------------
* Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
*
* Distributable under the terms of either the Apache License (Version 2.0) or
* the GNU Lesser General Public License, as specified in the COPYING file.
------------------------------------------------------------------------------*/
#ifndef _lucene_index_SegmentTermEnum_
#define _lucene_index_SegmentTermEnum_
#if defined(_LUCENE_PRAGMA_ONCE)
# pragma once
#endif
#include "Terms.h"
#include "FieldInfos.h"
#include "TermInfo.h"
CL_NS_DEF(index)
/**
* SegmentTermEnum is an enumeration of all Terms and TermInfos
*/
class SegmentTermEnum:public TermEnum{
private:
Term* _term; ///points to the current Term in the enumeration
TermInfo* termInfo; ///points to the TermInfo matching the current Term in the enumeration
bool isIndex; ///Indicates if the Segment is a an index
bool isClone; ///Indicates if SegmentTermEnum is an orignal instance or
///a clone of another SegmentTermEnum
TCHAR* buffer; ///The buffer that contains the data read from the Term Infos File
uint32_t bufferLength; ///Length of the buffer
int32_t format;
int32_t formatM1SkipInterval;
CL_NS(store)::IndexInput* input; ///The IndexInput that reads from the Term Infos File
FieldInfos* fieldInfos; ///contains the Field Infos for the segment
int64_t size; ///The size of the enumeration
int64_t position; ///The position of the current (term) in the enumeration
int64_t indexPointer;
Term* prev; ///The previous current
int32_t indexInterval;
int32_t skipInterval;
friend class TermInfosReader;
friend class SegmentTermDocs;
protected:
/**
* Constructor.
* The instance is created by cloning all properties of clone
*/
SegmentTermEnum( const SegmentTermEnum& clone);
public:
///Constructor
SegmentTermEnum(CL_NS(store)::IndexInput* i, FieldInfos* fis, const bool isi );
///Destructor
~SegmentTermEnum();
/**
* Moves the current of the set to the next in the set
*/
bool next();
/**
* Returns a pointer to the current term.
*/
Term* term();
/**
* Returns the current term.
*/
Term* term(bool pointer);
/**
* Scan for Term term without allocating new Terms
*/
void scanTo(const Term *term);
/**
* Closes the enumeration to further activity, freeing resources.
*/
void close();
/**
* Returns the document frequency of the current term in the set
*/
int32_t docFreq() const;
/**
* Repositions term and termInfo within the enumeration
*/
void seek(const int64_t pointer, const int32_t p, Term* t, TermInfo* ti);
/**
* Returns a clone of the current termInfo
*/
TermInfo* getTermInfo()const;
/**
* Retrieves a clone of termInfo through the reference ti
*/
void getTermInfo(TermInfo* ti)const;
/**
* Returns the freqPointer from the current TermInfo in the enumeration.
*/
int64_t freqPointer() const;
/**
* Returns the proxPointer from the current TermInfo in the enumeration.
*/
int64_t proxPointer() const;
/**
* Returns a clone of this instance
*/
SegmentTermEnum* clone() const;
const char* getObjectName(){ return SegmentTermEnum::getClassName(); }
static const char* getClassName(){ return "SegmentTermEnum"; }
private:
/**
* Reads the next term in the enumeration
*/
Term* readTerm(Term* reuse);
/**
* Instantiate a buffer of length length+1
*/
void growBuffer(const uint32_t length, bool force_copy);
};
CL_NS_END
#endif
|