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


TeeSinkTokenFilter.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 TEESINKTOKENFILTER_H
8 #define TEESINKTOKENFILTER_H
9 
10 #include "TokenFilter.h"
11 #include "TokenStream.h"
12 
13 namespace Lucene {
14 
62 class LPPAPI TeeSinkTokenFilter : public TokenFilter {
63 public:
65  TeeSinkTokenFilter(const TokenStreamPtr& input);
66  virtual ~TeeSinkTokenFilter();
67 
69 
70 protected:
72 
73 public:
75  SinkTokenStreamPtr newSinkTokenStream();
76 
80  SinkTokenStreamPtr newSinkTokenStream(const SinkFilterPtr& filter);
81 
84  void addSinkTokenStream(const SinkTokenStreamPtr& sink);
85 
89  void consumeAllTokens();
90 
91  virtual bool incrementToken();
92  virtual void end();
93 };
94 
95 class LPPAPI SinkFilter : public LuceneObject {
96 public:
97  virtual ~SinkFilter();
98 
100 
101 public:
103  virtual bool accept(const AttributeSourcePtr& source) = 0;
104 
106  virtual void reset();
107 };
108 
109 class LPPAPI AcceptAllSinkFilter : public SinkFilter {
110 public:
111  virtual ~AcceptAllSinkFilter();
112 
114 
115 public:
116  virtual bool accept(const AttributeSourcePtr& source);
117 };
118 
120 class LPPAPI SinkTokenStream : public TokenStream {
121 public:
122  SinkTokenStream(const AttributeSourcePtr& source, const SinkFilterPtr& filter);
123  virtual ~SinkTokenStream();
124 
126 
127 protected:
133 
134 protected:
135  bool accept(const AttributeSourcePtr& source);
136  void addState(const AttributeSourceStatePtr& state);
137  void setFinalState(const AttributeSourceStatePtr& finalState);
138 
139 public:
140  virtual bool incrementToken();
141  virtual void end();
142  virtual void reset();
143 
144  friend class TeeSinkTokenFilter;
145 };
146 
147 }
148 
149 #endif
Lucene::TeeSinkTokenFilter::sinks
Collection< SinkTokenStreamPtr > sinks
Definition: TeeSinkTokenFilter.h:68
Lucene::SinkTokenStreamPtr
boost::shared_ptr< SinkTokenStream > SinkTokenStreamPtr
Definition: LuceneTypes.h:48
Lucene::SinkTokenStream::finalState
AttributeSourceStatePtr finalState
Definition: TeeSinkTokenFilter.h:129
LUCENE_CLASS
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Lucene::Collection< SinkTokenStreamPtr >
Lucene::SinkTokenStream::initIterator
bool initIterator
Definition: TeeSinkTokenFilter.h:130
Lucene::TokenStream
A TokenStream enumerates the sequence of tokens, either from Fields of a Document or from query text.
Definition: TokenStream.h:44
Lucene::AttributeSourceStatePtr
boost::shared_ptr< AttributeSourceState > AttributeSourceStatePtr
Definition: LuceneTypes.h:521
Lucene::SinkFilter
Definition: TeeSinkTokenFilter.h:95
TokenFilter.h
TokenStream.h
Lucene::TokenFilter
A TokenFilter is a TokenStream whose input is another TokenStream.
Definition: TokenFilter.h:18
Lucene::TeeSinkTokenFilter
This TokenFilter provides the ability to set aside attribute states that have already been analyzed....
Definition: TeeSinkTokenFilter.h:62
Lucene
Definition: AbstractAllTermDocs.h:12
Lucene::LuceneObject
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Lucene::SinkTokenStream
A filter that decides which AttributeSource states to store in the sink.
Definition: TeeSinkTokenFilter.h:120
Lucene::AttributeSourcePtr
boost::shared_ptr< AttributeSource > AttributeSourcePtr
Definition: LuceneTypes.h:520
Lucene::SinkTokenStream::filter
SinkFilterPtr filter
Definition: TeeSinkTokenFilter.h:132
Lucene::AcceptAllSinkFilter
Definition: TeeSinkTokenFilter.h:109
Lucene::TokenStreamPtr
boost::shared_ptr< TokenStream > TokenStreamPtr
Definition: LuceneTypes.h:63
Lucene::SinkFilterPtr
boost::shared_ptr< SinkFilter > SinkFilterPtr
Definition: LuceneTypes.h:47
Lucene::SinkTokenStream::it
Collection< AttributeSourceStatePtr >::iterator it
Definition: TeeSinkTokenFilter.h:131

clucene.sourceforge.net