You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2009/05/20 17:17:33 UTC
svn commit: r776729 - in /qpid/trunk/qpid/cpp/src/qpid:
broker/ExchangeRegistry.cpp broker/ExchangeRegistry.h xml/XmlExchange.cpp
xml/XmlExchange.h xml/XmlExchangePlugin.cpp
Author: tross
Date: Wed May 20 15:17:21 2009
New Revision: 776729
URL: http://svn.apache.org/viewvc?rev=776729&view=rev
Log:
Fixed a regression affecting plugin-exchanges.
Plugin exchanges (i.e. the XML exchange) do not get the broker pointer and
therefore can not register themselves with the management agent.
Modified:
qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp
qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h
qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp
qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.h
qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchangePlugin.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp?rev=776729&r1=776728&r2=776729&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp Wed May 20 15:17:21 2009
@@ -60,7 +60,7 @@
if (i == factory.end()) {
throw UnknownExchangeTypeException();
} else {
- exchange = i->second(name, durable, args, parent);
+ exchange = i->second(name, durable, args, parent, broker);
}
}
exchanges[name] = exchange;
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h?rev=776729&r1=776728&r2=776729&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h Wed May 20 15:17:21 2009
@@ -42,8 +42,8 @@
class ExchangeRegistry{
public:
- typedef boost::function4<Exchange::shared_ptr, const std::string&,
- bool, const qpid::framing::FieldTable&, qpid::management::Manageable*> FactoryFunction;
+ typedef boost::function5<Exchange::shared_ptr, const std::string&,
+ bool, const qpid::framing::FieldTable&, qpid::management::Manageable*, qpid::broker::Broker*> FactoryFunction;
ExchangeRegistry (Broker* b = 0) : parent(0), broker(b) {}
QPID_BROKER_EXTERN std::pair<Exchange::shared_ptr, bool> declare
Modified: qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp?rev=776729&r1=776728&r2=776729&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp Wed May 20 15:17:21 2009
@@ -51,15 +51,15 @@
namespace broker {
-XmlExchange::XmlExchange(const string& _name, Manageable* _parent) : Exchange(_name, _parent)
+ XmlExchange::XmlExchange(const string& _name, Manageable* _parent, Broker* b) : Exchange(_name, _parent, b)
{
if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
XmlExchange::XmlExchange(const std::string& _name, bool _durable,
- const FieldTable& _args, Manageable* _parent) :
- Exchange(_name, _durable, _args, _parent)
+ const FieldTable& _args, Manageable* _parent, Broker* b) :
+ Exchange(_name, _durable, _args, _parent, b)
{
if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
Modified: qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.h?rev=776729&r1=776728&r2=776729&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchange.h Wed May 20 15:17:21 2009
@@ -37,6 +37,7 @@
namespace qpid {
namespace broker {
+class Broker;
class XmlExchange : public virtual Exchange {
typedef boost::shared_ptr<XQQuery> Query;
@@ -64,9 +65,9 @@
public:
static const std::string typeName;
- XmlExchange(const std::string& name, management::Manageable* parent = 0);
+ XmlExchange(const std::string& name, management::Manageable* parent = 0, Broker* broker = 0);
XmlExchange(const string& _name, bool _durable,
- const qpid::framing::FieldTable& _args, management::Manageable* parent = 0);
+ const qpid::framing::FieldTable& _args, management::Manageable* parent = 0, Broker* broker = 0);
virtual std::string getType() const { return typeName; }
Modified: qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchangePlugin.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchangePlugin.cpp?rev=776729&r1=776728&r2=776729&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchangePlugin.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/xml/XmlExchangePlugin.cpp Wed May 20 15:17:21 2009
@@ -31,13 +31,15 @@
namespace broker { // ACL uses the acl namespace here - should I?
using namespace std;
+class Broker;
Exchange::shared_ptr create(const std::string& name, bool durable,
const framing::FieldTable& args,
- management::Manageable* parent)
+ management::Manageable* parent,
+ Broker* broker)
{
- Exchange::shared_ptr e(new XmlExchange(name, durable, args, parent));
- return e;
+ Exchange::shared_ptr e(new XmlExchange(name, durable, args, parent, broker));
+ return e;
}
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org