00001 #ifndef _broker_MessageHandlerImpl_h
00002 #define _broker_MessageHandlerImpl_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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 }}
00127
00128
00129
00130 #endif