00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _QueueBindings_
00022 #define _QueueBindings_
00023
00024 #include "qpid/framing/FieldTable.h"
00025 #include <boost/ptr_container/ptr_list.hpp>
00026 #include <boost/shared_ptr.hpp>
00027
00028 namespace qpid {
00029 namespace broker {
00030
00031 class ExchangeRegistry;
00032 class Queue;
00033 class QueueBindings
00034 {
00035 struct Binding{
00036 const std::string exchange;
00037 const std::string key;
00038 const qpid::framing::FieldTable args;
00039 Binding(const std::string& exchange, const std::string& key, const qpid::framing::FieldTable& args);
00040 };
00041
00042 typedef boost::ptr_list<Binding> Bindings;
00043 Bindings bindings;
00044
00045 public:
00046 void add(const std::string& exchange, const std::string& key, const qpid::framing::FieldTable& args);
00047 void unbind(ExchangeRegistry& exchanges, boost::shared_ptr<Queue> queue);
00048 };
00049
00050
00051 }
00052 }
00053
00054
00055 #endif