diff options
author | Alan Conway <aconway@apache.org> | 2007-01-18 07:54:09 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-01-18 07:54:09 +0000 |
commit | cdf7469e2688f9f52487b7968664ced2db560980 (patch) | |
tree | 3cce5e41fd7792e1b8305ca0a813664cc89ee98b /cpp/lib/broker/MessageHandlerImpl.h | |
parent | 9e8a7c77a94a92c6cf92cf60be508817f0778040 (diff) | |
download | qpid-python-cdf7469e2688f9f52487b7968664ced2db560980.tar.gz |
From: Andrew Stitcher <astitcher@redhat.com>
r723@fuschia: andrew | 2007-01-12 00:35:16 +0000
Branch for my work on Qpid.0-9
r724@fuschia: andrew | 2007-01-12 00:59:28 +0000
Added in empty implementation of handler class for protocol Message class
r768@fuschia: andrew | 2007-01-17 01:25:16 +0000
* Added Test for new MessageHandlerImpl (but no actual tests yet)
* Filled in lots of the blanks in the MessageHandlerImpl with code
stolen from the BasicHandlerImpl
r800@fuschia: andrew | 2007-01-17 17:34:13 +0000
Updated to latest upstream changes
Alan Conway <aconway@redhat.com>
* Took the changes from Andrew's patch and separated the
MessageHandlerImpl into its own .cpp/.h file. Other handlers
should be separated also.
* BrokerAdapter inner classes ignore channel arg and use
channel member instead.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@497336 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/lib/broker/MessageHandlerImpl.h')
-rw-r--r-- | cpp/lib/broker/MessageHandlerImpl.h | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/cpp/lib/broker/MessageHandlerImpl.h b/cpp/lib/broker/MessageHandlerImpl.h new file mode 100644 index 0000000000..77e30abe05 --- /dev/null +++ b/cpp/lib/broker/MessageHandlerImpl.h @@ -0,0 +1,124 @@ +#ifndef _broker_MessageHandlerImpl_h +#define _broker_MessageHandlerImpl_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 "AMQP_ServerOperations.h" + +namespace qpid { +namespace broker { + +class Channel; +class Connection; +class Broker; + +class MessageHandlerImpl : public qpid::framing::AMQP_ServerOperations::MessageHandler { + Channel& channel; + Connection& connection; + Broker& broker; + + public: + MessageHandlerImpl(Channel& ch, Connection& c, Broker& b) + : channel(ch), connection(c), broker(b) {} + + void append( u_int16_t channel, + const std::string& reference, + const std::string& bytes ); + + void cancel( u_int16_t channel, + const std::string& destination ); + + void checkpoint( u_int16_t channel, + const std::string& reference, + const std::string& identifier ); + + void close( u_int16_t channel, + const std::string& reference ); + + void consume( u_int16_t channel, + u_int16_t ticket, + const std::string& queue, + const std::string& destination, + bool noLocal, + bool noAck, + bool exclusive, + const qpid::framing::FieldTable& filter ); + + void empty( u_int16_t channel ); + + void get( u_int16_t channel, + u_int16_t ticket, + const std::string& queue, + const std::string& destination, + bool noAck ); + + void offset( u_int16_t channel, + u_int64_t value ); + + void ok( u_int16_t channel ); + + void open( u_int16_t channel, + const std::string& reference ); + + void qos( u_int16_t channel, + u_int32_t prefetchSize, + u_int16_t prefetchCount, + bool global ); + + void recover( u_int16_t channel, + bool requeue ); + + void reject( u_int16_t channel, + u_int16_t code, + const std::string& text ); + + void resume( u_int16_t channel, + const std::string& reference, + const std::string& identifier ); + + void transfer( u_int16_t channel, + u_int16_t ticket, + const std::string& destination, + bool redelivered, + bool immediate, + u_int64_t ttl, + u_int8_t priority, + u_int64_t timestamp, + u_int8_t deliveryMode, + u_int64_t expiration, + const std::string& exchange, + const std::string& routingKey, + const std::string& messageId, + const std::string& correlationId, + const std::string& replyTo, + const std::string& contentType, + const std::string& contentEncoding, + const std::string& userId, + const std::string& appId, + const std::string& transactionId, + const std::string& securityToken, + const qpid::framing::FieldTable& applicationHeaders, + qpid::framing::Content body ); +}; + +}} // namespace qpid::broker + + + +#endif /*!_broker_MessageHandlerImpl_h*/ |