From efa3feb65f59e10a378b9074ac2d01b540a3278c Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 30 Aug 2007 17:06:44 +0000 Subject: - Update cluster code to work with new FrameHandler - Update ClassifierHandler to use Visitor rather than map. - Replace heap allocation in cluster classes with boost::optional. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@571246 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/framing/FrameDefaultVisitor.h | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'cpp/src/qpid/framing/FrameDefaultVisitor.h') diff --git a/cpp/src/qpid/framing/FrameDefaultVisitor.h b/cpp/src/qpid/framing/FrameDefaultVisitor.h index 841785870e..a826d69b3d 100644 --- a/cpp/src/qpid/framing/FrameDefaultVisitor.h +++ b/cpp/src/qpid/framing/FrameDefaultVisitor.h @@ -45,25 +45,18 @@ class AMQHeartbeatBody; */ struct FrameDefaultVisitor : public AMQBodyConstVisitor, public MethodBodyDefaultVisitor { - void visit(const AMQHeaderBody&) { defaultVisit(); } - void visit(const AMQContentBody&) { defaultVisit(); } - void visit(const AMQHeartbeatBody&) { defaultVisit(); } - void visit(const AMQMethodBody& method) { method.accept(static_cast(*this)); } - + virtual void defaultVisit(const AMQBody&) = 0; + + void visit(const AMQHeaderBody& b) { defaultVisit(b); } + void visit(const AMQContentBody& b) { defaultVisit(b); } + void visit(const AMQHeartbeatBody& b) { defaultVisit(b); } + void visit(const AMQMethodBody& b) { b.accept(static_cast(*this)); } + void defaultVisit(const AMQMethodBody& method) { defaultVisit(static_cast(method)); } + using AMQBodyConstVisitor::visit; using MethodBodyDefaultVisitor::visit; }; -/** - * A FrameHandler that is implemented as a visitor. - */ -struct FrameVisitorHandler : public FrameHandler, - protected FrameDefaultVisitor -{ - void handle(AMQFrame& f) { f.getBody()->accept(*this); } -}; - - }} // namespace qpid::framing -- cgit v1.2.1