diff options
author | Ted Ross <tross@apache.org> | 2012-06-15 19:25:59 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2012-06-15 19:25:59 +0000 |
commit | 0e5cd012a1f8dc4269cc192aa081837bc85ba647 (patch) | |
tree | 60c62b8404f3d9f88cc17675704320a51157fca1 | |
parent | bec6807fcab137d95f942c71a9305f96570ca7b3 (diff) | |
download | qpid-python-0e5cd012a1f8dc4269cc192aa081837bc85ba647.tar.gz |
QPID-4070 - Minor internal-api changes for LinkRegistry and Bridge (in qpid::broker)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1350746 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/src/qpid/broker/Bridge.cpp | 9 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/broker/Bridge.h | 4 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/broker/LinkRegistry.cpp | 6 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/broker/LinkRegistry.h | 4 |
4 files changed, 15 insertions, 8 deletions
diff --git a/qpid/cpp/src/qpid/broker/Bridge.cpp b/qpid/cpp/src/qpid/broker/Bridge.cpp index 803f9e462e..60d8263a76 100644 --- a/qpid/cpp/src/qpid/broker/Bridge.cpp +++ b/qpid/cpp/src/qpid/broker/Bridge.cpp @@ -59,12 +59,13 @@ void Bridge::PushHandler::handle(framing::AMQFrame& frame) Bridge::Bridge(const std::string& _name, Link* _link, framing::ChannelId _id, CancellationListener l, const _qmf::ArgsLinkBridge& _args, - InitializeCallback init) : + InitializeCallback init, const string& qn, const string& ae) : link(_link), channel(_id), args(_args), mgmtObject(0), - listener(l), name(_name), queueName("qpid.bridge_queue_"), persistenceId(0), + listener(l), name(_name), queueName(qn), altEx(ae), persistenceId(0), connState(0), conn(0), initialize(init), detached(false) { - queueName += Uuid(true).str(); + if (queueName.empty()) + queueName = "qpid.bridge_queue_" + Uuid(true).str(); ManagementAgent* agent = link->getBroker()->getManagementAgent(); if (agent != 0) { mgmtObject = new _qmf::Bridge @@ -137,7 +138,7 @@ void Bridge::create(Connection& c) bool durable = false;//should this be an arg, or would we use srcIsQueue for durable queues? bool autoDelete = !durable;//auto delete transient queues? - peer->getQueue().declare(queueName, "", false, durable, true, autoDelete, queueSettings); + peer->getQueue().declare(queueName, altEx, false, durable, true, autoDelete, queueSettings); if (!args.i_dynamic) peer->getExchange().bind(queueName, args.i_src, args.i_key, FieldTable()); peer->getMessage().subscribe(queueName, args.i_dest, 1, 0, false, "", 0, FieldTable()); diff --git a/qpid/cpp/src/qpid/broker/Bridge.h b/qpid/cpp/src/qpid/broker/Bridge.h index b980abc900..8d6ed03faf 100644 --- a/qpid/cpp/src/qpid/broker/Bridge.h +++ b/qpid/cpp/src/qpid/broker/Bridge.h @@ -58,7 +58,8 @@ class Bridge : public PersistableConfig, Bridge(const std::string& name, Link* link, framing::ChannelId id, CancellationListener l, const qmf::org::apache::qpid::broker::ArgsLinkBridge& args, - InitializeCallback init + InitializeCallback init, const std::string& queueName="", + const std::string& altExchange="" ); ~Bridge(); @@ -131,6 +132,7 @@ class Bridge : public PersistableConfig, CancellationListener listener; std::string name; std::string queueName; + std::string altEx; mutable uint64_t persistenceId; ConnectionState* connState; Connection* conn; diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp index 060eea412b..75c311c917 100644 --- a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +++ b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp @@ -164,7 +164,9 @@ pair<Bridge::shared_ptr, bool> LinkRegistry::declare(const std::string& name, const std::string& excludes, bool dynamic, uint16_t sync, - Bridge::InitializeCallback init + Bridge::InitializeCallback init, + const std::string& queueName, + const std::string& altExchange ) { Mutex::ScopedLock locker(lock); @@ -207,7 +209,7 @@ pair<Bridge::shared_ptr, bool> LinkRegistry::declare(const std::string& name, bridge = Bridge::shared_ptr (new Bridge (name, &link, link.nextChannel(), boost::bind(&LinkRegistry::destroyBridge, this, _1), - args, init)); + args, init, queueName, altExchange)); bridges[name] = bridge; link.add(bridge); if (durable && store) diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.h b/qpid/cpp/src/qpid/broker/LinkRegistry.h index c81ee751c8..5a39b62bd1 100644 --- a/qpid/cpp/src/qpid/broker/LinkRegistry.h +++ b/qpid/cpp/src/qpid/broker/LinkRegistry.h @@ -108,7 +108,9 @@ namespace broker { const std::string& excludes, bool dynamic, uint16_t sync, - Bridge::InitializeCallback=0 + Bridge::InitializeCallback=0, + const std::string& queueName="", + const std::string& altExchange="" ); /** determine if Bridge exists */ QPID_BROKER_EXTERN Bridge::shared_ptr |