diff options
author | Alan Conway <aconway@apache.org> | 2007-03-21 02:08:18 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-03-21 02:08:18 +0000 |
commit | d2eb3361494710466280341c98f76c03536d2ebe (patch) | |
tree | f16ec2eacd8383e388657e54a22fc0214a0ce023 /qpid/cpp-0-9/lib/common/framing/ChannelAdapter.cpp | |
parent | 732544fe86089ab86c03fcc48d5ca4c72667c275 (diff) | |
download | qpid-python-d2eb3361494710466280341c98f76c03536d2ebe.tar.gz |
Renamed cpp-0-9 to cpp
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@520706 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp-0-9/lib/common/framing/ChannelAdapter.cpp')
-rw-r--r-- | qpid/cpp-0-9/lib/common/framing/ChannelAdapter.cpp | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/qpid/cpp-0-9/lib/common/framing/ChannelAdapter.cpp b/qpid/cpp-0-9/lib/common/framing/ChannelAdapter.cpp deleted file mode 100644 index 8a1ff39ee5..0000000000 --- a/qpid/cpp-0-9/lib/common/framing/ChannelAdapter.cpp +++ /dev/null @@ -1,99 +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. - * - */ -#include <boost/format.hpp> - -#include "ChannelAdapter.h" -#include "AMQFrame.h" -#include "Exception.h" - -using boost::format; - -namespace qpid { -namespace framing { - -void ChannelAdapter::init( - ChannelId i, OutputHandler& o, ProtocolVersion v) -{ - assertChannelNotOpen(); - id = i; - out = &o; - version = v; -} - -RequestId ChannelAdapter::send(AMQBody::shared_ptr body) { - RequestId result = 0; - assertChannelOpen(); - switch (body->type()) { - case REQUEST_BODY: { - AMQRequestBody::shared_ptr request = - boost::shared_polymorphic_downcast<AMQRequestBody>(body); - requester.sending(request->getData()); - result = request->getData().requestId; - break; - } - case RESPONSE_BODY: { - AMQResponseBody::shared_ptr response = - boost::shared_polymorphic_downcast<AMQResponseBody>(body); - responder.sending(response->getData()); - break; - } - } - out->send(new AMQFrame(getVersion(), getId(), body)); - return result; -} - -void ChannelAdapter::handleRequest(AMQRequestBody::shared_ptr request) { - assertMethodOk(*request); - AMQRequestBody::Data& requestData = request->getData(); - responder.received(requestData); - handleMethodInContext(request, MethodContext(this, request)); -} - -void ChannelAdapter::handleResponse(AMQResponseBody::shared_ptr response) { - assertMethodOk(*response); - // TODO aconway 2007-01-30: Consider a response handled on receipt. - // Review - any cases where this is not the case? - AMQResponseBody::Data& responseData = response->getData(); - requester.processed(responseData); - handleMethod(response); -} - -void ChannelAdapter::handleMethod(AMQMethodBody::shared_ptr method) { - assertMethodOk(*method); - handleMethodInContext(method, MethodContext(this, method)); -} - -void ChannelAdapter::assertMethodOk(AMQMethodBody& method) const { - if (getId() != 0 && method.amqpClassId() == ConnectionOpenBody::CLASS_ID) - throw ConnectionException( - 504, format("Connection method on non-0 channel %d.")%getId()); -} - -void ChannelAdapter::assertChannelOpen() const { - if (getId() != 0 && !isOpen()) - throw ConnectionException( - 504, format("Channel %d is not open.")%getId()); -} - -void ChannelAdapter::assertChannelNotOpen() const { - if (getId() != 0 && isOpen()) - throw ConnectionException( - 504, format("Channel %d is already open.") % getId()); -} - -}} // namespace qpid::framing |