diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-04-27 16:06:50 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-04-27 16:06:50 +0000 |
commit | f4a0472080eb9f570d23892154093f057288c601 (patch) | |
tree | 788cd4e98d6963e2a27a3bcdaae6e01973788302 /cpp/src/IceGrid/AdapterCache.cpp | |
parent | dos2unix (diff) | |
download | ice-f4a0472080eb9f570d23892154093f057288c601.tar.bz2 ice-f4a0472080eb9f570d23892154093f057288c601.tar.xz ice-f4a0472080eb9f570d23892154093f057288c601.zip |
More work on allocation.
Diffstat (limited to 'cpp/src/IceGrid/AdapterCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdapterCache.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/AdapterCache.cpp b/cpp/src/IceGrid/AdapterCache.cpp index 796a8db35f5..81ed7bfff4b 100644 --- a/cpp/src/IceGrid/AdapterCache.cpp +++ b/cpp/src/IceGrid/AdapterCache.cpp @@ -14,6 +14,7 @@ #include <IceGrid/NodeSessionI.h> #include <IceGrid/ServerCache.h> #include <IceGrid/NodeCache.h> +#include <IceGrid/SessionI.h> using namespace std; using namespace IceGrid; @@ -183,12 +184,21 @@ ServerAdapterEntry::getApplication() const } void -ServerAdapterEntry::set(const ServerEntryPtr& server, const string& replicaGroupId) +ServerAdapterEntry::set(const ServerEntryPtr& server, const string& replicaGroupId, bool allocatable) { { Lock sync(*this); _server = server; _replicaGroupId = replicaGroupId; + if(server->allocatable()) + { + _parent = server; + _allocatable = true; + } + else + { + _allocatable = allocatable; + } } if(!replicaGroupId.empty()) { @@ -237,6 +247,28 @@ ServerAdapterEntry::getServer() const return _server; } +void +ServerAdapterEntry::allocated(const SessionIPtr& session) +{ + TraceLevelsPtr traceLevels = _cache.getTraceLevels(); + if(traceLevels && traceLevels->adapter > 1) + { + Ice::Trace out(traceLevels->logger, traceLevels->adapterCat); + out << "adapter `" << _id << "' allocated by `" << session->getUserId() << "' (" << _count << ")"; + } +} + +void +ServerAdapterEntry::released(const SessionIPtr& session) +{ + TraceLevelsPtr traceLevels = _cache.getTraceLevels(); + if(traceLevels && traceLevels->adapter > 1) + { + Ice::Trace out(traceLevels->logger, traceLevels->adapterCat); + out << "adapter `" << _id << "' released by `" << session->getUserId() << "' (" << _count << ")"; + } +} + ReplicaGroupEntry::ReplicaGroupEntry(Cache<string, AdapterEntry>& cache, const std::string& id) : AdapterEntry(cache, id), _lastReplica(0) @@ -416,3 +448,4 @@ ReplicaGroupEntry::getApplication() const Lock sync(*this); return _application; } + |