summaryrefslogtreecommitdiff
path: root/cpp/src
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/src
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/src')
-rw-r--r--cpp/src/IceStorm/TopicI.cpp7
-rw-r--r--cpp/src/IceStorm/TopicI.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/IceStorm/TopicI.cpp b/cpp/src/IceStorm/TopicI.cpp
index d7b1a3b98b7..f3d5992021d 100644
--- a/cpp/src/IceStorm/TopicI.cpp
+++ b/cpp/src/IceStorm/TopicI.cpp
@@ -446,6 +446,13 @@ TopicI::subscribe(const QoS& qos, const Ice::ObjectPrx& subscriber, const Ice::C
}
void
+TopicI::subscribeBidir(const QoS& qos, const Ice::Identity& ident, const Ice::Current& current)
+{
+ Ice::ObjectPrx subscriber = current.con->createProxy(ident);
+ subscribe(qos, subscriber, current);
+}
+
+void
TopicI::unsubscribe(const Ice::ObjectPrx& subscriber, const Ice::Current&)
{
IceUtil::RecMutex::Lock sync(*this);
diff --git a/cpp/src/IceStorm/TopicI.h b/cpp/src/IceStorm/TopicI.h
index 83e8366271f..0e2d3b3575d 100644
--- a/cpp/src/IceStorm/TopicI.h
+++ b/cpp/src/IceStorm/TopicI.h
@@ -76,6 +76,7 @@ public:
virtual std::string getName(const Ice::Current&) const;
virtual Ice::ObjectPrx getPublisher(const Ice::Current&) const;
virtual void subscribe(const QoS&, const Ice::ObjectPrx&, const Ice::Current&);
+ virtual void subscribeBidir(const QoS&, const Ice::Identity&, const Ice::Current&);
virtual void unsubscribe(const Ice::ObjectPrx&, const Ice::Current&);
virtual void destroy(const Ice::Current&);
virtual void link(const TopicPrx&, Ice::Int, const Ice::Current&);