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


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ConcurrentMergeScheduler.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 CONCURRENTMERGESCHEDULER_H
8 #define CONCURRENTMERGESCHEDULER_H
9 
10 #include "MergeScheduler.h"
11 
12 namespace Lucene {
13 
20 public:
22  virtual ~ConcurrentMergeScheduler();
23 
25 
26 protected:
27  int32_t mergeThreadPriority;
28 
29  SetMergeThread mergeThreads;
30 
32  int32_t maxThreadCount;
33 
35 
36  bool closed;
38 
40 
42  static bool anyExceptions;
43 
44 public:
45  virtual void initialize();
46 
50  virtual void setMaxThreadCount(int32_t count);
51 
53  virtual int32_t getMaxThreadCount();
54 
57  virtual int32_t getMergeThreadPriority();
58 
60  virtual void setMergeThreadPriority(int32_t pri);
61 
62  virtual void close();
63 
64  virtual void sync();
65 
66  virtual void merge(const IndexWriterPtr& writer);
67 
69  static bool anyUnhandledExceptions();
70  static void clearUnhandledExceptions();
71 
73  void setSuppressExceptions();
74  void clearSuppressExceptions();
75 
77  static void setTestMode();
78 
79 protected:
80  virtual bool verbose();
81  virtual void message(const String& message);
82  virtual void initMergeThreadPriority();
83  virtual int32_t mergeThreadCount();
84 
86  virtual void doMerge(const OneMergePtr& merge);
87 
88  virtual MergeThreadPtr getMergeThread(const IndexWriterPtr& writer, const OneMergePtr& merge);
89 
91  virtual void handleMergeException(const LuceneException& exc);
92 
93  virtual void addMyself();
94 
95  friend class MergeThread;
96 };
97 
98 }
99 
100 #endif

clucene.sourceforge.net