summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/ServerCache.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-06-16 13:19:20 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-06-16 13:19:20 +0000
commite44cfc240ae1eb4d9df2d74ab1c7e9d0f0a817ff (patch)
tree6b89768c7a33835c9df9dcb720dd173d807e5e84 /cpp/src/IceGrid/ServerCache.cpp
parentAdded (diff)
downloadice-e44cfc240ae1eb4d9df2d74ab1c7e9d0f0a817ff.tar.bz2
ice-e44cfc240ae1eb4d9df2d74ab1c7e9d0f0a817ff.tar.xz
ice-e44cfc240ae1eb4d9df2d74ab1c7e9d0f0a817ff.zip
Fixed bug 1054, 1077, 1002.
Diffstat (limited to 'cpp/src/IceGrid/ServerCache.cpp')
-rw-r--r--cpp/src/IceGrid/ServerCache.cpp44
1 files changed, 22 insertions, 22 deletions
diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp
index 60004799341..00e5c85062b 100644
--- a/cpp/src/IceGrid/ServerCache.cpp
+++ b/cpp/src/IceGrid/ServerCache.cpp
@@ -243,9 +243,9 @@ ServerEntry::update(const ServerInfo& info)
_load = descriptor;
_loaded.reset(0);
- _proxy = 0;
- _adapters.clear();
-
+// _proxy = 0;
+// _adapters.clear();
+
//
// Update the allocatable flag.
//
@@ -276,8 +276,8 @@ ServerEntry::destroy()
_load.reset(0);
_loaded.reset(0);
- _proxy = 0;
- _adapters.clear();
+// _proxy = 0;
+// _adapters.clear();
}
ServerInfo
@@ -291,7 +291,7 @@ ServerEntry::getServerInfo(bool resolve) const
{
throw ServerNotExistException();
}
- info = _proxy ? *_loaded : *_load;
+ info = _loaded.get() ? *_loaded : *_load;
session = _session;
}
assert(info.descriptor);
@@ -321,17 +321,17 @@ ServerEntry::getId() const
}
ServerPrx
-ServerEntry::getProxy(int& activationTimeout, int& deactivationTimeout, string& node)
+ServerEntry::getProxy(int& activationTimeout, int& deactivationTimeout, string& node, bool upToDate)
{
ServerPrx proxy;
{
Lock sync(*this);
- if(_proxy) // Synced
+ if(_loaded.get() || _proxy && !upToDate) // Synced or if not up to date is fine
{
proxy = _proxy;
activationTimeout = _activationTimeout;
deactivationTimeout = _deactivationTimeout;
- node = _loaded->node;
+ node = _loaded.get() ? _loaded->node : _load->node;
}
}
@@ -353,11 +353,11 @@ ServerEntry::getProxy(int& activationTimeout, int& deactivationTimeout, string&
{
Lock sync(*this);
- if(_proxy)
+ if(_loaded.get() || _proxy && !upToDate) // Synced or if not up to date is fine
{
activationTimeout = _activationTimeout;
deactivationTimeout = _deactivationTimeout;
- node = _loaded->node;
+ node = _loaded.get() ? _loaded->node : _load->node;
return _proxy;
}
else if(_load.get())
@@ -373,13 +373,13 @@ ServerEntry::getProxy(int& activationTimeout, int& deactivationTimeout, string&
}
AdapterPrx
-ServerEntry::getAdapter(const string& id)
+ServerEntry::getAdapter(const string& id, bool upToDate)
{
AdapterPrx proxy;
{
Lock sync(*this);
- if(_proxy) // Synced
+ if(_loaded.get() || _proxy && !upToDate) // Synced or if not up to date is fine
{
AdapterPrxDict::const_iterator p = _adapters.find(id);
if(p != _adapters.end())
@@ -412,7 +412,7 @@ ServerEntry::getAdapter(const string& id)
{
Lock sync(*this);
- if(_proxy) // Synced
+ if(_loaded.get() || _proxy && !upToDate) // Synced or if not up to date is fine
{
AdapterPrxDict::const_iterator p = _adapters.find(id);
if(p != _adapters.end())
@@ -444,7 +444,7 @@ ServerEntry::getNode() const
{
throw ServerNotExistException();
}
- return _proxy ? _cache.getNodeCache().get(_loaded->node) : _cache.getNodeCache().get(_load->node);
+ return _loaded.get() ? _cache.getNodeCache().get(_loaded->node) : _cache.getNodeCache().get(_load->node);
}
string
@@ -455,7 +455,7 @@ ServerEntry::getApplication() const
{
throw ServerNotExistException();
}
- return _proxy ? _loaded->application : _load->application;
+ return _loaded.get() ? _loaded->application : _load->application;
}
float
@@ -524,8 +524,8 @@ ServerEntry::syncImpl(bool waitForUpdate)
if(!_load.get() && !_destroy.get())
{
_load = _loaded; // Re-load the current server.
- _proxy = 0;
- _adapters.clear();
+// _proxy = 0;
+// _adapters.clear();
}
_updated = false;
@@ -800,8 +800,8 @@ ServerEntry::allocated(const SessionIPtr& session)
{
_load = _loaded;
}
- _proxy = 0;
- _adapters.clear();
+// _proxy = 0;
+// _adapters.clear();
_session = session;
}
@@ -865,8 +865,8 @@ ServerEntry::released(const SessionIPtr& session)
{
_load = _loaded;
}
- _proxy = 0;
- _adapters.clear();
+// _proxy = 0;
+// _adapters.clear();
_session = 0;
}