summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2002-05-02 13:58:23 +0000
committerMatthew Newhook <matthew@zeroc.com>2002-05-02 13:58:23 +0000
commitc2e5443c854a388f8962349c4e7b52d9d0c1a84a (patch)
tree055c04c1285a07f976fa33a31addc56b3f2471b7 /cpp/src
parentAdded Freeze::EvictorIterator. (diff)
downloadice-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.cpp20
-rw-r--r--cpp/src/Freeze/EvictorI.h1
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&,