11 #ifndef __RD_XORQUERY_H__ 12 #define __RD_XORQUERY_H__ 19 template <
class MatchFuncArgType,
class DataFuncArgType = MatchFuncArgType,
20 bool needsConversion =
false>
22 :
public Query<MatchFuncArgType, DataFuncArgType, needsConversion> {
27 bool Match(
const DataFuncArgType what)
const {
31 bool tmp = (*it1)->Match(what);
void setNegation(bool what)
sets whether or not we are negated
boost::shared_ptr< Query< MatchFuncArgType, DataFuncArgType, needsConversion > > CHILD_TYPE
bool getNegation() const
returns whether or not we are negated
CHILD_VECT_CI endChildren() const
returns an iterator for the end of our child vector
Query< MatchFuncArgType, DataFuncArgType, needsConversion > * copy() const
returns a copy of this Query
void addChild(CHILD_TYPE child)
adds a child to our list of children
CHILD_VECT_CI beginChildren() const
returns an iterator for the beginning of our child vector
CHILD_VECT::const_iterator CHILD_VECT_CI
Query< MatchFuncArgType, DataFuncArgType, needsConversion > BASE
std::string d_description
Base class for all queries.
bool Match(const DataFuncArgType what) const
returns whether or not we match the argument
a Query implementing XOR: requires exactly one child to be true