diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-05-23 12:23:55 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-05-23 12:23:55 +0000 |
commit | 029fd83551338ea01613c54ddbc4906c09227c60 (patch) | |
tree | df5e77cbb88f29def748393baf98d88d172cb7ba /cpp/src/IceGrid/ServerCache.cpp | |
parent | fix test for recent slice change (diff) | |
download | ice-029fd83551338ea01613c54ddbc4906c09227c60.tar.bz2 ice-029fd83551338ea01613c54ddbc4906c09227c60.tar.xz ice-029fd83551338ea01613c54ddbc4906c09227c60.zip |
Added support for Glacier2 filters.
Diffstat (limited to 'cpp/src/IceGrid/ServerCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/ServerCache.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp index b328fa5a3b3..5b68c70bc5a 100644 --- a/cpp/src/IceGrid/ServerCache.cpp +++ b/cpp/src/IceGrid/ServerCache.cpp @@ -9,6 +9,7 @@ #include <Ice/LoggerUtil.h> #include <Ice/Communicator.h> +#include <Ice/LocalException.h> #include <IceGrid/ServerCache.h> #include <IceGrid/NodeCache.h> #include <IceGrid/AdapterCache.h> @@ -787,6 +788,23 @@ ServerEntry::allocated(const SessionIPtr& session) _session = session; } } + + Glacier2::SessionControlPrx ctl = session->getSessionControl(); + if(ctl) + { + try + { + Ice::StringSeq seq(_adapters.size()); + for(AdapterPrxDict::const_iterator p = _adapters.begin(); p != _adapters.end(); ++p) + { + seq.push_back(p->first); + } + ctl->adapterIdFilter()->addAccept(seq); + } + catch(const Ice::ObjectNotExistException&) + { + } + } } void @@ -817,6 +835,23 @@ ServerEntry::released(const SessionIPtr& session) } } + Glacier2::SessionControlPrx ctl = session->getSessionControl(); + if(ctl) + { + try + { + Ice::StringSeq seq(_adapters.size()); + for(AdapterPrxDict::const_iterator p = _adapters.begin(); p != _adapters.end(); ++p) + { + seq.push_back(p->first); + } + ctl->adapterIdFilter()->removeAccept(seq); + } + catch(const Ice::ObjectNotExistException&) + { + } + } + TraceLevelsPtr traceLevels = _cache.getTraceLevels(); if(traceLevels && traceLevels->server > 1) { |