summaryrefslogtreecommitdiff
path: root/cpp/demo/IceStorm/replicated/Subscriber.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-12-07 14:32:58 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-12-07 14:32:58 +0000
commitfac625c2460bb1c64518b11ef05c72f0e2865dbf (patch)
tree3e80044a4550f4073e4e2c03a2a5c3c487f2c944 /cpp/demo/IceStorm/replicated/Subscriber.cpp
parentFix (diff)
downloadice-fac625c2460bb1c64518b11ef05c72f0e2865dbf.tar.bz2
ice-fac625c2460bb1c64518b11ef05c72f0e2865dbf.tar.xz
ice-fac625c2460bb1c64518b11ef05c72f0e2865dbf.zip
Replicate TopicManager as well
Diffstat (limited to 'cpp/demo/IceStorm/replicated/Subscriber.cpp')
-rw-r--r--cpp/demo/IceStorm/replicated/Subscriber.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/cpp/demo/IceStorm/replicated/Subscriber.cpp b/cpp/demo/IceStorm/replicated/Subscriber.cpp
index fd83b357131..84d40596b0b 100644
--- a/cpp/demo/IceStorm/replicated/Subscriber.cpp
+++ b/cpp/demo/IceStorm/replicated/Subscriber.cpp
@@ -50,7 +50,7 @@ Subscriber::run(int argc, char* argv[])
Ice::PropertiesPtr properties = communicator()->getProperties();
IceGrid::QueryPrx query = IceGrid::QueryPrx::uncheckedCast(communicator()->stringToProxy("DemoIceGrid/Query"));
- Ice::ObjectProxySeq managers = query->findAllObjectsByType("::IceStorm::TopicManager");
+ Ice::ObjectProxySeq managers = query->findAllReplicas(query->findObjectByType("::IceStorm::TopicManager"));
string topicName = "time";
if(argc != 1)
@@ -72,14 +72,15 @@ Subscriber::run(int argc, char* argv[])
Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Clock.Subscriber");
Ice::ObjectPrx clock = adapter->addWithUUID(new ClockI);
- vector<IceStorm::TopicPrx> topics;
- for(Ice::ObjectProxySeq::const_iterator p = managers.begin(); p != managers.end(); ++p)
+ IceStorm::TopicPrx topic;
+ Ice::ObjectProxySeq::const_iterator p;
+ for(p = managers.begin(); p != managers.end(); ++p)
{
//
// Add a Servant for the Ice Object.
//
- IceStorm::TopicPrx topic;
IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(*p);
+
try
{
topic = manager->retrieve(topicName);
@@ -96,8 +97,13 @@ Subscriber::run(int argc, char* argv[])
return EXIT_FAILURE;
}
}
+ }
+
+ Ice::ObjectProxySeq topics = query->findAllReplicas(topic);
+ for(p = topics.begin(); p != topics.end(); ++p)
+ {
+ topic = IceStorm::TopicPrx::uncheckedCast(*p);
topic->subscribe(qos, clock);
- topics.push_back(topic);
}
adapter->activate();
@@ -107,9 +113,10 @@ Subscriber::run(int argc, char* argv[])
//
// Unsubscribe all subscribed objects.
//
- for(unsigned int i = 0; i < topics.size(); ++i)
+ for(p = topics.begin(); p != topics.end(); ++p)
{
- topics[i]->unsubscribe(clock);
+ topic = IceStorm::TopicPrx::uncheckedCast(*p);
+ topic->unsubscribe(clock);
}
return EXIT_SUCCESS;