summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2012-06-15 19:25:59 +0000
committerTed Ross <tross@apache.org>2012-06-15 19:25:59 +0000
commitf53e1b924b4240659b80d6a85a68bc324e28f7c8 (patch)
tree2b0c93a24fcf4951c49d1f0745f6d89b767691bb /cpp/src
parenta46d963ae8e166c84e3980811831f0ca411111cf (diff)
downloadqpid-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.cpp9
-rw-r--r--cpp/src/qpid/broker/Bridge.h4
-rw-r--r--cpp/src/qpid/broker/LinkRegistry.cpp6
-rw-r--r--cpp/src/qpid/broker/LinkRegistry.h4
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