diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-09-21 14:02:52 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-09-21 14:02:52 +0000 |
commit | fed698d7a15486e1c01ee4e7eafe3da45d7cd803 (patch) | |
tree | 5013a1127805e438bc76dc8f4b2f49a1c2461fea /cpp/src/IceGrid/ServerCache.cpp | |
parent | Fix (diff) | |
download | ice-fed698d7a15486e1c01ee4e7eafe3da45d7cd803.tar.bz2 ice-fed698d7a15486e1c01ee4e7eafe3da45d7cd803.tar.xz ice-fed698d7a15486e1c01ee4e7eafe3da45d7cd803.zip |
Improved the error message if you try to remove an object or adapter with
the admin interface and if that object or adapter was added with a
deployment descriptor.
Fixed a bug where trying to start a server managed by a node would fail if
this server was previously manually activated.
Simplified adapter direct proxy update if the adapter is an adapter that
wasn't added with a deployment descriptor.
Fixes to allow compilation on AIX.
Diffstat (limited to 'cpp/src/IceGrid/ServerCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/ServerCache.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp index 0ec5fa310c4..1e90dfa3f2c 100644 --- a/cpp/src/IceGrid/ServerCache.cpp +++ b/cpp/src/IceGrid/ServerCache.cpp @@ -142,6 +142,7 @@ ServerCache::getNodeCache() const void ServerCache::addCommunicator(const CommunicatorDescriptorPtr& comm, const ServerEntryPtr& entry) { + const string application = entry->getApplication(); for(AdapterDescriptorSeq::const_iterator q = comm->adapters.begin() ; q != comm->adapters.end(); ++q) { if(!q->id.empty()) @@ -150,7 +151,8 @@ ServerCache::addCommunicator(const CommunicatorDescriptorPtr& comm, const Server } for(ObjectDescriptorSeq::const_iterator r = q->objects.begin(); r != q->objects.end(); ++r) { - _objectCache.add(q->id, IceGrid::getProperty(comm->properties, q->name + ".Endpoints"), *r); + const string edpts = IceGrid::getProperty(comm->properties, q->name + ".Endpoints"); + _objectCache.add(application, q->id, edpts, *r); } } } @@ -341,6 +343,17 @@ ServerEntry::getNode() const return _proxy ? _cache.getNodeCache().get(_loaded->node) : _cache.getNodeCache().get(_load->node); } +string +ServerEntry::getApplication() const +{ + Lock sync(*this); + if(!_loaded.get() && !_load.get()) + { + throw ServerNotExistException(); + } + return _proxy ? _loaded->application : _load->application; +} + float ServerEntry::getLoad(LoadSample sample) const { |