diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-12-07 15:31:48 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-12-07 15:31:48 +0000 |
commit | cbde90b8cc32ec3863c2d78a0ed62e1b986aebe4 (patch) | |
tree | f60a3e21a1a066f4ded02d6378c0cf9318a14460 /cpp/src/IceGrid/NodeSessionI.cpp | |
parent | Replicate TopicManager as well (diff) | |
download | ice-cbde90b8cc32ec3863c2d78a0ed62e1b986aebe4.tar.bz2 ice-cbde90b8cc32ec3863c2d78a0ed62e1b986aebe4.tar.xz ice-cbde90b8cc32ec3863c2d78a0ed62e1b986aebe4.zip |
Fixed bug 1603
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionI.cpp')
-rw-r--r-- | cpp/src/IceGrid/NodeSessionI.cpp | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/cpp/src/IceGrid/NodeSessionI.cpp b/cpp/src/IceGrid/NodeSessionI.cpp index ee87d6ac16c..a86c04600df 100644 --- a/cpp/src/IceGrid/NodeSessionI.cpp +++ b/cpp/src/IceGrid/NodeSessionI.cpp @@ -112,24 +112,20 @@ NodeSessionI::loadServers_async(const AMD_NodeSession_loadServersPtr& amdCB, con // // Get the server proxies to load them on the node. // - Ice::StringSeq servers = _database->getNode(_info.name)->getServers(); - for(Ice::StringSeq::const_iterator p = servers.begin(); p != servers.end(); ++p) - { - try - { - _database->getServer(*p)->load(); - } - catch(const Ice::UserException&) - { - // Ignore. - } - } + ServerEntrySeq servers = _database->getNode(_info.name)->getServers(); + for_each(servers.begin(), servers.end(), IceUtil::voidMemFun(&ServerEntry::sync)); } Ice::StringSeq NodeSessionI::getServers(const Ice::Current& current) const { - return _database->getNode(_info.name)->getServers(); + ServerEntrySeq servers = _database->getNode(_info.name)->getServers(); + Ice::StringSeq names; + for(ServerEntrySeq::const_iterator p = servers.begin(); p != servers.end(); ++p) + { + names.push_back((*p)->getId()); + } + return names; } void @@ -208,18 +204,8 @@ NodeSessionI::destroyImpl(bool shutdown) _destroy = true; } - Ice::StringSeq servers = _database->getNode(_info.name)->getServers(); - for(Ice::StringSeq::const_iterator p = servers.begin(); p != servers.end(); ++p) - { - try - { - _database->getServer(*p)->unload(); - } - catch(const Ice::UserException&) - { - // Ignore. - } - } + ServerEntrySeq servers = _database->getNode(_info.name)->getServers(); + for_each(servers.begin(), servers.end(), IceUtil::voidMemFun(&ServerEntry::unsync)); // // If the registry isn't being shutdown we remove the node |