summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/AdapterCache.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-04-27 16:06:50 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-04-27 16:06:50 +0000
commitf4a0472080eb9f570d23892154093f057288c601 (patch)
tree788cd4e98d6963e2a27a3bcdaae6e01973788302 /cpp/src/IceGrid/AdapterCache.cpp
parentdos2unix (diff)
downloadice-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.cpp35
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;
}
+