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.
5 /////////////////////////////////////////////////////////////////////////////
6 
7 #ifndef SEGMENTWRITESTATE_H
8 #define SEGMENTWRITESTATE_H
9 
10 #include "LuceneObject.h"
11 
12 namespace Lucene {
13 
14 class SegmentWriteState : public LuceneObject {
15 public:
16     SegmentWriteState(const DocumentsWriterPtr& docWriter, const DirectoryPtr& directory, const String& segmentName,
17                       const String& docStoreSegmentName, int32_t numDocs, int32_t numDocsInStore,
18                       int32_t termIndexInterval);
19     virtual ~SegmentWriteState();
20 
21     LUCENE_CLASS(SegmentWriteState);
22 
23 public:
24     DocumentsWriterWeakPtr _docWriter;
25     DirectoryPtr directory;
26     String segmentName;
27     String docStoreSegmentName;
28     int32_t numDocs;
29     int32_t termIndexInterval;
30     int32_t numDocsInStore;
31     HashSet<String> flushedFiles;
32 
33 public:
34     String segmentFileName(const String& ext);
35 };
36 
37 }
38 
39 #endif
40