[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