[Debtags-commits] [svn] r1713 - in tagcoll/2.0: . tagcoll
Enrico Zini
enrico at costa.debian.org
Tue May 9 00:09:35 UTC 2006
Author: enrico
Date: Tue May 9 00:09:34 2006
New Revision: 1713
Modified:
tagcoll/2.0/ (props changed)
tagcoll/2.0/tagcoll/Expression.cc
tagcoll/2.0/tagcoll/Expression.h
Log:
r2600 at viaza: enrico | 2006-05-07 11:46:09 -0500
Allow to pass matcher type in constructor
Modified: tagcoll/2.0/tagcoll/Expression.cc
==============================================================================
--- tagcoll/2.0/tagcoll/Expression.cc (original)
+++ tagcoll/2.0/tagcoll/Expression.cc Tue May 9 00:09:34 2006
@@ -294,7 +294,7 @@
);
InputMerger<string, string> result;
parseCollection(input_coll, filterTagsByExpression(
- "*::D || e::F || c", consumer(result)));
+ "*::D || e::F || c", ExpressionFilter::PLAIN, consumer(result)));
InputMerger<string, string> reference;
outputCollection(output_coll, reference);
Modified: tagcoll/2.0/tagcoll/Expression.h
==============================================================================
--- tagcoll/2.0/tagcoll/Expression.h (original)
+++ tagcoll/2.0/tagcoll/Expression.h Tue May 9 00:09:34 2006
@@ -195,41 +195,15 @@
}
public:
- ExpressionFilter(const std::string& expr)
- : expr(expr), matchType(PLAIN) {}
- ExpressionFilter(const Expression& expr)
- : expr(expr), matchType(PLAIN) {}
-
- /**
- * Set the expression to use for this filter
- *
- * @param expression
- * The expression to use for matching
- */
- void setExpression(const Expression& expression)
- {
- expr = expression;
- }
-
/**
- * Set the expression to use for this filter
- *
- * @param expression
- * The expression to use for matching
- */
- void setExpression(const std::string& expression)
- {
- expr = Expression(expression);
- }
-
- /**
- * Set the type of match
- *
* @param type
* PLAIN: only keep the items that match the expression
* INVERTED: only keep the items that do not match the expression
*/
- void setMatchType(MatchType type) { matchType = type; }
+ ExpressionFilter(const std::string& expr, MatchType type)
+ : expr(expr), matchType(type) {}
+ ExpressionFilter(const Expression& expr, MatchType type)
+ : expr(expr), matchType(type) {}
};
/**
@@ -242,10 +216,10 @@
OUT out;
public:
- FilterItemsByExpression(const std::string& expr, const OUT& out)
- : ExpressionFilter(expr), out(out) {}
- FilterItemsByExpression(const Expression& expr, const OUT& out)
- : ExpressionFilter(expr), out(out) {}
+ FilterItemsByExpression(const std::string& expr, ExpressionFilter::MatchType type, const OUT& out)
+ : ExpressionFilter(expr, type), out(out) {}
+ FilterItemsByExpression(const Expression& expr, ExpressionFilter::MatchType type, const OUT& out)
+ : ExpressionFilter(expr, type), out(out) {}
// output iterator interface
@@ -262,9 +236,15 @@
};
template<typename EXPR, typename OUT>
+inline FilterItemsByExpression<OUT> filterItemsByExpression(const EXPR& expr, ExpressionFilter::MatchType type, const OUT& out)
+{
+ return FilterItemsByExpression<OUT>(expr, type, out);
+}
+
+template<typename EXPR, typename OUT>
inline FilterItemsByExpression<OUT> filterItemsByExpression(const EXPR& expr, const OUT& out)
{
- return FilterItemsByExpression<OUT>(expr, out);
+ return FilterItemsByExpression<OUT>(expr, ExpressionFilter::PLAIN, out);
}
/**
@@ -282,10 +262,10 @@
OUT out;
public:
- FilterTagsByExpression(const std::string& expression, const OUT& out) :
- ExpressionFilter(expression), out(out) {}
- FilterTagsByExpression(const Expression& expression, const OUT& out) :
- ExpressionFilter(expression), out(out) {}
+ FilterTagsByExpression(const std::string& expression, ExpressionFilter::MatchType type, const OUT& out) :
+ ExpressionFilter(expression, type), out(out) {}
+ FilterTagsByExpression(const Expression& expression, ExpressionFilter::MatchType type, const OUT& out) :
+ ExpressionFilter(expression, type), out(out) {}
// output iterator interface
@@ -316,9 +296,15 @@
};
template<typename EXPR, typename OUT>
+inline FilterTagsByExpression<OUT> filterTagsByExpression(const EXPR& expr, ExpressionFilter::MatchType type, const OUT& out)
+{
+ return FilterTagsByExpression<OUT>(expr, type, out);
+}
+
+template<typename EXPR, typename OUT>
inline FilterTagsByExpression<OUT> filterTagsByExpression(const EXPR& expr, const OUT& out)
{
- return FilterTagsByExpression<OUT>(expr, out);
+ return FilterTagsByExpression<OUT>(expr, ExpressionFilter::PLAIN, out);
}
};
More information about the Debtags-commits
mailing list