diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2005-09-28 13:51:14 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2005-09-28 13:51:14 +0000 |
commit | 08e1888b60369a39f7410fc49204c0193ba294c4 (patch) | |
tree | ded4bc9612e463f70848879812f597d454455064 /cpp/demo/IceStorm/clock/Subscriber.cpp | |
parent | don't choke on missing files (diff) | |
download | ice-08e1888b60369a39f7410fc49204c0193ba294c4.tar.bz2 ice-08e1888b60369a39f7410fc49204c0193ba294c4.tar.xz ice-08e1888b60369a39f7410fc49204c0193ba294c4.zip |
Added ability to subscibe to IceStorm with bidir connection.
Diffstat (limited to 'cpp/demo/IceStorm/clock/Subscriber.cpp')
-rw-r--r-- | cpp/demo/IceStorm/clock/Subscriber.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/cpp/demo/IceStorm/clock/Subscriber.cpp b/cpp/demo/IceStorm/clock/Subscriber.cpp index 475f52b3c96..ff7dae7b886 100644 --- a/cpp/demo/IceStorm/clock/Subscriber.cpp +++ b/cpp/demo/IceStorm/clock/Subscriber.cpp @@ -57,15 +57,23 @@ Subscriber::run(int argc, char* argv[]) // Gather the set of topics to which to subscribe. It is either // the set provided on the command line, or the topic "time". // + bool bidir = false; Ice::StringSeq topics; if(argc > 1) { for(int i = 1; i < argc; ++i) { - topics.push_back(argv[i]); + if(strcmp(argv[i], "--bidir") == 0) + { + bidir = true; + } + else + { + topics.push_back(argv[i]); + } } } - else + if(topics.size() == 0) { topics.push_back("time"); } @@ -102,7 +110,15 @@ Subscriber::run(int argc, char* argv[]) try { IceStorm::TopicPrx topic = manager->retrieve(*p); - topic->subscribe(qos, object); + if(bidir) + { + topic->ice_connection()->setAdapter(adapter); + topic->subscribeBidir(qos, object->ice_getIdentity()); + } + else + { + topic->subscribe(qos, object); + } } catch(const IceStorm::NoSuchTopic& e) { |