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


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DocFieldProcessorPerThread.h
Go to the documentation of this file.
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.
6 
7 #ifndef DOCFIELDPROCESSORPERTHREAD_H
8 #define DOCFIELDPROCESSORPERTHREAD_H
9 
10 #include "DocConsumerPerThread.h"
11 #include "DocumentsWriter.h"
12 
13 namespace Lucene {
14 
20 public:
21  DocFieldProcessorPerThread(const DocumentsWriterThreadStatePtr& threadState, const DocFieldProcessorPtr& docFieldProcessor);
23 
25 
26 public:
27  double docBoost;
28  int32_t fieldGen;
32  Collection<DocFieldProcessorPerFieldPtr> _fields; // Holds all fields seen in current doc
33  int32_t fieldCount;
34 
35  Collection<DocFieldProcessorPerFieldPtr> fieldHash; // Hash table for all fields ever seen
36  int32_t hashMask;
37  int32_t totalFieldCount;
38 
41 
43  int32_t freeCount;
44  int32_t allocCount;
45 
46 public:
47  virtual void initialize();
48  virtual void abort();
50 
51  // If there are fields we've seen but did not see again in the last run, then free them up.
52  void trimFields(const SegmentWriteStatePtr& state);
53 
54  virtual DocWriterPtr processDocument();
55 
58 
59 protected:
60  void rehash();
61 };
62 
64 public:
67 
69 
70 public:
73 
74 protected:
76 
77 public:
78  virtual int64_t sizeInBytes();
79  virtual void finish();
80  virtual void abort();
81 };
82 
83 }
84 
85 #endif

clucene.sourceforge.net