Branch data Line data Source code
1 : : /** @file expanddecider.cc
2 : : * @brief Allow rejection of terms during ESet generation.
3 : : */
4 : : /* Copyright (C) 2007 Olly Betts
5 : : *
6 : : * This program is free software; you can redistribute it and/or
7 : : * modify it under the terms of the GNU General Public License as
8 : : * published by the Free Software Foundation; either version 2 of the
9 : : * License, or (at your option) any later version.
10 : : *
11 : : * This program is distributed in the hope that it will be useful,
12 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : : * GNU General Public License for more details.
15 : : *
16 : : * You should have received a copy of the GNU General Public License
17 : : * along with this program; if not, write to the Free Software
18 : : * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 : : */
20 : :
21 : : #include <config.h>
22 : :
23 : : #include <xapian/expanddecider.h>
24 : :
25 : : using namespace std;
26 : :
27 : : namespace Xapian {
28 : :
29 [ # # ][ # # ]: 143 : ExpandDecider::~ExpandDecider() { }
[ - + ]
30 : :
31 : : bool
32 : 884 : ExpandDeciderAnd::operator()(const string &term) const
33 : : {
34 [ + + ][ + + ]: 884 : return first(term) && second(term);
35 : : }
36 : :
37 : : bool
38 : 7176 : ExpandDeciderFilterTerms::operator()(const string &term) const
39 : : {
40 : : /* Some older compilers (such as Sun's CC) return an iterator from find()
41 : : * and a const_iterator from end() in this situation, and then can't
42 : : * compare the two! We workaround this problem by explicitly assigning the
43 : : * result of find() to a const_iterator. */
44 : 7176 : set<string>::const_iterator i = rejects.find(term);
45 : 7176 : return i == rejects.end();
46 : : }
47 : :
48 : : }
|