/home/aconway/svn/qpid/cpp/src/qpid/broker/MessageHandlerImpl.h

00001 #ifndef _broker_MessageHandlerImpl_h
00002 #define _broker_MessageHandlerImpl_h
00003 
00004 /*
00005  *
00006  * Copyright (c) 2006 The Apache Software Foundation
00007  *
00008  * Licensed under the Apache License, Version 2.0 (the "License");
00009  * you may not use this file except in compliance with the License.
00010  * You may obtain a copy of the License at
00011  *
00012  *    http://www.apache.org/licenses/LICENSE-2.0
00013  *
00014  * Unless required by applicable law or agreed to in writing, software
00015  * distributed under the License is distributed on an "AS IS" BASIS,
00016  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00017  * See the License for the specific language governing permissions and
00018  * limitations under the License.
00019  *
00020  */
00021 
00022 #include <memory>
00023 
00024 #include "qpid/framing/AMQP_ServerOperations.h"
00025 #include "qpid/framing/AMQP_ClientProxy.h"
00026 #include "Reference.h"
00027 #include "HandlerImpl.h"
00028 
00029 namespace qpid {
00030 namespace broker {
00031 
00032 class Connection;
00033 class Broker;
00034 class MessageMessage;
00035 
00036 class MessageHandlerImpl :
00037         public framing::AMQP_ServerOperations::MessageHandler,
00038         public HandlerImpl<framing::AMQP_ClientProxy::Message>
00039 {
00040   public:
00041     MessageHandlerImpl(CoreRefs& parent);
00042 
00043     void append(const framing::MethodContext&,
00044                  const std::string& reference,
00045                  const std::string& bytes );
00046 
00047     void cancel(const framing::MethodContext&,
00048                  const std::string& destination );
00049 
00050     void checkpoint(const framing::MethodContext&,
00051                      const std::string& reference,
00052                      const std::string& identifier );
00053 
00054     void close(const framing::MethodContext&,
00055                 const std::string& reference );
00056 
00057     void consume(const framing::MethodContext&,
00058                   uint16_t ticket,
00059                   const std::string& queue,
00060                   const std::string& destination,
00061                   bool noLocal,
00062                   bool noAck,
00063                   bool exclusive,
00064                   const framing::FieldTable& filter );
00065 
00066     void empty( const framing::MethodContext& );
00067 
00068     void get(const framing::MethodContext&,
00069               uint16_t ticket,
00070               const std::string& queue,
00071               const std::string& destination,
00072               bool noAck );
00073 
00074     void offset(const framing::MethodContext&,
00075                  uint64_t value );
00076 
00077     void ok( const framing::MethodContext& );
00078 
00079     void open(const framing::MethodContext&,
00080                const std::string& reference );
00081 
00082     void qos(const framing::MethodContext&,
00083               uint32_t prefetchSize,
00084               uint16_t prefetchCount,
00085               bool global );
00086 
00087     void recover(const framing::MethodContext&,
00088                   bool requeue );
00089 
00090     void reject(const framing::MethodContext&,
00091                  uint16_t code,
00092                  const std::string& text );
00093 
00094     void resume(const framing::MethodContext&,
00095                  const std::string& reference,
00096                  const std::string& identifier );
00097 
00098     void transfer(const framing::MethodContext&,
00099                    uint16_t ticket,
00100                    const std::string& destination,
00101                    bool redelivered,
00102                    bool immediate,
00103                    uint64_t ttl,
00104                    uint8_t priority,
00105                    uint64_t timestamp,
00106                    uint8_t deliveryMode,
00107                    uint64_t expiration,
00108                    const std::string& exchange,
00109                    const std::string& routingKey,
00110                    const std::string& messageId,
00111                    const std::string& correlationId,
00112                    const std::string& replyTo,
00113                    const std::string& contentType,
00114                    const std::string& contentEncoding,
00115                    const std::string& userId,
00116                    const std::string& appId,
00117                    const std::string& transactionId,
00118                    const std::string& securityToken,
00119                    const framing::FieldTable& applicationHeaders,
00120                    const framing::Content& body,
00121                    bool mandatory );
00122   private:
00123     ReferenceRegistry references;
00124 };
00125 
00126 }} // namespace qpid::broker
00127 
00128 
00129 
00130 #endif  

Generated on Tue Apr 17 14:22:03 2007 for Qpid by  doxygen 1.4.7