summaryrefslogtreecommitdiff
path: root/cpp/demo/IceStorm/clock/Subscriber.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2005-09-28 13:51:14 +0000
committerDwayne Boone <dwayne@zeroc.com>2005-09-28 13:51:14 +0000
commit08e1888b60369a39f7410fc49204c0193ba294c4 (patch)
treeded4bc9612e463f70848879812f597d454455064 /cpp/demo/IceStorm/clock/Subscriber.cpp
parentdon't choke on missing files (diff)
downloadice-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.cpp22
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)
{