| #ifndef _client_ClientAdapter_h |
| #define _client_ClientAdapter_h |
| |
| /* |
| * |
| * 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 "ChannelAdapter.h" |
| #include "ClientChannel.h" |
| |
| namespace qpid { |
| namespace client { |
| |
| class AMQMethodBody; |
| class Connection; |
| |
| /** |
| * Per-channel protocol adapter. |
| * |
| * Translates protocol bodies into calls on the core Channel, |
| * Connection and Client objects. |
| * |
| * Owns a channel, has references to Connection and Client. |
| */ |
| class ClientAdapter : public framing::ChannelAdapter |
| { |
| public: |
| ClientAdapter(std::auto_ptr<Channel> ch, Connection&, Client&); |
| Channel& getChannel() { return *channel; } |
| |
| void handleHeader(boost::shared_ptr<qpid::framing::AMQHeaderBody>); |
| void handleContent(boost::shared_ptr<qpid::framing::AMQContentBody>); |
| void handleHeartbeat(boost::shared_ptr<qpid::framing::AMQHeartbeatBody>); |
| |
| private: |
| void handleMethodInContext( |
| boost::shared_ptr<qpid::framing::AMQMethodBody> method, |
| const framing::MethodContext& context); |
| |
| class ClientOps; |
| |
| std::auto_ptr<Channel> channel; |
| Connection& connection; |
| Client& client; |
| boost::shared_ptr<ClientOps> clientOps; |
| }; |
| |
| }} // namespace qpid::client |
| |
| |
| |
| #endif /*!_client_ClientAdapter_h*/ |