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


Loading...
Searching...
No Matches
HitQueueBase.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 HITQUEUEBASE_H
8#define HITQUEUEBASE_H
9
10#include "PriorityQueue.h"
11
12namespace Lucene {
13
14class LPPAPI HitQueueBase : public LuceneObject {
15public:
16 HitQueueBase(int32_t size);
17 virtual ~HitQueueBase();
18
20
21public:
22 virtual ScoreDocPtr add(const ScoreDocPtr& scoreDoc);
23 virtual ScoreDocPtr addOverflow(const ScoreDocPtr& scoreDoc);
24 virtual ScoreDocPtr top();
25 virtual ScoreDocPtr pop();
27 virtual int32_t size();
28 virtual bool empty();
29 virtual void clear();
30
31protected:
33 int32_t queueSize;
34
35public:
36 virtual void initialize();
37
38protected:
39 virtual bool lessThan(const ScoreDocPtr& first, const ScoreDocPtr& second) = 0;
41
43};
44
45class LPPAPI PriorityQueueScoreDocs : public PriorityQueue<ScoreDocPtr> {
46public:
47 PriorityQueueScoreDocs(const HitQueueBasePtr& hitQueue, int32_t size);
49
51
52protected:
54
55protected:
56 virtual bool lessThan(const ScoreDocPtr& first, const ScoreDocPtr& second);
58};
59
60}
61
62#endif
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
Definition HitQueueBase.h:14
virtual bool empty()
HitQueueBase(int32_t size)
virtual bool lessThan(const ScoreDocPtr &first, const ScoreDocPtr &second)=0
virtual void clear()
virtual ScoreDocPtr getSentinelObject()
virtual int32_t size()
virtual ScoreDocPtr add(const ScoreDocPtr &scoreDoc)
PriorityQueueScoreDocsPtr queue
Definition HitQueueBase.h:32
virtual ScoreDocPtr updateTop()
virtual ScoreDocPtr top()
virtual ScoreDocPtr addOverflow(const ScoreDocPtr &scoreDoc)
virtual ScoreDocPtr pop()
int32_t queueSize
Definition HitQueueBase.h:33
virtual void initialize()
Called directly after instantiation to create objects that depend on this object being fully construc...
Base class for all Lucene classes.
Definition LuceneObject.h:31
Definition HitQueueBase.h:45
HitQueueBaseWeakPtr _hitQueue
Definition HitQueueBase.h:53
PriorityQueueScoreDocs(const HitQueueBasePtr &hitQueue, int32_t size)
virtual ScoreDocPtr getSentinelObject()
This method can be overridden by extending classes to return a sentinel object which will be used by ...
virtual bool lessThan(const ScoreDocPtr &first, const ScoreDocPtr &second)
Determines the ordering of objects in this priority queue. Subclasses must define this one method.
A PriorityQueue maintains a partial ordering of its elements such that the least element can always b...
Definition PriorityQueue.h:20
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< PriorityQueueScoreDocs > PriorityQueueScoreDocsPtr
Definition LuceneTypes.h:419
boost::shared_ptr< HitQueueBase > HitQueueBasePtr
Definition LuceneTypes.h:371
boost::shared_ptr< ScoreDoc > ScoreDocPtr
Definition LuceneTypes.h:428
boost::weak_ptr< HitQueueBase > HitQueueBaseWeakPtr
Definition LuceneTypes.h:371

clucene.sourceforge.net