diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-06-22 17:43:54 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-06-22 17:43:54 +0000 |
commit | 0c24068c2b2116e2e8f63cae92ef8093f0fdfe6b (patch) | |
tree | c8b82a59b3264b5a62726c1b9ec1144dfb4092e8 /cpp/src/IceGrid/Topics.cpp | |
parent | Committed more fixes for windows compile (diff) | |
download | ice-0c24068c2b2116e2e8f63cae92ef8093f0fdfe6b.tar.bz2 ice-0c24068c2b2116e2e8f63cae92ef8093f0fdfe6b.tar.xz ice-0c24068c2b2116e2e8f63cae92ef8093f0fdfe6b.zip |
Added session tests, completed update tests.
Diffstat (limited to 'cpp/src/IceGrid/Topics.cpp')
-rw-r--r-- | cpp/src/IceGrid/Topics.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/cpp/src/IceGrid/Topics.cpp b/cpp/src/IceGrid/Topics.cpp index 41427244449..2ee3b28361b 100644 --- a/cpp/src/IceGrid/Topics.cpp +++ b/cpp/src/IceGrid/Topics.cpp @@ -110,12 +110,19 @@ NodeObserverTopic::updateServer(const string& node, const ServerDynamicInfo& ser { if(p->name == server.name) { - *p = server; + if(server.state == Destroyed || server.state == Inactive) + { + servers.erase(p); + } + else + { + *p = server; + } break; } ++p; } - if(p == servers.end()) + if(server.state != Destroyed && server.state != Inactive && p == servers.end()) { servers.push_back(server); } @@ -137,12 +144,19 @@ NodeObserverTopic::updateAdapter(const string& node, const AdapterDynamicInfo& a { if(p->id == adapter.id) { - *p = adapter; + if(adapter.proxy) + { + *p = adapter; + } + else + { + adapters.erase(p); + } break; } ++p; } - if(p == adapters.end()) + if(adapter.proxy && p == adapters.end()) { adapters.push_back(adapter); } |