00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _Bridge_
00022 #define _Bridge_
00023
00024 #include "qpid/framing/AMQP_ServerProxy.h"
00025 #include "qpid/framing/ChannelHandler.h"
00026 #include "qpid/management/Manageable.h"
00027 #include "qpid/management/ArgsLinkBridge.h"
00028 #include "qpid/management/Bridge.h"
00029
00030 #include <boost/function.hpp>
00031
00032 namespace qpid {
00033 namespace broker {
00034
00035 class ConnectionState;
00036
00037 class Bridge : public management::Manageable
00038 {
00039 public:
00040 typedef boost::function<void(Bridge*)> CancellationListener;
00041
00042 Bridge(framing::ChannelId id, ConnectionState& c, CancellationListener l,
00043 const management::ArgsLinkBridge& args);
00044 ~Bridge();
00045
00046 void create();
00047 void cancel();
00048
00049 management::ManagementObject::shared_ptr GetManagementObject() const;
00050 management::Manageable::status_t ManagementMethod(uint32_t methodId, management::Args& args);
00051
00052 private:
00053 management::ArgsLinkBridge args;
00054 framing::ChannelHandler channel;
00055 framing::AMQP_ServerProxy peer;
00056 management::Bridge::shared_ptr mgmtObject;
00057 ConnectionState& connection;
00058 CancellationListener listener;
00059 };
00060
00061
00062 }}
00063
00064 #endif