diff options
author | Benoit Foucher <benoit@zeroc.com> | 2002-12-05 22:31:29 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2002-12-05 22:31:29 +0000 |
commit | 7abe0bb2e951d22f67f34d38bd4892f30ad901bb (patch) | |
tree | 4844d8f0ed9c4988f5ec8988aa313b1f47f15162 /cpp/src/IceStorm/TopicManagerI.cpp | |
parent | Added support for object lookup by identity (diff) | |
download | ice-7abe0bb2e951d22f67f34d38bd4892f30ad901bb.tar.bz2 ice-7abe0bb2e951d22f67f34d38bd4892f30ad901bb.tar.xz ice-7abe0bb2e951d22f67f34d38bd4892f30ad901bb.zip |
Added IcePack object registry.
Added support for locator object lookup by identity.
Added Query interface to lookup objects by type.
Changed the IcePack.Registry.Locator properties to IcePack.Registry.Client
Changed the IcePack.Registry.LocatorRegistry properties to
IcePack.Registry.Se rver
Added IcePack demo
Minor fixes and clean-up
Diffstat (limited to 'cpp/src/IceStorm/TopicManagerI.cpp')
-rw-r--r-- | cpp/src/IceStorm/TopicManagerI.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/cpp/src/IceStorm/TopicManagerI.cpp b/cpp/src/IceStorm/TopicManagerI.cpp index 16c6bc06620..3fd06b94854 100644 --- a/cpp/src/IceStorm/TopicManagerI.cpp +++ b/cpp/src/IceStorm/TopicManagerI.cpp @@ -117,13 +117,24 @@ TopicManagerI::retrieve(const string& name, const Ice::Current&) const // // The arguments cannot be const & (for some reason) // -static TopicDict::value_type -transformToTopicDict(TopicIMap::value_type p, Ice::ObjectAdapterPtr adapter) +struct TransformToTopicDict : public std::unary_function<TopicIMap::value_type, TopicDict::value_type> { + + TransformToTopicDict(const Ice::ObjectAdapterPtr& adapter) : + _adapter(adapter) + { + } + + TopicDict::value_type + operator()(TopicIMap::value_type p) + { Ice::Identity id; id.name = p.first; - return TopicDict::value_type(p.first, TopicPrx::uncheckedCast(adapter->createProxy(id))); -} + return TopicDict::value_type(p.first, TopicPrx::uncheckedCast(_adapter->createProxy(id))); + } + + Ice::ObjectAdapterPtr _adapter; +}; TopicDict TopicManagerI::retrieveAll(const Ice::Current&) const @@ -135,7 +146,7 @@ TopicManagerI::retrieveAll(const Ice::Current&) const TopicDict all; transform(_topicIMap.begin(), _topicIMap.end(), inserter(all, all.begin()), - bind2nd(ptr_fun(transformToTopicDict), _adapter)); + TransformToTopicDict(_adapter)); return all; } |