diff options
author | Alan Conway <aconway@apache.org> | 2007-06-27 21:19:14 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-06-27 21:19:14 +0000 |
commit | 7ded010ea1e46465b97bdd199ad36dcd7d646e8e (patch) | |
tree | 598533606e40c5ebd6404529be7047ace29d407e /qpid/cpp/src/tests/Handler.cpp | |
parent | 66621d4049202a04b686231e0098da9951d5fd1a (diff) | |
download | qpid-python-7ded010ea1e46465b97bdd199ad36dcd7d646e8e.tar.gz |
* src/qpid/framing/ChannelAdapter.cpp: Use handler chains
for in and outbound frames.
* src/qpid/framing/InputHandler.h, OutputHandler.h, FrameHandler.h:
All handlers pass AMQFrame& and have consistent memory management.
Terminal OutputHandlers used to take ownership and delete frame, now
they make a shallow copy instead.
* src/qpid/framing/Handler.h, FrameHandler.h: Simplified.
* src/qpid/client/ClientConnection.cpp:
* src/qpid/broker/Connection.cpp:
* src/qpid/broker/BrokerChannel.cpp:
Update for ChannelAdapter changes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@551336 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/Handler.cpp')
-rw-r--r-- | qpid/cpp/src/tests/Handler.cpp | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/qpid/cpp/src/tests/Handler.cpp b/qpid/cpp/src/tests/Handler.cpp deleted file mode 100644 index 6725394be8..0000000000 --- a/qpid/cpp/src/tests/Handler.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * - * Copyright (c) 2006 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#define BOOST_AUTO_TEST_MAIN // Must come before #include<boost/test/*> -#include <boost/test/auto_unit_test.hpp> - -#include "qpid/framing/AMQFrame.h" -#include "qpid/framing/FrameHandler.h" -#include "test_tools.h" -#include <boost/assign.hpp> - -using namespace std; -using namespace qpid; -using namespace qpid::framing; -using namespace boost::assign; - -typedef int DummyFrame; -typedef int DummyContext; -vector<int> handledBy; - -/** Both a link and a terminal handler. */ -template <int N> -struct TestHandler : public Handler<DummyFrame> { - TestHandler(DummyContext c) : context(c) {} - - void handle(DummyFrame frame) { - handledBy.push_back(N+context); - nextHandler(frame); - } - - typedef HandlerFactoryImpl<TestHandler<N>, DummyContext> Factory; - DummyContext context; -}; - - - -BOOST_AUTO_TEST_CASE(handlerChains) { - TestHandler<1>::Factory a; - TestHandler<2>::Factory b; - TestHandler<3>::Factory c; - HandlerFactoryChain<DummyFrame, DummyContext> factory; - factory.push_back(&a); - factory.push_back(&b); - factory.push_back(&c); - factory.create(10)->handle(1); - - vector<int> expect; - expect = list_of(11)(12)(13); - BOOST_CHECK_EQUAL(expect, handledBy); -} - - |