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


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

clucene.sourceforge.net