diff options
author | Matthew Newhook <matthew@zeroc.com> | 2002-05-02 13:58:23 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2002-05-02 13:58:23 +0000 |
commit | c2e5443c854a388f8962349c4e7b52d9d0c1a84a (patch) | |
tree | 055c04c1285a07f976fa33a31addc56b3f2471b7 /cpp/src | |
parent | Added Freeze::EvictorIterator. (diff) | |
download | ice-c2e5443c854a388f8962349c4e7b52d9d0c1a84a.tar.bz2 ice-c2e5443c854a388f8962349c4e7b52d9d0c1a84a.tar.xz ice-c2e5443c854a388f8962349c4e7b52d9d0c1a84a.zip |
Added Freeze::Evictor::hasObject.
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Freeze/EvictorI.cpp | 20 | ||||
-rw-r--r-- | cpp/src/Freeze/EvictorI.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/cpp/src/Freeze/EvictorI.cpp b/cpp/src/Freeze/EvictorI.cpp index 333ea527611..d91b0c9e439 100644 --- a/cpp/src/Freeze/EvictorI.cpp +++ b/cpp/src/Freeze/EvictorI.cpp @@ -178,9 +178,29 @@ Freeze::EvictorI::installServantInitializer(const ServantInitializerPtr& initial EvictorIteratorPtr Freeze::EvictorI::getIterator() { + IceUtil::Mutex::Lock sync(*this); + + if (_deactivated) + { + throw EvictorDeactivatedException(__FILE__, __LINE__); + } + return new EvictorIteratorI(_dict.begin(), _dict.end()); } +bool +Freeze::EvictorI::hasObject(const Ice::Identity& ident) +{ + IceUtil::Mutex::Lock sync(*this); + + if (_deactivated) + { + throw EvictorDeactivatedException(__FILE__, __LINE__); + } + + return _dict.find(ident) != _dict.end(); +} + ObjectPtr Freeze::EvictorI::locate(const ObjectAdapterPtr& adapter, const Current& current, LocalObjectPtr& cookie) { diff --git a/cpp/src/Freeze/EvictorI.h b/cpp/src/Freeze/EvictorI.h index c71e1ff7e3c..5c7a7304b2f 100644 --- a/cpp/src/Freeze/EvictorI.h +++ b/cpp/src/Freeze/EvictorI.h @@ -38,6 +38,7 @@ public: virtual void installServantInitializer(const ServantInitializerPtr&); virtual EvictorIteratorPtr getIterator(); + virtual bool hasObject(const Ice::Identity&); virtual Ice::ObjectPtr locate(const Ice::ObjectAdapterPtr&, const Ice::Current&, Ice::LocalObjectPtr&); virtual void finished(const Ice::ObjectAdapterPtr&, const Ice::Current&, |