Author: aconway
Date: Tue Sep 25 00:19:52 2012
New Revision: 1389663

URL: http://svn.apache.org/viewvc?rev=1389663&view=rev
Log:
NO-JIRA: Mark built-in exchanges as non-replicated.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=1389663&r1=1389662&r2=1389663&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Tue Sep 25 00:19:52 2012
@@ -184,6 +184,15 @@ const std::string amq_match("amq.match")
 const std::string qpid_management("qpid.management");
 const std::string knownHostsNone("none");
 
+namespace {
+// Arguments to declare a non-replicated exchange.
+framing::FieldTable noReplicateArgs() {
+    framing::FieldTable args;
+    args.setString("qpid.replicate", "none");
+    return args;
+}
+}
+
 Broker::Broker(const Broker::Options& conf) :
     poller(new Poller),
     config(conf),
@@ -273,7 +282,10 @@ Broker::Broker(const Broker::Options& co
     if (NullMessageStore::isNullStore(store.get()))
         setStore();
 
-    exchanges.declare(empty, DirectExchange::typeName); // Default exchange.
+    framing::FieldTable args;
+
+    // Default exchnge is not replicated.
+    exchanges.declare(empty, DirectExchange::typeName, false, 
noReplicateArgs());
 
     if (store.get() != 0) {
         // The cluster plug-in will setRecovery(false) on all but the first
@@ -295,7 +307,7 @@ Broker::Broker(const Broker::Options& co
     declareStandardExchange(amq_match, HeadersExchange::typeName);
 
     if(conf.enableMgmt) {
-        exchanges.declare(qpid_management, ManagementTopicExchange::typeName);
+        exchanges.declare(qpid_management, ManagementTopicExchange::typeName, 
false, noReplicateArgs());
         Exchange::shared_ptr mExchange = exchanges.get(qpid_management);
         Exchange::shared_ptr dExchange = exchanges.get(amq_direct);
         managementAgent->setExchange(mExchange, dExchange);
@@ -304,8 +316,10 @@ Broker::Broker(const Broker::Options& co
         std::string qmfTopic("qmf.default.topic");
         std::string qmfDirect("qmf.default.direct");
 
-        std::pair<Exchange::shared_ptr, bool> 
topicPair(exchanges.declare(qmfTopic, ManagementTopicExchange::typeName));
-        std::pair<Exchange::shared_ptr, bool> 
directPair(exchanges.declare(qmfDirect, ManagementDirectExchange::typeName));
+        std::pair<Exchange::shared_ptr, bool> topicPair(
+            exchanges.declare(qmfTopic, ManagementTopicExchange::typeName, 
false, noReplicateArgs()));
+        std::pair<Exchange::shared_ptr, bool> directPair(
+            exchanges.declare(qmfDirect, ManagementDirectExchange::typeName, 
false, noReplicateArgs()));
 
         
boost::dynamic_pointer_cast<ManagementDirectExchange>(directPair.first)->setManagmentAgent(managementAgent.get(),
 2);
         
boost::dynamic_pointer_cast<ManagementTopicExchange>(topicPair.first)->setManagmentAgent(managementAgent.get(),
 2);
@@ -358,7 +372,10 @@ Broker::Broker(const Broker::Options& co
 void Broker::declareStandardExchange(const std::string& name, const 
std::string& type)
 {
     bool storeEnabled = store.get() != NULL;
-    std::pair<Exchange::shared_ptr, bool> status = exchanges.declare(name, 
type, storeEnabled);
+    framing::FieldTable args;
+    // Standard exchanges are not replicated.
+    std::pair<Exchange::shared_ptr, bool> status =
+        exchanges.declare(name, type, storeEnabled, noReplicateArgs());
     if (status.second && storeEnabled) {
         store->create(*status.first, framing::FieldTable ());
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to