From f0858c211bcf8c9666ba2a0bbbf6d28b8a90d885 Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Wed, 20 Mar 2013 05:47:43 +0000 Subject: QPID-4558: C++ broker selectors: trivial - remove unnecessary templates git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1458644 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/broker/SelectorExpression.cpp | 27 +++++++++++-------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/qpid/cpp/src/qpid/broker/SelectorExpression.cpp b/qpid/cpp/src/qpid/broker/SelectorExpression.cpp index 2531f4ed11..e64fd327d5 100644 --- a/qpid/cpp/src/qpid/broker/SelectorExpression.cpp +++ b/qpid/cpp/src/qpid/broker/SelectorExpression.cpp @@ -132,12 +132,11 @@ public: virtual BoolOrNone eval(Expression&, Expression&, const SelectorEnv&) const = 0; }; -template class UnaryBooleanOperator { public: virtual ~UnaryBooleanOperator() {} virtual void repr(ostream&) const = 0; - virtual BoolOrNone eval(T&, const SelectorEnv&) const = 0; + virtual BoolOrNone eval(Expression&, const SelectorEnv&) const = 0; }; class ArithmeticOperator { @@ -170,8 +169,7 @@ ostream& operator<<(ostream& os, const ComparisonOperator& e) return os; } -template -ostream& operator<<(ostream& os, const UnaryBooleanOperator& e) +ostream& operator<<(ostream& os, const UnaryBooleanOperator& e) { e.repr(os); return os; @@ -260,13 +258,12 @@ public: } }; -template class UnaryBooleanExpression : public BoolExpression { - UnaryBooleanOperator* op; - boost::scoped_ptr e1; + UnaryBooleanOperator* op; + boost::scoped_ptr e1; public: - UnaryBooleanExpression(UnaryBooleanOperator* o, T* e) : + UnaryBooleanExpression(UnaryBooleanOperator* o, Expression* e) : op(o), e1(e) {} @@ -594,7 +591,7 @@ class Greq : public ComparisonOperator { }; // "IS NULL" -class IsNull : public UnaryBooleanOperator { +class IsNull : public UnaryBooleanOperator { void repr(ostream& os) const { os << "IsNull"; } @@ -605,7 +602,7 @@ class IsNull : public UnaryBooleanOperator { }; // "IS NOT NULL" -class IsNonNull : public UnaryBooleanOperator { +class IsNonNull : public UnaryBooleanOperator { void repr(ostream& os) const { os << "IsNonNull"; } @@ -616,7 +613,7 @@ class IsNonNull : public UnaryBooleanOperator { }; // "NOT" -class Not : public UnaryBooleanOperator { +class Not : public UnaryBooleanOperator { void repr(ostream& os) const { os << "NOT"; } @@ -824,7 +821,7 @@ Expression* comparisonExpression(Tokeniser& tokeniser) if ( t.type==T_NOT ) { std::auto_ptr e(comparisonExpression(tokeniser)); if (!e.get()) return 0; - return new UnaryBooleanExpression(¬Op, e.release()); + return new UnaryBooleanExpression(¬Op, e.release()); } tokeniser.returnTokens(); @@ -837,10 +834,10 @@ Expression* comparisonExpression(Tokeniser& tokeniser) // The rest must be T_NULL or T_NOT, T_NULL switch (tokeniser.nextToken().type) { case T_NULL: - return new UnaryBooleanExpression(&isNullOp, e1.release()); + return new UnaryBooleanExpression(&isNullOp, e1.release()); case T_NOT: if ( tokeniser.nextToken().type == T_NULL) - return new UnaryBooleanExpression(&isNonNullOp, e1.release()); + return new UnaryBooleanExpression(&isNonNullOp, e1.release()); default: error = "expected NULL or NOT NULL after IS"; return 0; @@ -848,7 +845,7 @@ Expression* comparisonExpression(Tokeniser& tokeniser) case T_NOT: { std::auto_ptr e(specialComparisons(tokeniser, e1)); if (!e.get()) return 0; - return new UnaryBooleanExpression(¬Op, e.release()); + return new UnaryBooleanExpression(¬Op, e.release()); } case T_BETWEEN: case T_LIKE: -- cgit v1.2.1