7#ifndef INDEXFILEDELETER_H
8#define INDEXFILEDELETER_H
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
Utility template class to handle collections that can be safely copied and shared.
Definition Collection.h:17
Holds details for each commit point. This class is also passed to the deletion policy....
Definition IndexFileDeleter.h:149
Collection< CommitPointPtr > commitsToDelete
Definition IndexFileDeleter.h:162
bool _isOptimized
Definition IndexFileDeleter.h:165
bool deleted
Definition IndexFileDeleter.h:160
HashSet< String > files
Definition IndexFileDeleter.h:158
int64_t generation
Definition IndexFileDeleter.h:164
virtual bool isOptimized()
Returns true if this commit is an optimized index.
DirectoryPtr directory
Definition IndexFileDeleter.h:161
int64_t version
Definition IndexFileDeleter.h:163
CommitPoint(Collection< CommitPointPtr > commitsToDelete, const DirectoryPtr &directory, const SegmentInfosPtr &segmentInfos)
virtual int64_t getVersion()
Returns the version for this IndexCommit.
String segmentsFileName
Definition IndexFileDeleter.h:159
virtual String toString()
Returns a string representation of the object.
MapStringString userData
Definition IndexFileDeleter.h:166
virtual void deleteCommit()
Called only be the deletion policy, to remove this commit point from the index.
virtual MapStringString getUserData()
Returns userData, previously passed to IndexWriter#commit(Map) for this commit.
virtual DirectoryPtr getDirectory()
Returns the Directory for the index.
virtual HashSet< String > getFileNames()
Returns all index files referenced by this commit point.
int64_t gen
Definition IndexFileDeleter.h:157
virtual String getSegmentsFileName()
Get the segments file (segments_N) associated with this commit point.
virtual int64_t getGeneration()
Returns the generation (the _N in segments_N) for this IndexCommit.
virtual int32_t compareTo(const LuceneObjectPtr &other)
Compare two objects.
Utility template class to handle hash set collections that can be safely copied and shared.
Definition HashSet.h:17
Represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader.
Definition IndexCommit.h:22
This class keeps track of each SegmentInfos instance that is still "live", either because it correspo...
Definition IndexFileDeleter.h:34
void refresh(const String &segmentName)
Writer calls this when it has hit an error and had to roll back, to tell us that there may now be unr...
RefCountPtr getRefCount(const String &fileName)
void incRef(const String &fileName)
void deletePendingFiles()
virtual ~IndexFileDeleter()
IndexFileDeleter(const DirectoryPtr &directory, const IndexDeletionPolicyPtr &policy, const SegmentInfosPtr &segmentInfos, const InfoStreamPtr &infoStream, const DocumentsWriterPtr &docWriter, HashSet< String > synced)
Initialize the deleter: find all previous commits in the Directory, incref the files they reference,...
bool exists(const String &fileName)
Collection< HashSet< String > > lastFiles
Holds files we had incref'd from the previous non-commit checkpoint.
Definition IndexFileDeleter.h:57
DirectoryPtr directory
Definition IndexFileDeleter.h:63
void message(const String &message)
SegmentInfosPtr getLastSegmentInfos()
HashSet< String > synced
Definition IndexFileDeleter.h:68
void incRef(HashSet< String > files)
void setInfoStream(const InfoStreamPtr &infoStream)
IndexDeletionPolicyPtr policy
Definition IndexFileDeleter.h:64
Collection< IndexCommitPtr > commits
Holds all commits (segments_N) currently in the index. This will have just 1 commit if you are using ...
Definition IndexFileDeleter.h:54
void deleteFile(const String &fileName)
Collection< CommitPointPtr > commitsToDelete
Commits that the IndexDeletionPolicy have decided to delete.
Definition IndexFileDeleter.h:60
HashSet< String > deletable
Files that we tried to delete but failed (likely because they are open and we are running on Windows)...
Definition IndexFileDeleter.h:46
void decRef(const String &fileName)
void deleteNewFiles(HashSet< String > files)
Deletes the specified files, but only if they are new (have not yet been incref'd).
void decRef(HashSet< String > files)
void deleteFiles(HashSet< String > files)
InfoStreamPtr infoStream
Definition IndexFileDeleter.h:62
void deleteCommits()
Remove the CommitPoints in the commitsToDelete List by DecRef'ing all files from each SegmentInfos.
static bool VERBOSE_REF_COUNTS
Change to true to see details of reference counts when infoStream != null.
Definition IndexFileDeleter.h:71
void incRef(const SegmentInfosPtr &segmentInfos, bool isCommit)
void decRef(const SegmentInfosPtr &segmentInfos)
void checkpoint(const SegmentInfosPtr &segmentInfos, bool isCommit)
For definition of "check point" see IndexWriter comments: "Clarification: Check Points (and commits)"...
SegmentInfosPtr lastSegmentInfos
Definition IndexFileDeleter.h:67
bool startingCommitDeleted
Definition IndexFileDeleter.h:74
DocumentsWriterPtr docWriter
Definition IndexFileDeleter.h:65
MapStringRefCount refCounts
Reference count for all files in the index. Counts how many existing commits reference a file.
Definition IndexFileDeleter.h:49
Base class for all Lucene classes.
Definition LuceneObject.h:31
Tracks the reference count for a single index file.
Definition IndexFileDeleter.h:130
int32_t count
Definition IndexFileDeleter.h:140
bool initDone
Definition IndexFileDeleter.h:139
String fileName
Definition IndexFileDeleter.h:138
RefCount(const String &fileName)
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< InfoStream > InfoStreamPtr
Definition LuceneTypes.h:532
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition LuceneTypes.h:539
boost::shared_ptr< DocumentsWriter > DocumentsWriterPtr
Definition LuceneTypes.h:123
boost::shared_ptr< RefCount > RefCountPtr
Definition LuceneTypes.h:206
boost::shared_ptr< Directory > DirectoryPtr
Definition LuceneTypes.h:489
boost::shared_ptr< IndexDeletionPolicy > IndexDeletionPolicyPtr
Definition LuceneTypes.h:153
boost::shared_ptr< SegmentInfos > SegmentInfosPtr
Definition LuceneTypes.h:210