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


TimeLimitingCollector.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 TIMELIMITINGCOLLECTOR_H
8#define TIMELIMITINGCOLLECTOR_H
9
10#include "Collector.h"
11
12namespace Lucene {
13
17class LPPAPI TimeLimitingCollector : public Collector {
18public:
22 TimeLimitingCollector(const CollectorPtr& collector, int64_t timeAllowed);
23
25
27
28public:
31 static const int32_t DEFAULT_RESOLUTION;
32
36
37protected:
38 static int64_t resolution;
39 bool greedy;
40
41 int64_t t0;
42 int64_t timeout;
44
45 int32_t docBase;
46
47public:
50 static int64_t getResolution();
51
63 static void setResolution(int64_t newResolution);
64
66 static void stopTimer();
67
73 bool isGreedy();
74
78 void setGreedy(bool greedy);
79
82 virtual void collect(int32_t doc);
83
84 virtual void setNextReader(const IndexReaderPtr& reader, int32_t docBase);
85 virtual void setScorer(const ScorerPtr& scorer);
86 virtual bool acceptsDocsOutOfOrder();
87
88protected:
91
92 friend class TimerThread;
93};
94
95}
96
97#endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Collectors are primarily meant to be used to gather raw results from a search, and implement sorting ...
Definition: Collector.h:100
The TimeLimitingCollector is used to timeout search requests that take longer than the maximum allowe...
Definition: TimeLimitingCollector.h:17
void setGreedy(bool greedy)
Sets whether this time limited collector is greedy.
static void stopTimer()
Stop timer thread.
virtual bool acceptsDocsOutOfOrder()
Return true if this collector does not require the matching docIDs to be delivered in int sort order ...
static TimerThreadPtr TIMER_THREAD()
Initialize a single static timer thread to be used by all TimeLimitedCollector instances.
bool greedy
Definition: TimeLimitingCollector.h:39
static void setResolution(int64_t newResolution)
Set the timer resolution. The default timer resolution is 20 milliseconds. This means that a search r...
static int64_t getResolution()
Return the timer resolution.
static int64_t resolution
Definition: TimeLimitingCollector.h:38
virtual void collect(int32_t doc)
Calls Collector#collect(int) on the decorated Collector unless the allowed time has passed,...
int32_t docBase
Definition: TimeLimitingCollector.h:45
static const int32_t DEFAULT_RESOLUTION
Default timer resolution.
Definition: TimeLimitingCollector.h:31
int64_t timeout
Definition: TimeLimitingCollector.h:42
CollectorPtr collector
Definition: TimeLimitingCollector.h:43
virtual void setScorer(const ScorerPtr &scorer)
Called before successive calls to collect(int32_t). Implementations that need the score of the curren...
virtual void setNextReader(const IndexReaderPtr &reader, int32_t docBase)
Called before collecting from each IndexReader. All doc ids in collect(int32_t) will correspond to re...
TimeLimitingCollector(const CollectorPtr &collector, int64_t timeAllowed)
Create a TimeLimitedCollector wrapper over another Collector with a specified timeout.
bool DEFAULT_GREEDY
Default for isGreedy().
Definition: TimeLimitingCollector.h:35
int64_t t0
Definition: TimeLimitingCollector.h:41
bool isGreedy()
Checks if this time limited collector is greedy in collecting the last hit. A non greedy collector,...
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< TimerThread > TimerThreadPtr
Definition: LuceneTypes.h:470
boost::shared_ptr< Collector > CollectorPtr
Definition: LuceneTypes.h:295
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
boost::shared_ptr< Scorer > ScorerPtr
Definition: LuceneTypes.h:429

clucene.sourceforge.net