00001 #ifndef _broker_HandlerImpl_h
00002 #define _broker_HandlerImpl_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "BrokerChannel.h"
00023 #include "qpid/framing/AMQP_ClientProxy.h"
00024
00025 namespace qpid {
00026
00027 namespace framing {
00028 class AMQP_ClientProxy;
00029 }
00030
00031 namespace broker {
00032
00033 class Broker;
00034 class Channel;
00035 class Connection;
00036
00041 struct CoreRefs
00042 {
00043 CoreRefs(Channel& ch, Connection& c, Broker& b)
00044 : channel(ch), connection(c), broker(b), proxy(ch) {}
00045
00046 Channel& channel;
00047 Connection& connection;
00048 Broker& broker;
00049 framing::AMQP_ClientProxy proxy;
00050 };
00051
00052
00057 template <class ProxyType>
00058 struct HandlerImpl : public CoreRefs {
00059 typedef HandlerImpl<ProxyType> HandlerImplType;
00060 HandlerImpl(CoreRefs& parent)
00061 : CoreRefs(parent), client(ProxyType::get(proxy)) {}
00062 ProxyType client;
00063 };
00064
00065
00066
00067 }}
00068
00069
00070
00071 #endif