This file is indexed.

/usr/include/CLucene/index/SegmentInfos.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
/*------------------------------------------------------------------------------
* 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_SegmentInfos_
#define _lucene_index_SegmentInfos_

#if defined(_LUCENE_PRAGMA_ONCE)
# pragma once
#endif

#include "CLucene/util/VoidList.h"
#include "CLucene/store/Directory.h"

CL_NS_DEF(index)

	class SegmentInfo :LUCENE_BASE{
	private:
		//Directory where the segment resides
		CL_NS(store)::Directory* dir;		
	public:
		///Gets the Directory where the segment resides
		CL_NS(store)::Directory* getDir() const{ return dir; } 

    	//Unique name in directory dir
		char name[CL_MAX_NAME];	
		//Number of docs in the segment
		const int32_t docCount;						  

		SegmentInfo(const char* Name, const int32_t DocCount, CL_NS(store)::Directory* Dir);

		~SegmentInfo();
	};

	typedef CL_NS(util)::CLVector<SegmentInfo*,CL_NS(util)::Deletor::Object<SegmentInfo> > segmentInfosType;
  //SegmentInfos manages a list of SegmentInfo instances
  //Each SegmentInfo contains information about a segment in a directory.
  //
  //The active segments in the index are stored in the segment info file. 
  //An index only has a single file in this format, and it is named "segments". 
  //This lists each segment by name, and also contains the size of each segment.
  //The format of the file segments is defined as follows:
  //
  //                                        SegCount
  //Segments --> SegCount, <SegName, SegSize>
  //
  //SegCount, SegSize --> UInt32
  //
  //SegName --> String
  //
  //SegName is the name of the segment, and is used as the file name prefix 
  //for all of the files that compose the segment's index.
  //
  //SegSize is the number of documents contained in the segment index. 
  //
  //Note:
  //At http://jakarta.apache.org/lucene/docs/fileformats.html the definition
  //of all file formats can be found. Note that java lucene currently 
  //defines Segments as follows:
  //
  //Segments --> Format, Version, SegCount, <SegName, SegSize>SegCount
  //        
  //Format, SegCount, SegSize --> UInt32        
  //      
  //Format and Version have not been implemented yet
	class SegmentInfos: LUCENE_BASE {
		/** The file format version, a negative number. */
		/* Works since counter, the old 1st entry, is always >= 0 */
		LUCENE_STATIC_CONSTANT(int32_t,FORMAT=-1);

		/**
		* counts how often the index has been changed by adding or deleting docs.
		* starting with the current time in milliseconds forces to create unique version numbers.
		*/
		int64_t version;

		segmentInfosType infos;
		
        int32_t counter;  // used to name new segments
		friend class IndexWriter; //allow IndexWriter to use counter
    public:
        SegmentInfos(bool deleteMembers=true);
        ~SegmentInfos();

		
		//delete and clears objects 'from' from to 'to'
		void clearto(size_t to);
		
		//count of segment infos
		int32_t size() const;
		//add a segment info
		void add(SegmentInfo* info);
		//Returns a reference to the i-th SegmentInfo in the list.
		SegmentInfo* info(int32_t i);
		
		/**
		* version number when this SegmentInfos was generated.
		*/
		int64_t getVersion() { return version; }
		
		static int64_t readCurrentVersion(CL_NS(store)::Directory* directory);

		  //Reads segments file that resides in directory
		  void read(CL_NS(store)::Directory* directory);

	  //Writes a new segments file based upon the SegmentInfo instances it manages
      void write(CL_NS(store)::Directory* directory);
  };
CL_NS_END
#endif