diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-12-07 14:32:58 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-12-07 14:32:58 +0000 |
commit | fac625c2460bb1c64518b11ef05c72f0e2865dbf (patch) | |
tree | 3e80044a4550f4073e4e2c03a2a5c3c487f2c944 /cpp/demo/IceStorm/replicated/Subscriber.cpp | |
parent | Fix (diff) | |
download | ice-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.cpp | 21 |
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; |