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 | f53e1b924b4240659b80d6a85a68bc324e28f7c8 (patch) | |
tree | 2b0c93a24fcf4951c49d1f0745f6d89b767691bb /cpp/src | |
parent | a46d963ae8e166c84e3980811831f0ca411111cf (diff) | |
download | qpid-python-f53e1b924b4240659b80d6a85a68bc324e28f7c8.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/qpid@1350746 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/broker/Bridge.cpp | 9 | ||||
-rw-r--r-- | cpp/src/qpid/broker/Bridge.h | 4 | ||||
-rw-r--r-- | cpp/src/qpid/broker/LinkRegistry.cpp | 6 | ||||
-rw-r--r-- | cpp/src/qpid/broker/LinkRegistry.h | 4 |
4 files changed, 15 insertions, 8 deletions
diff --git a/cpp/src/qpid/broker/Bridge.cpp b/cpp/src/qpid/broker/Bridge.cpp index 803f9e462e..60d8263a76 100644 --- a/cpp/src/qpid/broker/Bridge.cpp +++ b/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/cpp/src/qpid/broker/Bridge.h b/cpp/src/qpid/broker/Bridge.h index b980abc900..8d6ed03faf 100644 --- a/cpp/src/qpid/broker/Bridge.h +++ b/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/cpp/src/qpid/broker/LinkRegistry.cpp b/cpp/src/qpid/broker/LinkRegistry.cpp index 060eea412b..75c311c917 100644 --- a/cpp/src/qpid/broker/LinkRegistry.cpp +++ b/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/cpp/src/qpid/broker/LinkRegistry.h b/cpp/src/qpid/broker/LinkRegistry.h index c81ee751c8..5a39b62bd1 100644 --- a/cpp/src/qpid/broker/LinkRegistry.h +++ b/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 |