summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2007-12-12 12:03:04 -0500
committerBernard Normier <bernard@zeroc.com>2007-12-12 12:03:04 -0500
commit28c22de9b812daeffa630656818da6ec5411a7da (patch)
treea3b5142c2144ead6aafb62dd71baf0657296e014
parentFixed bug #2546 (diff)
downloadice-28c22de9b812daeffa630656818da6ec5411a7da.tar.bz2
ice-28c22de9b812daeffa630656818da6ec5411a7da.tar.xz
ice-28c22de9b812daeffa630656818da6ec5411a7da.zip
Fixed bug #2557 (closing database within transaction)
-rw-r--r--cpp/demo/Freeze/transform/README2
-rw-r--r--cpp/include/Freeze/Map.h12
-rw-r--r--cpp/src/Freeze/.depend48
-rw-r--r--cpp/src/Freeze/Makefile2
-rw-r--r--cpp/src/Freeze/MapDb.cpp478
-rw-r--r--cpp/src/Freeze/MapDb.h123
-rw-r--r--cpp/src/Freeze/MapI.cpp95
-rw-r--r--cpp/src/Freeze/MapI.h8
-rw-r--r--cpp/src/Freeze/SharedDb.cpp720
-rw-r--r--cpp/src/Freeze/SharedDb.h189
-rw-r--r--cpp/src/Freeze/SharedDbEnv.cpp239
-rw-r--r--cpp/src/Freeze/SharedDbEnv.h50
-rw-r--r--cpp/test/Freeze/dbmap/Client.cpp15
-rw-r--r--java/demo/Freeze/transform/README2
-rw-r--r--java/src/Freeze/Map.java130
-rwxr-xr-xjava/src/Freeze/MapDb.java433
-rwxr-xr-xjava/src/Freeze/SharedDb.java622
-rw-r--r--java/src/Freeze/SharedDbEnv.java402
-rw-r--r--java/test/Freeze/dbmap/Client.java14
19 files changed, 1628 insertions, 1956 deletions
diff --git a/cpp/demo/Freeze/transform/README b/cpp/demo/Freeze/transform/README
index dd4a0822e1b..88161e6136c 100644
--- a/cpp/demo/Freeze/transform/README
+++ b/cpp/demo/Freeze/transform/README
@@ -67,7 +67,7 @@ Running the demo
$ transformdb --old ContactData.ice --new NewContactData.ice \
-f transform.xml db dbnew
- - read the transformend contacts map:
+ - read the transformed contacts map:
$ readnew
You'll notice the sort order (looks random), and the corrupt
index. The index is actually created by readnew when it opens
diff --git a/cpp/include/Freeze/Map.h b/cpp/include/Freeze/Map.h
index 0cee7e7736d..00be9db6fac 100644
--- a/cpp/include/Freeze/Map.h
+++ b/cpp/include/Freeze/Map.h
@@ -77,6 +77,7 @@ private:
friend class MapHelperI;
friend class IteratorHelperI;
friend class SharedDb;
+ friend class MapDb;
std::string _name;
MapIndexI* _impl;
@@ -140,6 +141,8 @@ public:
virtual const MapIndexBasePtr&
index(const std::string&) const = 0;
+ virtual void
+ closeDb() = 0;
};
@@ -1095,6 +1098,15 @@ public:
{
_helper->destroy();
}
+
+
+ //
+ // closeDb closes the underlying Berkeley DB database
+ //
+ void closeDb()
+ {
+ _helper->closeDb();
+ }
iterator find(const key_type& key)
{
diff --git a/cpp/src/Freeze/.depend b/cpp/src/Freeze/.depend
index 7793c9b2918..9fd22295592 100644
--- a/cpp/src/Freeze/.depend
+++ b/cpp/src/Freeze/.depend
@@ -1,30 +1,30 @@
-BackgroundSaveEvictor$(OBJEXT): BackgroundSaveEvictor.cpp ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Evictor.h ../../include/Ice/ServantLocator.h ../../include/Freeze/Exception.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+BackgroundSaveEvictor$(OBJEXT): BackgroundSaveEvictor.cpp ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Evictor.h ../../include/Ice/ServantLocator.h ../../include/Freeze/Exception.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
BackgroundSaveEvictorI$(OBJEXT): BackgroundSaveEvictorI.cpp ../Freeze/BackgroundSaveEvictorI.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Config.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Shared.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/Timer.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h
-CatalogData$(OBJEXT): CatalogData.cpp ../../include/Freeze/CatalogData.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
-Catalog$(OBJEXT): Catalog.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Freeze/Catalog.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/CatalogData.h
-CatalogIndexList$(OBJEXT): CatalogIndexList.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Freeze/CatalogIndexList.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h
-ConnectionI$(OBJEXT): ConnectionI.cpp ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/TransactionI.h ../Freeze/SharedDbEnv.h ../Freeze/MapI.h ../../include/Freeze/Map.h ../../include/Freeze/Exception.h ../Freeze/SharedDb.h
-Connection$(OBJEXT): Connection.cpp ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
-DB$(OBJEXT): DB.cpp ../../include/Freeze/DB.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+CatalogData$(OBJEXT): CatalogData.cpp ../../include/Freeze/CatalogData.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+Catalog$(OBJEXT): Catalog.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Freeze/Catalog.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/CatalogData.h
+CatalogIndexList$(OBJEXT): CatalogIndexList.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Freeze/CatalogIndexList.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h
+ConnectionI$(OBJEXT): ConnectionI.cpp ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/TransactionI.h ../Freeze/SharedDbEnv.h ../../include/Freeze/Map.h ../../include/Freeze/Exception.h ../Freeze/MapI.h
+Connection$(OBJEXT): Connection.cpp ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+DB$(OBJEXT): DB.cpp ../../include/Freeze/DB.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
EvictorI$(OBJEXT): EvictorI.cpp ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Config.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Shared.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/Timer.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h ../Freeze/PingObject.h
-EvictorIteratorI$(OBJEXT): EvictorIteratorI.cpp ../Freeze/EvictorIteratorI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h
-EvictorStorage$(OBJEXT): EvictorStorage.cpp ../../include/Freeze/EvictorStorage.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Identity.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ConnectionF.h ../../include/Ice/StreamF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
-Evictor$(OBJEXT): Evictor.cpp ../../include/Freeze/Evictor.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/ServantLocator.h ../../include/Freeze/Exception.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
-Exception$(OBJEXT): Exception.cpp ../../include/Freeze/Exception.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
-IndexI$(OBJEXT): IndexI.cpp ../Freeze/IndexI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h
-Index$(OBJEXT): Index.cpp ../../include/Freeze/Index.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../Freeze/IndexI.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h
-MapI$(OBJEXT): MapI.cpp ../Freeze/MapI.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../Freeze/SharedDb.h ../Freeze/ConnectionI.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../../include/Freeze/CatalogIndexList.h ../../include/IceUtil/UUID.h
-ObjectStore$(OBJEXT): ObjectStore.cpp ../Freeze/ObjectStore.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/EvictorStorage.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../../include/Freeze/Transaction.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/BackgroundSaveEvictorI.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../Freeze/IndexI.h
-PingObject$(OBJEXT): PingObject.cpp ../Freeze/PingObject.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/InstanceF.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/LocalException.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ObjectFactory.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
-SharedDbEnv$(OBJEXT): SharedDbEnv.cpp ../Freeze/SharedDbEnv.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/Exception.h ../Freeze/Util.h ../../include/Freeze/DB.h ../Freeze/SharedDb.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../../include/Freeze/Map.h ../Freeze/TransactionalEvictorContext.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/EvictorStorage.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../Freeze/EvictorIteratorI.h ../../include/IceUtil/DisableWarnings.h
-SharedDb$(OBJEXT): SharedDb.cpp ../Freeze/SharedDb.h ../../include/IceUtil/Config.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/TransactionI.h ../Freeze/SharedDbEnv.h ../../include/Freeze/Map.h ../../include/Freeze/Exception.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../../include/Freeze/CatalogIndexList.h
-TransactionalEvictor$(OBJEXT): TransactionalEvictor.cpp ../../include/Freeze/TransactionalEvictor.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Evictor.h ../../include/Ice/ServantLocator.h ../../include/Freeze/Exception.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+EvictorIteratorI$(OBJEXT): EvictorIteratorI.cpp ../Freeze/EvictorIteratorI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h
+EvictorStorage$(OBJEXT): EvictorStorage.cpp ../../include/Freeze/EvictorStorage.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Identity.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ConnectionF.h ../../include/Ice/StreamF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+Evictor$(OBJEXT): Evictor.cpp ../../include/Freeze/Evictor.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/ServantLocator.h ../../include/Freeze/Exception.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+Exception$(OBJEXT): Exception.cpp ../../include/Freeze/Exception.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+IndexI$(OBJEXT): IndexI.cpp ../Freeze/IndexI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h
+Index$(OBJEXT): Index.cpp ../../include/Freeze/Index.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../Freeze/IndexI.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h
+MapDb$(OBJEXT): MapDb.cpp ../Freeze/MapDb.h ../../include/IceUtil/Config.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/TransactionI.h ../Freeze/SharedDbEnv.h ../../include/Freeze/Map.h ../../include/Freeze/Exception.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../../include/Freeze/CatalogIndexList.h
+MapI$(OBJEXT): MapI.cpp ../Freeze/MapI.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../Freeze/ConnectionI.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../Freeze/SharedDbEnv.h ../Freeze/MapDb.h ../Freeze/Util.h ../../include/Freeze/TransactionHolder.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../../include/Freeze/CatalogIndexList.h ../../include/IceUtil/UUID.h
+ObjectStore$(OBJEXT): ObjectStore.cpp ../Freeze/ObjectStore.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/EvictorStorage.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../../include/Freeze/Transaction.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/BackgroundSaveEvictorI.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../Freeze/IndexI.h
+PingObject$(OBJEXT): PingObject.cpp ../Freeze/PingObject.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/InstanceF.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/LocalException.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ObjectFactory.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+SharedDbEnv$(OBJEXT): SharedDbEnv.cpp ../Freeze/SharedDbEnv.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../Freeze/Util.h ../Freeze/MapDb.h ../Freeze/ConnectionI.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../Freeze/TransactionI.h ../Freeze/TransactionalEvictorContext.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/EvictorStorage.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../Freeze/EvictorIteratorI.h ../../include/IceUtil/DisableWarnings.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../../include/Freeze/CatalogIndexList.h
+TransactionalEvictor$(OBJEXT): TransactionalEvictor.cpp ../../include/Freeze/TransactionalEvictor.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Evictor.h ../../include/Ice/ServantLocator.h ../../include/Freeze/Exception.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/StringConverter.h ../../include/IceUtil/Unicode.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
TransactionalEvictorI$(OBJEXT): TransactionalEvictorI.cpp ../Freeze/TransactionalEvictorI.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Config.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Shared.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/Timer.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/Util.h ../Freeze/TransactionalEvictorContext.h
-TransactionalEvictorContext$(OBJEXT): TransactionalEvictorContext.cpp ../Freeze/TransactionalEvictorContext.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/EvictorStorage.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/TransactionalEvictorI.h ../Freeze/Util.h ../Freeze/ConnectionI.h
-TransactionHolder$(OBJEXT): TransactionHolder.cpp ../../include/Freeze/TransactionHolder.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h
-TransactionI$(OBJEXT): TransactionI.cpp ../Freeze/TransactionI.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Freeze/Transaction.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/SharedDbEnv.h ../../include/Freeze/Exception.h
-Transaction$(OBJEXT): Transaction.cpp ../../include/Freeze/Transaction.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
-Util$(OBJEXT): Util.cpp ../Freeze/Util.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h
+TransactionalEvictorContext$(OBJEXT): TransactionalEvictorContext.cpp ../Freeze/TransactionalEvictorContext.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/TransactionalEvictor.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/EvictorStorage.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Algorithm.h ../../include/IceUtil/ArgVector.h ../../include/IceUtil/Base64.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/MD5.h ../../include/IceUtil/Options.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Random.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/BackgroundSaveEvictor.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../Freeze/TransactionI.h ../Freeze/EvictorIteratorI.h ../Freeze/SharedDbEnv.h ../../include/IceUtil/DisableWarnings.h ../Freeze/TransactionalEvictorI.h ../Freeze/Util.h ../Freeze/ConnectionI.h
+TransactionHolder$(OBJEXT): TransactionHolder.cpp ../../include/Freeze/TransactionHolder.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Freeze/Transaction.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/CommunicatorF.h
+TransactionI$(OBJEXT): TransactionI.cpp ../Freeze/TransactionI.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Freeze/Transaction.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/SharedDbEnv.h ../../include/Freeze/Map.h ../../include/Freeze/Exception.h
+Transaction$(OBJEXT): Transaction.cpp ../../include/Freeze/Transaction.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/IceUtil/Iterator.h ../../include/IceUtil/ScopedArray.h ../../include/IceUtil/DisableWarnings.h
+Util$(OBJEXT): Util.cpp ../Freeze/Util.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyF.h ../../include/Ice/ObjectF.h ../../include/Ice/GCCountMap.h ../../include/Ice/GCShared.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/RequestHandlerF.h ../../include/Ice/EndpointIF.h ../../include/Ice/Endpoint.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/StringConverter.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Protocol.h ../../include/IceUtil/Unicode.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Timer.h ../../include/IceUtil/Thread.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ImplicitContextF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ImplicitContext.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Router.h ../../include/Ice/DispatchInterceptor.h ../../include/Ice/IconvStringConverter.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h
BackgroundSaveEvictor.cpp: ../../../slice/Freeze/BackgroundSaveEvictor.ice ../../../slice/Freeze/Evictor.ice ../../../slice/Ice/ObjectAdapterF.ice ../../../slice/Ice/ServantLocator.ice ../../../slice/Ice/Current.ice ../../../slice/Ice/ConnectionF.ice ../../../slice/Ice/Identity.ice ../../../slice/Freeze/Exception.ice
DB.cpp: ../../../slice/Freeze/DB.ice
CatalogData.cpp: ../../../slice/Freeze/CatalogData.ice
diff --git a/cpp/src/Freeze/Makefile b/cpp/src/Freeze/Makefile
index 62688d1aee1..7c9fa2bd548 100644
--- a/cpp/src/Freeze/Makefile
+++ b/cpp/src/Freeze/Makefile
@@ -31,11 +31,11 @@ OBJS = BackgroundSaveEvictor.o \
Exception.o \
IndexI.o \
Index.o \
+ MapDb.o \
MapI.o \
ObjectStore.o \
PingObject.o \
SharedDbEnv.o \
- SharedDb.o \
TransactionalEvictor.o \
TransactionalEvictorI.o \
TransactionalEvictorContext.o \
diff --git a/cpp/src/Freeze/MapDb.cpp b/cpp/src/Freeze/MapDb.cpp
new file mode 100644
index 00000000000..6b86f95b393
--- /dev/null
+++ b/cpp/src/Freeze/MapDb.cpp
@@ -0,0 +1,478 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Freeze/MapDb.h>
+#include <Freeze/Exception.h>
+#include <Freeze/Util.h>
+#include <Freeze/Catalog.h>
+#include <Freeze/CatalogIndexList.h>
+#include <algorithm>
+
+using namespace std;
+using namespace Ice;
+using namespace Freeze;
+
+namespace
+{
+
+const string _catalogName = "__catalog";
+const string _catalogIndexListName = "__catalogIndexList";
+
+}
+
+extern "C"
+{
+static int customCompare(DB* db, const DBT* dbt1, const DBT* dbt2)
+{
+ MapDb* me = static_cast<MapDb*>(db->app_private);
+ Ice::Byte* first = static_cast<Ice::Byte*>(dbt1->data);
+ Key k1(first, first + dbt1->size);
+ first = static_cast<Ice::Byte*>(dbt2->data);
+ Key k2(first, first + dbt2->size);
+
+ return me->getKeyCompare()->compare(k1, k2);
+}
+}
+
+const string&
+Freeze::catalogName()
+{
+ return _catalogName;
+}
+
+const string&
+Freeze::catalogIndexListName()
+{
+ return _catalogIndexListName;
+}
+
+Freeze::MapDb::~MapDb()
+{
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "closing Db \"" << _dbName << "\"";
+ }
+
+ clearIndices();
+
+ if(get_DB() != 0)
+ {
+ try
+ {
+ close(0);
+ }
+ catch(const ::DbException& dx)
+ {
+ throw DatabaseException(__FILE__, __LINE__, dx.what());
+ }
+ }
+}
+
+Freeze::MapDb::MapDb(const ConnectionIPtr& connection,
+ const string& dbName,
+ const string& key,
+ const string& value,
+ const KeyCompareBasePtr& keyCompare,
+ const vector<MapIndexBasePtr>& indices,
+ bool createDb) :
+ Db(connection->dbEnv()->getEnv(), 0),
+ _communicator(connection->communicator()),
+ _dbName(dbName),
+ _trace(connection->trace()),
+ _keyCompare(keyCompare)
+{
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "opening Db \"" << _dbName << "\"";
+ }
+
+ Catalog catalog(connection, _catalogName);
+
+ TransactionPtr tx = connection->currentTransaction();
+ bool ownTx = (tx == 0);
+
+ for(;;)
+ {
+ try
+ {
+ if(ownTx)
+ {
+ tx = 0;
+ tx = connection->beginTransaction();
+ }
+
+ Catalog::iterator ci = catalog.find(_dbName);
+
+ if(ci != catalog.end())
+ {
+ if(ci->second.evictor)
+ {
+ throw DatabaseException(__FILE__, __LINE__, _dbName + " is an evictor database");
+ }
+
+ _key = ci->second.key;
+ _value = ci->second.value;
+ checkTypes(key, value);
+ }
+ else
+ {
+ _key = key;
+ _value = value;
+ }
+
+ set_app_private(this);
+ if(_keyCompare->compareEnabled())
+ {
+ set_bt_compare(&customCompare);
+ }
+
+ PropertiesPtr properties = _communicator->getProperties();
+ string propPrefix = "Freeze.Map." + _dbName + ".";
+
+ int btreeMinKey = properties->getPropertyAsInt(propPrefix + "BtreeMinKey");
+ if(btreeMinKey > 2)
+ {
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "Setting \"" << _dbName << "\"'s btree minkey to " << btreeMinKey;
+ }
+ set_bt_minkey(btreeMinKey);
+ }
+
+ bool checksum = properties->getPropertyAsInt(propPrefix + "Checksum") > 0;
+ if(checksum)
+ {
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "Turning checksum on for \"" << _dbName << "\"";
+ }
+
+ set_flags(DB_CHKSUM);
+ }
+
+ int pageSize = properties->getPropertyAsInt(propPrefix + "PageSize");
+ if(pageSize > 0)
+ {
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "Setting \"" << _dbName << "\"'s pagesize to " << pageSize;
+ }
+ set_pagesize(pageSize);
+ }
+
+
+ DbTxn* txn = getTxn(tx);
+
+ u_int32_t flags = DB_THREAD;
+ if(createDb)
+ {
+ flags |= DB_CREATE;
+ }
+ open(txn, _dbName.c_str(), 0, DB_BTREE, flags, FREEZE_DB_MODE);
+
+
+ StringSeq oldIndices;
+ StringSeq newIndices;
+ size_t oldSize = 0;
+ CatalogIndexList catalogIndexList(connection, _catalogIndexListName);
+
+ if(createDb)
+ {
+ CatalogIndexList::iterator cil = catalogIndexList.find(_dbName);
+ if(cil != catalogIndexList.end())
+ {
+ oldIndices = cil->second;
+ oldSize = oldIndices.size();
+ }
+ }
+
+ for(vector<MapIndexBasePtr>::const_iterator p = indices.begin();
+ p != indices.end(); ++p)
+ {
+ const MapIndexBasePtr& indexBase = *p;
+ assert(indexBase->_impl == 0);
+ assert(indexBase->_communicator == 0);
+ indexBase->_communicator = connection->communicator();
+
+ auto_ptr<MapIndexI> indexI;
+
+ try
+ {
+ indexI.reset(new MapIndexI(connection, *this, txn, createDb, indexBase));
+ }
+ catch(const DbDeadlockException&)
+ {
+ throw;
+ }
+ catch(const DbException& dx)
+ {
+ string message = "Error while opening index \"" + _dbName +
+ "." + indexBase->name() + "\": " + dx.what();
+
+ throw DatabaseException(__FILE__, __LINE__, message);
+ }
+
+#ifndef NDEBUG
+ bool inserted =
+#endif
+ _indices.insert(IndexMap::value_type(indexBase->name(), indexI.get())).second;
+ assert(inserted);
+
+ indexBase->_impl = indexI.release();
+
+ if(createDb)
+ {
+ newIndices.push_back(indexBase->name());
+ oldIndices.erase(std::remove(oldIndices.begin(), oldIndices.end(), indexBase->name()), oldIndices.end());
+ }
+ }
+
+ if(ci == catalog.end())
+ {
+ CatalogData catalogData;
+ catalogData.evictor = false;
+ catalogData.key = key;
+ catalogData.value = value;
+ catalog.put(Catalog::value_type(_dbName, catalogData));
+ }
+
+ if(createDb)
+ {
+ //
+ // Remove old indices and write the new ones
+ //
+ bool indexRemoved = false;
+
+ for(StringSeq::const_iterator q = oldIndices.begin(); q != oldIndices.end(); ++q)
+ {
+ const string& index = *q;
+
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "removing old index \"" << index << "\" on Db \"" << _dbName << "\"";
+ }
+
+ try
+ {
+ connection->removeMapIndex(_dbName, *q);
+ indexRemoved = true;
+ }
+ catch(const IndexNotFoundException&)
+ {
+ // Ignored
+
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "index \"" << index << "\" on Db \"" << _dbName << "\" does not exist";
+ }
+ }
+ }
+
+ if(indexRemoved || oldSize != newIndices.size())
+ {
+ if(newIndices.size() == 0)
+ {
+ catalogIndexList.erase(_dbName);
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "Removed catalogIndexList entry for Db \"" << _dbName << "\"";
+ }
+
+ }
+ else
+ {
+ catalogIndexList.put(CatalogIndexList::value_type(_dbName, newIndices));
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "Updated catalogIndexList entry for Db \"" << _dbName << "\"";
+ }
+ }
+ }
+ }
+
+ if(ownTx)
+ {
+ tx->commit();
+ }
+ break; // for(;;)
+ }
+ catch(const DbDeadlockException& dx)
+ {
+ if(ownTx)
+ {
+ if(connection->deadlockWarning())
+ {
+ Warning out(connection->communicator()->getLogger());
+ out << "Deadlock in Freeze::MapDb::MapDb on Map \""
+ << _dbName << "\"; retrying ...";
+ }
+
+ //
+ // Ignored, try again
+ //
+ }
+ else
+ {
+ throw DeadlockException(__FILE__, __LINE__, dx.what(), tx);
+ }
+ }
+ catch(const DbException& dx)
+ {
+ if(ownTx)
+ {
+ try
+ {
+ tx->rollback();
+ }
+ catch(...)
+ {
+ }
+ }
+
+ string message = "Error while opening Db \"" + _dbName +
+ "\": " + dx.what();
+
+ throw DatabaseException(__FILE__, __LINE__, message);
+ }
+ catch(...)
+ {
+ if(ownTx && tx != 0)
+ {
+ try
+ {
+ tx->rollback();
+ }
+ catch(...)
+ {
+ }
+ }
+ throw;
+ }
+ }
+}
+
+Freeze::MapDb::MapDb(const Ice::CommunicatorPtr& communicator, const string& dbName, const string& keyTypeId, const string& valueTypeId, DbEnv* env) :
+ Db(env, 0),
+ _communicator(communicator),
+ _dbName(dbName),
+ _key(keyTypeId),
+ _value(valueTypeId),
+ _trace(communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Map"))
+{
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "opening Db \"" << _dbName << "\"";
+ }
+
+ try
+ {
+ PropertiesPtr properties = _communicator->getProperties();
+ string propPrefix = "Freeze.Map." + _dbName + ".";
+
+ int btreeMinKey = properties->getPropertyAsInt(propPrefix + "BtreeMinKey");
+ if(btreeMinKey > 2)
+ {
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "Setting \"" << _dbName << "\"'s btree minkey to " << btreeMinKey;
+ }
+ set_bt_minkey(btreeMinKey);
+ }
+
+ bool checksum = properties->getPropertyAsInt(propPrefix + "Checksum") > 0;
+ if(checksum)
+ {
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "Turning checksum on for \"" << _dbName << "\"";
+ }
+
+ set_flags(DB_CHKSUM);
+ }
+
+ int pageSize = properties->getPropertyAsInt(propPrefix + "PageSize");
+ if(pageSize > 0)
+ {
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.Map");
+ out << "Setting \"" << _dbName << "\"'s pagesize to " << pageSize;
+ }
+ set_pagesize(pageSize);
+ }
+
+ u_int32_t flags = DB_THREAD | DB_CREATE | DB_AUTO_COMMIT;
+ open(0, _dbName.c_str(), 0, DB_BTREE, flags, FREEZE_DB_MODE);
+ }
+ catch(const ::DbException& dx)
+ {
+ throw DatabaseException(__FILE__, __LINE__, dx.what());
+ }
+}
+
+void
+Freeze::MapDb::connectIndices(const vector<MapIndexBasePtr>& indices) const
+{
+ for(vector<MapIndexBasePtr>::const_iterator p = indices.begin();
+ p != indices.end(); ++p)
+ {
+ const MapIndexBasePtr& indexBase = *p;
+ assert(indexBase->_impl == 0);
+
+ IndexMap::const_iterator q = _indices.find(indexBase->name());
+
+ assert(q != _indices.end());
+ indexBase->_impl = q->second;
+ indexBase->_communicator = _communicator;
+ }
+}
+
+void
+Freeze::MapDb::clearIndices()
+{
+ try
+ {
+ for(IndexMap::iterator p = _indices.begin(); p != _indices.end(); ++p)
+ {
+ delete p->second;
+ }
+ }
+ catch(const ::DbException& dx)
+ {
+ throw DatabaseException(__FILE__, __LINE__, dx.what());
+ }
+ _indices.clear();
+}
+
+void
+Freeze::MapDb::checkTypes(const string& key, const string& value) const
+{
+ if(key != _key)
+ {
+ throw DatabaseException(__FILE__, __LINE__,
+ _dbName + "'s key type is " + _key + ", not " + key);
+ }
+ if(value != _value)
+ {
+ throw DatabaseException(__FILE__, __LINE__,
+ _dbName + "'s value type is " + _value + ", not " + value);
+ }
+}
diff --git a/cpp/src/Freeze/MapDb.h b/cpp/src/Freeze/MapDb.h
new file mode 100644
index 00000000000..cf4355385bc
--- /dev/null
+++ b/cpp/src/Freeze/MapDb.h
@@ -0,0 +1,123 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef FREEZE_MAP_DB_H
+#define FREEZE_MAP_DB_H
+
+#include <IceUtil/Config.h>
+#include <db_cxx.h>
+#include <Freeze/ConnectionI.h>
+#include <Freeze/Map.h>
+
+
+namespace Freeze
+{
+
+class SharedDbEnv;
+class MapDb;
+
+class MapIndexI
+{
+public:
+
+ MapIndexI(const ConnectionIPtr&, MapDb&,
+ DbTxn*, bool, const MapIndexBasePtr&);
+
+ ~MapIndexI();
+
+ IteratorHelper* begin(bool, const MapHelperI&) const;
+ IteratorHelper* untypedFind(const Key&, bool, const MapHelperI&, bool) const;
+ IteratorHelper* untypedLowerBound(const Key&, bool, const MapHelperI&) const;
+ IteratorHelper* untypedUpperBound(const Key&, bool, const MapHelperI&) const;
+
+ int untypedCount(const Key&, const ConnectionIPtr&) const;
+
+ int secondaryKeyCreate(Db*, const Dbt*, const Dbt*, Dbt*);
+
+ const std::string& name() const
+ {
+ return _index->name();
+ }
+
+ Db* db() const
+ {
+ return _db.get();
+ }
+
+ const MapIndexBasePtr& getKeyCompare() const
+ {
+ return _index;
+ }
+
+private:
+
+ const MapIndexBasePtr _index;
+ std::auto_ptr<Db> _db;
+ std::string _dbName;
+};
+
+
+//
+// A MapDb represents the Db object underneath Freeze Maps. Several Freeze Maps often
+// share the very same MapDb object; SharedDbEnv manages these shared MapDb objects.
+//
+
+class MapDb : public ::Db
+{
+public:
+
+ MapDb(const ConnectionIPtr&, const std::string&,
+ const std::string&, const std::string&,
+ const KeyCompareBasePtr&, const std::vector<MapIndexBasePtr>&, bool);
+
+
+ //
+ // The constructor for catalogs
+ //
+ MapDb(const Ice::CommunicatorPtr&, const std::string&, const std::string&, const std::string&, DbEnv*);
+
+ ~MapDb();
+
+ void connectIndices(const std::vector<MapIndexBasePtr>&) const;
+ void clearIndices();
+
+ void checkTypes(const std::string&, const std::string&) const;
+
+ const std::string& dbName() const;
+
+ const KeyCompareBasePtr& getKeyCompare() const;
+
+ typedef std::map<std::string, MapIndexI*> IndexMap;
+
+private:
+
+ const Ice::CommunicatorPtr _communicator;
+ const std::string _dbName;
+ std::string _key;
+ std::string _value;
+ const int _trace;
+
+ KeyCompareBasePtr _keyCompare;
+ IndexMap _indices;
+};
+
+inline const std::string&
+MapDb::dbName() const
+{
+ return _dbName;
+}
+
+inline const Freeze::KeyCompareBasePtr&
+MapDb::getKeyCompare() const
+{
+ return _keyCompare;
+}
+
+}
+#endif
diff --git a/cpp/src/Freeze/MapI.cpp b/cpp/src/Freeze/MapI.cpp
index 669db800600..11bf07028cf 100644
--- a/cpp/src/Freeze/MapI.cpp
+++ b/cpp/src/Freeze/MapI.cpp
@@ -8,9 +8,10 @@
// **********************************************************************
#include <Freeze/MapI.h>
+#include <Freeze/MapDb.h>
#include <Freeze/Exception.h>
-#include <Freeze/SharedDb.h>
#include <Freeze/Util.h>
+#include <Freeze/TransactionHolder.h>
#include <Freeze/Catalog.h>
#include <Freeze/CatalogIndexList.h>
#include <IceUtil/UUID.h>
@@ -201,7 +202,7 @@ Freeze::MapHelper::recreate(const Freeze::ConnectionPtr& connection,
Db oldDb(connectionI->dbEnv()->getEnv(), 0);
oldDb.open(txn, oldDbName.c_str(), 0, DB_BTREE, DB_THREAD, FREEZE_DB_MODE);
- SharedDbPtr newDb = SharedDb::create(connectionI, dbName, key, value, keyCompare, indices);
+ auto_ptr<MapDb> newDb(new MapDb(connectionI, dbName, key, value, keyCompare, indices, true));
if(connectionI->trace() >= 2)
{
@@ -1002,7 +1003,7 @@ Freeze::MapHelperI::MapHelperI(const ConnectionIPtr& connection,
const vector<MapIndexBasePtr>& indices,
bool createDb) :
_connection(connection),
- _db(SharedDb::get(connection, dbName, key, value, keyCompare, indices, createDb)),
+ _db(connection->dbEnv()->getSharedMapDb(dbName, key, value, keyCompare, indices, createDb)),
_dbName(dbName),
_trace(connection->trace())
{
@@ -1407,6 +1408,11 @@ Freeze::MapHelperI::destroy()
throw DatabaseException(__FILE__, __LINE__, "This map is closed");
}
+ if(_connection->currentTransaction())
+ {
+ throw DatabaseException(__FILE__, __LINE__, "Cannot destroy map within transaction");
+ }
+
if(_trace >= 1)
{
Trace out(_connection->communicator()->getLogger(), "Freeze.Map");
@@ -1418,23 +1424,14 @@ Freeze::MapHelperI::destroy()
{
indexNames.push_back(p->second->name());
}
-
- close();
-
- TransactionPtr tx = _connection->currentTransaction();
- bool ownTx = (tx == 0);
-
+
+ closeDb();
for(;;)
{
try
{
- if(ownTx)
- {
- tx = 0;
- tx = _connection->beginTransaction();
- }
-
+ TransactionHolder tx(_connection);
DbTxn* txn = _connection->dbTxn();
Catalog catalog(_connection, catalogName());
@@ -1453,61 +1450,27 @@ Freeze::MapHelperI::destroy()
_connection->removeMapIndex(_dbName, *q);
}
- if(ownTx)
- {
- tx->commit();
- }
+ tx.commit();
+
break; // for(;;)
}
catch(const DbDeadlockException& dx)
{
- if(ownTx)
+ if(_connection->deadlockWarning())
{
- if(_connection->deadlockWarning())
- {
- Warning out(_connection->communicator()->getLogger());
- out << "Deadlock in Freeze::MapHelperI::destroy on Map \""
- << _dbName << "\"; retrying ...";
- }
-
- //
- // Ignored, try again
- //
- }
- else
- {
- throw DeadlockException(__FILE__, __LINE__, dx.what(), tx);
+ Warning out(_connection->communicator()->getLogger());
+ out << "Deadlock in Freeze::MapHelperI::destroy on Map \""
+ << _dbName << "\"; retrying ...";
}
+
+ //
+ // Ignored, try again
+ //
}
catch(const DbException& dx)
{
- if(ownTx)
- {
- try
- {
- tx->rollback();
- }
- catch(...)
- {
- }
- }
-
throw DatabaseException(__FILE__, __LINE__, dx.what());
}
- catch(...)
- {
- if(ownTx && tx != 0)
- {
- try
- {
- tx->rollback();
- }
- catch(...)
- {
- }
- }
- throw;
- }
}
}
@@ -1515,9 +1478,6 @@ Freeze::MapHelperI::destroy()
size_t
Freeze::MapHelperI::size() const
{
- //
- // TODO: DB_FAST_STAT doesn't seem to do what the documentation says...
- //
DB_BTREE_STAT* s;
try
@@ -1567,6 +1527,13 @@ Freeze::MapHelperI::index(const string& name) const
}
void
+Freeze::MapHelperI::closeDb()
+{
+ close();
+ _connection->dbEnv()->removeSharedMapDb(_dbName);
+}
+
+void
Freeze::MapHelperI::close()
{
if(_db != 0)
@@ -1583,6 +1550,8 @@ Freeze::MapHelperI::close()
_indices.clear();
}
+
+
void
Freeze::MapHelperI::closeAllIteratorsExcept(const IteratorHelperI::TxPtr& tx) const
{
@@ -1632,7 +1601,7 @@ callback(Db* secondary, const Dbt* key, const Dbt* value, Dbt* result)
return index->secondaryKeyCreate(secondary, key, value, result);
}
-Freeze::MapIndexI::MapIndexI(const ConnectionIPtr& connection, SharedDb& db,
+Freeze::MapIndexI::MapIndexI(const ConnectionIPtr& connection, MapDb& db,
DbTxn* txn, bool createDb, const MapIndexBasePtr& index) :
_index(index)
{
diff --git a/cpp/src/Freeze/MapI.h b/cpp/src/Freeze/MapI.h
index 3623beae33d..51b5910ceba 100644
--- a/cpp/src/Freeze/MapI.h
+++ b/cpp/src/Freeze/MapI.h
@@ -11,11 +11,12 @@
#define FREEZE_MAP_I_H
#include <Freeze/Map.h>
-#include <Freeze/SharedDb.h>
+#include <Freeze/ConnectionI.h>
namespace Freeze
{
+class MapDb;
class MapHelperI;
@@ -146,6 +147,9 @@ public:
virtual const MapIndexBasePtr&
index(const std::string&) const;
+
+ virtual void
+ closeDb();
void
close();
@@ -168,7 +172,7 @@ private:
const ConnectionIPtr _connection;
mutable std::list<IteratorHelperI*> _iteratorList;
- SharedDbPtr _db;
+ MapDb* _db;
const std::string _dbName;
IndexMap _indices;
diff --git a/cpp/src/Freeze/SharedDb.cpp b/cpp/src/Freeze/SharedDb.cpp
deleted file mode 100644
index ab651e267c2..00000000000
--- a/cpp/src/Freeze/SharedDb.cpp
+++ /dev/null
@@ -1,720 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include <Freeze/SharedDb.h>
-#include <IceUtil/StaticMutex.h>
-#include <Freeze/Exception.h>
-#include <Freeze/Util.h>
-#include <Freeze/Catalog.h>
-#include <Freeze/CatalogIndexList.h>
-#include <algorithm>
-
-using namespace std;
-using namespace IceUtil;
-using namespace Ice;
-using namespace Freeze;
-
-namespace
-{
-
-StaticMutex _mapMutex = ICE_STATIC_MUTEX_INITIALIZER;
-StaticMutex _refCountMutex = ICE_STATIC_MUTEX_INITIALIZER;
-
-const string _catalogName = "__catalog";
-const string _catalogIndexListName = "__catalogIndexList";
-
-inline void
-checkTypes(const SharedDb& sharedDb, const string& key, const string& value)
-{
- if(key != sharedDb.key())
- {
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = sharedDb.dbName() + "'s key type is " + sharedDb.key() + ", not " + key;
- throw ex;
- }
- if(value != sharedDb.value())
- {
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = sharedDb.dbName() + "'s value type is " + sharedDb.value() + ", not " + value;
- throw ex;
- }
-}
-}
-
-extern "C"
-{
-static int customCompare(DB* db, const DBT* dbt1, const DBT* dbt2)
-{
- SharedDb* me = static_cast<SharedDb*>(db->app_private);
- Ice::Byte* first = static_cast<Ice::Byte*>(dbt1->data);
- Key k1(first, first + dbt1->size);
- first = static_cast<Ice::Byte*>(dbt2->data);
- Key k2(first, first + dbt2->size);
-
- return me->getKeyCompare()->compare(k1, k2);
-}
-}
-
-Freeze::SharedDb::SharedDbMap* Freeze::SharedDb::sharedDbMap = 0;
-
-const string&
-Freeze::catalogName()
-{
- return _catalogName;
-}
-
-const string&
-Freeze::catalogIndexListName()
-{
- return _catalogIndexListName;
-}
-
-SharedDbPtr
-Freeze::SharedDb::get(const ConnectionIPtr& connection,
- const string& dbName,
- const string& key,
- const string& value,
- const KeyCompareBasePtr& keyCompare,
- const vector<MapIndexBasePtr>& indices,
- bool createDb)
-{
- if(dbName == _catalogName)
- {
- //
- // We don't want to lock the _mapMutex to retrieve the catalog
- //
-
- SharedDbPtr result = connection->dbEnv()->getCatalog();
- checkTypes(*result, key, value);
- return result;
- }
- else if(dbName == _catalogIndexListName)
- {
- SharedDbPtr result = connection->dbEnv()->getCatalogIndexList();
- checkTypes(*result, key, value);
- return result;
- }
-
- StaticMutex::Lock lock(_mapMutex);
-
- if(sharedDbMap == 0)
- {
- sharedDbMap = new SharedDbMap;
- }
-
- MapKey mapKey;
- mapKey.envName = connection->envName();
- mapKey.communicator = connection->communicator();
- mapKey.dbName = dbName;
-
- {
- SharedDbMap::iterator p = sharedDbMap->find(mapKey);
- if(p != sharedDbMap->end())
- {
- checkTypes(*(p->second), key, value);
- p->second->connectIndices(indices);
- return p->second;
- }
- }
-
- //
- // MapKey not found, let's create and open a new Db
- //
-
- //
- // Since we're going to put this SharedDb in the map no matter
- // what, we use our own transaction and connection to do so
- //
-
- ConnectionIPtr insertConnection = new ConnectionI(SharedDbEnv::get(mapKey.communicator, mapKey.envName));
-
-
- auto_ptr<SharedDb> result(new SharedDb(mapKey, key, value, insertConnection,
- keyCompare, indices, createDb));
-
- //
- // Insert it into the map
- //
- pair<SharedDbMap::iterator, bool> insertResult;
- insertResult= sharedDbMap->insert(SharedDbMap::value_type(mapKey, result.get()));
- assert(insertResult.second);
- result->_inMap = true;
-
- return result.release();
-}
-
-SharedDbPtr
-Freeze::SharedDb::create(const ConnectionIPtr& connection,
- const string& dbName,
- const string& key,
- const string& value,
- const KeyCompareBasePtr& keyCompare,
- const vector<MapIndexBasePtr>& indices)
-{
- MapKey mapKey;
- mapKey.envName = connection->envName();
- mapKey.communicator = connection->communicator();
- mapKey.dbName = dbName;
-
- return new SharedDb(mapKey, key, value, connection, keyCompare, indices, true);
-}
-
-void
-Freeze::SharedDb::openCatalogs(SharedDbEnv& dbEnv, SharedDbPtr& catalog, SharedDbPtr& catalogIndexList)
-{
- StaticMutex::Lock lock(_mapMutex);
-
- if(sharedDbMap == 0)
- {
- sharedDbMap = new SharedDbMap;
- }
-
- MapKey mapKey;
- mapKey.envName = dbEnv.getEnvName();
- mapKey.communicator = dbEnv.getCommunicator();
- mapKey.dbName = _catalogName;
-
-
- auto_ptr<SharedDb> newCatalog(new SharedDb(mapKey, CatalogKeyCodec::typeId(),
- CatalogValueCodec::typeId(), dbEnv.getEnv()));
-
- //
- // Insert it into the map
- //
- pair<SharedDbMap::iterator, bool> insertResult
- = sharedDbMap->insert(SharedDbMap::value_type(mapKey, newCatalog.get()));
-
- if(!insertResult.second)
- {
- //
- // That's very wrong
- //
- assert(0);
- throw DatabaseException(__FILE__, __LINE__, "Catalog already opened");
- }
- newCatalog->_inMap = true;
-
- mapKey.dbName = _catalogIndexListName;
-
- auto_ptr<SharedDb> newCatalogIndexList(new SharedDb(mapKey, CatalogIndexListKeyCodec::typeId(),
- CatalogIndexListValueCodec::typeId(), dbEnv.getEnv()));
-
- insertResult
- = sharedDbMap->insert(SharedDbMap::value_type(mapKey, newCatalogIndexList.get()));
-
- if(!insertResult.second)
- {
- assert(0);
- throw DatabaseException(__FILE__, __LINE__, "CatalogIndexList already opened");
- }
- newCatalogIndexList->_inMap = true;
-
-
- catalog = newCatalog.release();
- catalogIndexList = newCatalogIndexList.release();
-}
-
-
-Freeze::SharedDb::~SharedDb()
-{
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "closing Db \"" << _mapKey.dbName << "\"";
- }
-
- cleanup(false);
-}
-
-void Freeze::SharedDb::__incRef()
-{
- if(_trace >= 2)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "incrementing reference count for Db \"" << _mapKey.dbName << "\"";
- }
-
- IceUtil::StaticMutex::Lock lock(_refCountMutex);
- _refCount++;
-}
-
-void Freeze::SharedDb::__decRef()
-{
- if(_trace >= 2)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "removing reference count for Db \"" << _mapKey.dbName << "\"";
- }
-
- IceUtil::StaticMutex::Lock lock(_refCountMutex);
- if(--_refCount == 0)
- {
- IceUtil::StaticMutex::TryLock mapLock(_mapMutex);
- if(!mapLock.acquired())
- {
- MapKey mapKey = _mapKey;
-
- //
- // Reacquire mutex in proper order
- //
- lock.release();
- mapLock.acquire();
- lock.acquire();
-
- if(_inMap)
- {
- //
- // Now, maybe another thread has deleted 'this'; let's check
- // we're still in the map
- //
- if(sharedDbMap == 0)
- {
- return;
- }
-
- SharedDbMap::iterator p = sharedDbMap->find(mapKey);
-
- if(p == sharedDbMap->end() || p->second != this)
- {
- //
- // 'this' has been deleted by another thread
- //
- return;
- }
- }
-
- if(_refCount > 0)
- {
- return;
- }
- }
-
- if(_inMap)
- {
- //
- // Remove from map
- //
-
- size_t one;
- one = sharedDbMap->erase(_mapKey);
- assert(one == 1);
-
- if(sharedDbMap->size() == 0)
- {
- delete sharedDbMap;
- sharedDbMap = 0;
- }
- }
-
- //
- // Keep lock to prevent somebody else to re-open this Db
- // before it's closed.
- //
- delete this;
- }
-}
-
-
-Freeze::SharedDb::SharedDb(const MapKey& mapKey,
- const string& key,
- const string& value,
- const ConnectionIPtr& connection,
- const KeyCompareBasePtr& keyCompare,
- const vector<MapIndexBasePtr>& indices,
- bool createDb) :
- Db(connection->dbEnv()->getEnv(), 0),
- _mapKey(mapKey),
- _refCount(0),
- _trace(connection->trace()),
- _keyCompare(keyCompare),
- _inMap(false)
-{
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "opening Db \"" << _mapKey.dbName << "\"";
- }
-
- Catalog catalog(connection, _catalogName);
-
- TransactionPtr tx = connection->currentTransaction();
- bool ownTx = (tx == 0);
-
- for(;;)
- {
- try
- {
- if(ownTx)
- {
- tx = 0;
- tx = connection->beginTransaction();
- }
-
- Catalog::iterator ci = catalog.find(_mapKey.dbName);
-
- if(ci != catalog.end())
- {
- if(ci->second.evictor)
- {
- throw DatabaseException(__FILE__, __LINE__, _mapKey.dbName + " is an evictor database");
- }
-
- _key = ci->second.key;
- _value = ci->second.value;
- checkTypes(*this, key, value);
- }
- else
- {
- _key = key;
- _value = value;
- }
-
- set_app_private(this);
- if(_keyCompare->compareEnabled())
- {
- set_bt_compare(&customCompare);
- }
-
- Ice::PropertiesPtr properties = _mapKey.communicator->getProperties();
- string propPrefix = "Freeze.Map." + _mapKey.dbName + ".";
-
- int btreeMinKey = properties->getPropertyAsInt(propPrefix + "BtreeMinKey");
- if(btreeMinKey > 2)
- {
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "Setting \"" << _mapKey.dbName << "\"'s btree minkey to " << btreeMinKey;
- }
- set_bt_minkey(btreeMinKey);
- }
-
- bool checksum = properties->getPropertyAsInt(propPrefix + "Checksum") > 0;
- if(checksum)
- {
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "Turning checksum on for \"" << _mapKey.dbName << "\"";
- }
-
- set_flags(DB_CHKSUM);
- }
-
- int pageSize = properties->getPropertyAsInt(propPrefix + "PageSize");
- if(pageSize > 0)
- {
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "Setting \"" << _mapKey.dbName << "\"'s pagesize to " << pageSize;
- }
- set_pagesize(pageSize);
- }
-
-
- DbTxn* txn = getTxn(tx);
-
- u_int32_t flags = DB_THREAD;
- if(createDb)
- {
- flags |= DB_CREATE;
- }
- open(txn, _mapKey.dbName.c_str(), 0, DB_BTREE, flags, FREEZE_DB_MODE);
-
-
- Ice::StringSeq oldIndices;
- Ice::StringSeq newIndices;
- size_t oldSize = 0;
- CatalogIndexList catalogIndexList(connection, _catalogIndexListName);
-
- if(createDb)
- {
- CatalogIndexList::iterator cil = catalogIndexList.find(_mapKey.dbName);
- if(cil != catalogIndexList.end())
- {
- oldIndices = cil->second;
- oldSize = oldIndices.size();
- }
- }
-
- for(vector<MapIndexBasePtr>::const_iterator p = indices.begin();
- p != indices.end(); ++p)
- {
- const MapIndexBasePtr& indexBase = *p;
- assert(indexBase->_impl == 0);
- assert(indexBase->_communicator == 0);
- indexBase->_communicator = connection->communicator();
-
- auto_ptr<MapIndexI> indexI;
-
- try
- {
- indexI.reset(new MapIndexI(connection, *this, txn, createDb, indexBase));
- }
- catch(const DbDeadlockException&)
- {
- throw;
- }
- catch(const DbException& dx)
- {
- string message = "Error while opening index \"" + _mapKey.dbName +
- "." + indexBase->name() + "\": " + dx.what();
-
- throw DatabaseException(__FILE__, __LINE__, message);
- }
-
-#ifndef NDEBUG
- bool inserted =
-#endif
- _indices.insert(IndexMap::value_type(indexBase->name(), indexI.get())).second;
- assert(inserted);
-
- indexBase->_impl = indexI.release();
-
- if(createDb)
- {
- newIndices.push_back(indexBase->name());
- oldIndices.erase(std::remove(oldIndices.begin(), oldIndices.end(), indexBase->name()), oldIndices.end());
- }
- }
-
- if(ci == catalog.end())
- {
- CatalogData catalogData;
- catalogData.evictor = false;
- catalogData.key = key;
- catalogData.value = value;
- catalog.put(Catalog::value_type(_mapKey.dbName, catalogData));
- }
-
- if(createDb)
- {
- //
- // Remove old indices and write the new ones
- //
- bool indexRemoved = false;
-
- for(Ice::StringSeq::const_iterator q = oldIndices.begin(); q != oldIndices.end(); ++q)
- {
- const string& index = *q;
-
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "removing old index \"" << index << "\" on Db \"" << _mapKey.dbName << "\"";
- }
-
- try
- {
- connection->removeMapIndex(_mapKey.dbName, *q);
- indexRemoved = true;
- }
- catch(const IndexNotFoundException&)
- {
- // Ignored
-
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "index \"" << index << "\" on Db \"" << _mapKey.dbName << "\" does not exist";
- }
- }
- }
-
- if(indexRemoved || oldSize != newIndices.size())
- {
- if(newIndices.size() == 0)
- {
- catalogIndexList.erase(_mapKey.dbName);
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "Removed catalogIndexList entry for Db \"" << _mapKey.dbName << "\"";
- }
-
- }
- else
- {
- catalogIndexList.put(CatalogIndexList::value_type(_mapKey.dbName, newIndices));
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "Updated catalogIndexList entry for Db \"" << _mapKey.dbName << "\"";
- }
- }
- }
- }
-
- if(ownTx)
- {
- tx->commit();
- }
- break; // for(;;)
- }
- catch(const DbDeadlockException& dx)
- {
- if(ownTx)
- {
- if(connection->deadlockWarning())
- {
- Warning out(connection->communicator()->getLogger());
- out << "Deadlock in Freeze::SharedDb::SharedDb on Map \""
- << _mapKey.dbName << "\"; retrying ...";
- }
-
- //
- // Ignored, try again
- //
- }
- else
- {
- throw DeadlockException(__FILE__, __LINE__, dx.what(), tx);
- }
- }
- catch(const DbException& dx)
- {
- if(ownTx)
- {
- try
- {
- tx->rollback();
- }
- catch(...)
- {
- }
- }
-
- string message = "Error while opening Db \"" + _mapKey.dbName +
- "\": " + dx.what();
-
- throw DatabaseException(__FILE__, __LINE__, message);
- }
- catch(...)
- {
- if(ownTx && tx != 0)
- {
- try
- {
- tx->rollback();
- }
- catch(...)
- {
- }
- }
- throw;
- }
- }
-}
-
-Freeze::SharedDb::SharedDb(const MapKey& mapKey, const string& keyTypeId, const string& valueTypeId, DbEnv* env) :
- Db(env, 0),
- _mapKey(mapKey),
- _key(keyTypeId),
- _value(valueTypeId),
- _refCount(0),
- _inMap(false)
-{
- _trace = _mapKey.communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Map");
-
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "opening Db \"" << _mapKey.dbName << "\"";
- }
-
- try
- {
- Ice::PropertiesPtr properties = _mapKey.communicator->getProperties();
- string propPrefix = "Freeze.Map." + _mapKey.dbName + ".";
-
- int btreeMinKey = properties->getPropertyAsInt(propPrefix + "BtreeMinKey");
- if(btreeMinKey > 2)
- {
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "Setting \"" << _mapKey.dbName << "\"'s btree minkey to " << btreeMinKey;
- }
- set_bt_minkey(btreeMinKey);
- }
-
- bool checksum = properties->getPropertyAsInt(propPrefix + "Checksum") > 0;
- if(checksum)
- {
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "Turning checksum on for \"" << _mapKey.dbName << "\"";
- }
-
- set_flags(DB_CHKSUM);
- }
-
- int pageSize = properties->getPropertyAsInt(propPrefix + "PageSize");
- if(pageSize > 0)
- {
- if(_trace >= 1)
- {
- Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
- out << "Setting \"" << _mapKey.dbName << "\"'s pagesize to " << pageSize;
- }
- set_pagesize(pageSize);
- }
-
- u_int32_t flags = DB_THREAD | DB_CREATE | DB_AUTO_COMMIT;
- open(0, _mapKey.dbName.c_str(), 0, DB_BTREE, flags, FREEZE_DB_MODE);
- }
- catch(const ::DbException& dx)
- {
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = dx.what();
- throw ex;
- }
-}
-
-void
-Freeze::SharedDb::connectIndices(const vector<MapIndexBasePtr>& indices) const
-{
- for(vector<MapIndexBasePtr>::const_iterator p = indices.begin();
- p != indices.end(); ++p)
- {
- const MapIndexBasePtr& indexBase = *p;
- assert(indexBase->_impl == 0);
-
- IndexMap::const_iterator q = _indices.find(indexBase->name());
- assert(q != _indices.end());
- indexBase->_impl = q->second;
- indexBase->_communicator = _mapKey.communicator;
- }
-}
-
-void
-Freeze::SharedDb::cleanup(bool noThrow)
-{
- try
- {
- for(IndexMap::iterator p = _indices.begin(); p != _indices.end(); ++p)
- {
- delete p->second;
- }
- _indices.clear();
-
- close(0);
- }
- catch(const ::DbException& dx)
- {
- if(!noThrow)
- {
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = dx.what();
- throw ex;
- }
- }
-}
diff --git a/cpp/src/Freeze/SharedDb.h b/cpp/src/Freeze/SharedDb.h
deleted file mode 100644
index 54041265755..00000000000
--- a/cpp/src/Freeze/SharedDb.h
+++ /dev/null
@@ -1,189 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#ifndef FREEZE_SHARED_DB_H
-#define FREEZE_SHARED_DB_H
-
-#include <IceUtil/Config.h>
-#include <db_cxx.h>
-#include <Freeze/ConnectionI.h>
-#include <Freeze/Map.h>
-#include <IceUtil/Handle.h>
-#include <map>
-
-namespace Freeze
-{
-
-class SharedDbEnv;
-
-class SharedDb;
-typedef IceUtil::Handle<SharedDb> SharedDbPtr;
-
-class MapIndexI
-{
-public:
-
- MapIndexI(const ConnectionIPtr&, SharedDb&,
- DbTxn*, bool, const MapIndexBasePtr&);
-
- ~MapIndexI();
-
- IteratorHelper* begin(bool, const MapHelperI&) const;
- IteratorHelper* untypedFind(const Key&, bool, const MapHelperI&, bool) const;
- IteratorHelper* untypedLowerBound(const Key&, bool, const MapHelperI&) const;
- IteratorHelper* untypedUpperBound(const Key&, bool, const MapHelperI&) const;
-
- int untypedCount(const Key&, const ConnectionIPtr&) const;
-
- int
- secondaryKeyCreate(Db*, const Dbt*, const Dbt*, Dbt*);
-
- const std::string name() const
- {
- return _index->name();
- }
-
- Db* db() const
- {
- return _db.get();
- }
-
- const MapIndexBasePtr& getKeyCompare() const
- {
- return _index;
- }
-
-private:
-
- const MapIndexBasePtr _index;
- std::auto_ptr<Db> _db;
- std::string _dbName;
-};
-
-
-class SharedDb : public ::Db
-{
-public:
-
- using Db::get;
-
- static SharedDbPtr get(const ConnectionIPtr&, const std::string&,
- const std::string&, const std::string&,
- const KeyCompareBasePtr&,
- const std::vector<MapIndexBasePtr>&, bool);
-
- //
- // Create a 'private' SharedDb, used by recreate
- // Unlike get above, everything is protected by the connection's transaction
- //
- static SharedDbPtr create(const ConnectionIPtr&, const std::string&,
- const std::string&, const std::string&,
- const KeyCompareBasePtr&,
- const std::vector<MapIndexBasePtr>&);
-
- static void openCatalogs(SharedDbEnv&, SharedDbPtr&, SharedDbPtr&);
-
- ~SharedDb();
-
- void __incRef();
- void __decRef();
-
- const std::string&
- dbName() const;
-
- const std::string&
- key() const;
-
- const std::string&
- value() const;
-
- const KeyCompareBasePtr&
- getKeyCompare() const;
-
-#ifdef __HP_aCC
-
- virtual int
- get(DbTxn *txnid, Dbt *key, Dbt *data, u_int32_t flags)
- {
- return ::Db::get(txnid, key, data, flags);
- }
-#endif
-
- typedef std::map<std::string, MapIndexI*> IndexMap;
-
-private:
-
- struct MapKey
- {
- std::string envName;
- Ice::CommunicatorPtr communicator;
- std::string dbName;
-
- inline bool
- operator<(const MapKey& rhs) const;
- };
-
- typedef std::map<MapKey, Freeze::SharedDb*> SharedDbMap;
-
- SharedDb(const MapKey&, const std::string&, const std::string&,
- const ConnectionIPtr&, const KeyCompareBasePtr&,
- const std::vector<MapIndexBasePtr>&, bool);
-
- SharedDb(const MapKey&, const std::string&, const std::string&, DbEnv*);
-
- void connectIndices(const std::vector<MapIndexBasePtr>&) const;
- void cleanup(bool);
-
- MapKey _mapKey;
- std::string _key;
- std::string _value;
- int _refCount;
- Ice::Int _trace;
-
- KeyCompareBasePtr _keyCompare;
- IndexMap _indices;
- bool _inMap;
-
- static SharedDbMap* sharedDbMap;
-};
-
-inline const std::string&
-SharedDb::dbName() const
-{
- return _mapKey.dbName;
-}
-
-inline const std::string&
-SharedDb::key() const
-{
- return _key;
-}
-
-inline const std::string&
-SharedDb::value() const
-{
- return _value;
-}
-
-inline const Freeze::KeyCompareBasePtr&
-SharedDb::getKeyCompare() const
-{
- return _keyCompare;
-}
-
-inline bool
-SharedDb::MapKey::operator<(const MapKey& rhs) const
-{
- return (communicator < rhs.communicator) ||
- ((communicator == rhs.communicator) && (dbName < rhs.dbName)) ||
- ((communicator == rhs.communicator) && (dbName == rhs.dbName) && (envName < rhs.envName));
-}
-
-}
-#endif
diff --git a/cpp/src/Freeze/SharedDbEnv.cpp b/cpp/src/Freeze/SharedDbEnv.cpp
index 4ab0e365a6e..956dedc94c4 100644
--- a/cpp/src/Freeze/SharedDbEnv.cpp
+++ b/cpp/src/Freeze/SharedDbEnv.cpp
@@ -10,19 +10,21 @@
#include <Freeze/SharedDbEnv.h>
#include <Freeze/Exception.h>
#include <Freeze/Util.h>
-#include <Freeze/SharedDb.h>
+#include <Freeze/MapDb.h>
#include <Freeze/TransactionalEvictorContext.h>
+#include <Freeze/Catalog.h>
+#include <Freeze/CatalogIndexList.h>
#include <IceUtil/IceUtil.h>
#include <cstdlib>
-#include <map>
#include <memory>
using namespace std;
using namespace IceUtil;
using namespace Ice;
+using namespace Freeze;
namespace Freeze
{
@@ -64,15 +66,15 @@ operator<(const MapKey& lhs, const MapKey& rhs)
}
#if DB_VERSION_MAJOR != 4
- #error Freeze requires DB 4.x
+#error Freeze requires DB 4.x
#endif
#if DB_VERSION_MINOR < 3
void
dbErrCallback(const char* prefix, char* msg)
#else
-void
-dbErrCallback(const ::DbEnv* ignored, const char* prefix, const char* msg)
+ void
+ dbErrCallback(const ::DbEnv* ignored, const char* prefix, const char* msg)
#endif
{
const Freeze::SharedDbEnv* env = reinterpret_cast<const Freeze::SharedDbEnv*>(prefix);
@@ -129,42 +131,86 @@ Freeze::SharedDbEnv::get(const CommunicatorPtr& communicator, const string& envN
Freeze::SharedDbEnv::~SharedDbEnv()
{
- if(_trace >= 1)
+ cleanup();
+}
+
+
+Freeze::MapDb*
+Freeze::SharedDbEnv::getSharedMapDb(const string& dbName,
+ const string& key,
+ const string& value,
+ const KeyCompareBasePtr& keyCompare,
+ const vector<MapIndexBasePtr>& indices,
+ bool createDb)
+{
+ //
+ // We don't want to lock to retrieve the catalog or catalog index
+ //
+
+ if(dbName == _catalog->dbName())
{
- Trace out(_communicator->getLogger(), "Freeze.DbEnv");
- out << "closing database environment \"" << _envName << "\"";
+ _catalog->checkTypes(key, value);
+ return _catalog;
+ }
+ else if(dbName == _catalogIndexList->dbName())
+ {
+ _catalogIndexList->checkTypes(key, value);
+ return _catalogIndexList;
}
+
+ IceUtil::Mutex::Lock lock(_mutex);
+
+ SharedDbMap::iterator p = _sharedDbMap.find(dbName);
+ if(p != _sharedDbMap.end())
+ {
+ MapDb* db = p->second;
+ db->checkTypes(key, value);
+ db->connectIndices(indices);
+ return db;
+ }
+
//
- // Release catalogs (to close it)
+ // key not found, let's create and open a new Db
//
- _catalog = 0;
- _catalogIndexList = 0;
//
- // First terminate checkpointing thread
+ // Since we're going to put this SharedDb in the map no matter
+ // what, we use our own transaction and connection to do so
//
- if(_thread != 0)
- {
- _thread->terminate();
- _thread = 0;
- }
- if(_envHolder.get() != 0)
+ ConnectionIPtr insertConnection = new ConnectionI(this);
+
+ auto_ptr<MapDb> result(new MapDb(insertConnection, dbName, key, value,
+ keyCompare, indices, createDb));
+
+ //
+ // Insert it into the map
+ //
+ pair<SharedDbMap::iterator, bool> insertResult;
+ insertResult = _sharedDbMap.insert(SharedDbMap::value_type(dbName, result.get()));
+ assert(insertResult.second);
+
+ return result.release();
+}
+
+
+
+void
+Freeze::SharedDbEnv::removeSharedMapDb(const string& dbName)
+{
+ IceUtil::Mutex::Lock lock(_mutex);
+
+ SharedDbMap::iterator p = _sharedDbMap.find(dbName);
+ if(p != _sharedDbMap.end())
{
- try
- {
- _envHolder->close(0);
- }
- catch(const ::DbException& dx)
- {
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = dx.what();
- throw ex;
- }
+ MapDb* db = p->second;
+ _sharedDbMap.erase(p);
+ delete db;
}
}
+
void Freeze::SharedDbEnv::__incRef()
{
IceUtil::StaticMutex::Lock lock(_refCountMutex);
@@ -305,7 +351,7 @@ Freeze::SharedDbEnv::setCurrentTransaction(const Freeze::TransactionPtr& tx)
if(conn->dbEnv().get() != this)
{
throw DatabaseException(__FILE__, __LINE__, "the given transaction is bound to environment '" +
- conn->dbEnv()->_envName + "'");
+ conn->dbEnv()->_envName + "'");
}
}
@@ -363,6 +409,8 @@ Freeze::SharedDbEnv::SharedDbEnv(const std::string& envName,
_env(env),
_envName(envName),
_communicator(communicator),
+ _catalog(0),
+ _catalogIndexList(0),
_refCount(0)
{
Ice::PropertiesPtr properties = _communicator->getProperties();
@@ -383,39 +431,40 @@ Freeze::SharedDbEnv::SharedDbEnv(const std::string& envName,
_trace = properties->getPropertyAsInt("Freeze.Trace.DbEnv");
- if(_env == 0)
+ try
{
- _envHolder.reset(new DbEnv(0));
- _env = _envHolder.get();
-
- if(_trace >= 1)
- {
- Trace out(_communicator->getLogger(), "Freeze.DbEnv");
- out << "opening database environment \"" << envName << "\"";
- }
-
- string propertyPrefix = string("Freeze.DbEnv.") + envName;
-
- try
+ if(_env == 0)
{
+ _envHolder.reset(new DbEnv(0));
+ _env = _envHolder.get();
+
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.DbEnv");
+ out << "opening database environment \"" << envName << "\"";
+ }
+
+ string propertyPrefix = string("Freeze.DbEnv.") + envName;
+
+
_env->set_errpfx(reinterpret_cast<char*>(this));
-
+
_env->set_errcall(dbErrCallback);
-
+
#ifdef _WIN32
//
// Berkeley DB may use a different C++ runtime
//
_env->set_alloc(::malloc, ::realloc, ::free);
#endif
-
+
//
// Deadlock detection
//
_env->set_lk_detect(DB_LOCK_YOUNGEST);
-
+
u_int32_t flags = DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN;
-
+
if(properties->getPropertyAsInt(propertyPrefix + ".DbRecoverFatal") != 0)
{
flags |= DB_RECOVER_FATAL | DB_CREATE;
@@ -424,19 +473,19 @@ Freeze::SharedDbEnv::SharedDbEnv(const std::string& envName,
{
flags |= DB_RECOVER | DB_CREATE;
}
-
+
if(properties->getPropertyAsIntWithDefault(propertyPrefix + ".DbPrivate", 1) != 0)
{
flags |= DB_PRIVATE;
}
-
-
+
+
//
// Auto delete
//
bool autoDelete = (properties->getPropertyAsIntWithDefault(
propertyPrefix + ".OldLogsAutoDelete", 1) != 0);
-
+
if(autoDelete)
{
_env->set_flags(DB_LOG_AUTOREMOVE, 1);
@@ -451,33 +500,85 @@ Freeze::SharedDbEnv::SharedDbEnv(const std::string& envName,
propertyPrefix + ".DbHome", envName);
_env->open(dbHome.c_str(), flags, FREEZE_DB_MODE);
- }
- catch(const ::DbException& dx)
- {
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = dx.what();
- throw ex;
- }
+
+ //
+ // Default checkpoint period is every 120 seconds
+ //
+ Int checkpointPeriod = properties->getPropertyAsIntWithDefault(
+ propertyPrefix + ".CheckpointPeriod", 120);
+ Int kbyte = properties->getPropertyAsIntWithDefault(propertyPrefix + ".PeriodicCheckpointMinSize", 0);
+ if(checkpointPeriod > 0)
+ {
+ _thread = new CheckpointThread(*this, Time::seconds(checkpointPeriod), kbyte, _trace);
+ }
+ }
+
//
- // Default checkpoint period is every 120 seconds
+ // Get catalogs
//
- Int checkpointPeriod = properties->getPropertyAsIntWithDefault(
- propertyPrefix + ".CheckpointPeriod", 120);
- Int kbyte = properties->getPropertyAsIntWithDefault(propertyPrefix + ".PeriodicCheckpointMinSize", 0);
-
- if(checkpointPeriod > 0)
- {
- _thread = new CheckpointThread(*this, Time::seconds(checkpointPeriod), kbyte, _trace);
- }
+ _catalog = new MapDb(_communicator, catalogName(), CatalogKeyCodec::typeId(), CatalogValueCodec::typeId(), _env);
+ _catalogIndexList = new MapDb(_communicator, catalogIndexListName(),
+ CatalogIndexListKeyCodec::typeId(), CatalogIndexListValueCodec::typeId(), _env);
+
+ }
+ catch(const ::DbException& dx)
+ {
+ cleanup();
+ throw DatabaseException(__FILE__, __LINE__, dx.what());
+ }
+}
+
+void
+Freeze::SharedDbEnv::cleanup()
+{
+ if(_trace >= 1)
+ {
+ Trace out(_communicator->getLogger(), "Freeze.DbEnv");
+ out << "closing database environment \"" << _envName << "\"";
+ }
+
+ //
+ // Close & destroy all MapDbs
+ //
+ for(SharedDbMap::iterator p = _sharedDbMap.begin(); p != _sharedDbMap.end(); ++p)
+ {
+ delete p->second;
+ }
+
+ //
+ // Same for catalogs
+ //
+ delete _catalog;
+ delete _catalogIndexList;
+
+ //
+ // Then terminate checkpointing thread
+ //
+ if(_thread != 0)
+ {
+ _thread->terminate();
+ _thread = 0;
}
//
- // Get catalogs
+ // And finally close env
//
- SharedDb::openCatalogs(*this, _catalog, _catalogIndexList);
+
+ if(_envHolder.get() != 0)
+ {
+ try
+ {
+ _envHolder->close(0);
+ }
+ catch(const ::DbException& dx)
+ {
+ throw DatabaseException(__FILE__, __LINE__, dx.what());
+ }
+ }
}
+
Freeze::CheckpointThread::CheckpointThread(SharedDbEnv& dbEnv, const Time& checkpointPeriod, Int kbyte, Int trace) :
_dbEnv(dbEnv),
_done(false),
diff --git a/cpp/src/Freeze/SharedDbEnv.h b/cpp/src/Freeze/SharedDbEnv.h
index ebbf0129653..b3717acf405 100644
--- a/cpp/src/Freeze/SharedDbEnv.h
+++ b/cpp/src/Freeze/SharedDbEnv.h
@@ -10,10 +10,11 @@
#ifndef FREEZE_SHARED_DB_ENV_H
#define FREEZE_SHARED_DB_ENV_H
-#include <Ice/Config.h>
+#include <Freeze/Map.h>
#include <Ice/Ice.h>
-#include <IceUtil/Handle.h>
#include <db_cxx.h>
+#include <map>
+#include <list>
namespace Freeze
{
@@ -24,12 +25,14 @@ typedef IceUtil::Handle<CheckpointThread> CheckpointThreadPtr;
class SharedDbEnv;
typedef IceUtil::Handle<SharedDbEnv> SharedDbEnvPtr;
-class SharedDb;
-typedef IceUtil::Handle<SharedDb> SharedDbPtr;
+class MapDb;
class Transaction;
typedef IceInternal::Handle<Transaction> TransactionPtr;
+class ConnectionI;
+typedef IceUtil::Handle<ConnectionI> ConnectionIPtr;
+
class TransactionalEvictorContext;
typedef IceUtil::Handle<TransactionalEvictorContext> TransactionalEvictorContextPtr;
@@ -41,6 +44,18 @@ public:
~SharedDbEnv();
+ //
+ // Returns a shared map Db; the caller should NOT close/delete this Db.
+ //
+ MapDb* getSharedMapDb(const std::string&,const std::string&, const std::string&,
+ const KeyCompareBasePtr&, const std::vector<MapIndexBasePtr>&, bool);
+
+ //
+ // Tell SharedDbEnv to close and remove this Shared Db from the map
+ //
+ void removeSharedMapDb(const std::string&);
+
+
void __incRef();
void __decRef();
@@ -54,18 +69,20 @@ public:
DbEnv* getEnv() const;
const std::string& getEnvName() const;
const Ice::CommunicatorPtr& getCommunicator() const;
- const SharedDbPtr& getCatalog() const;
- const SharedDbPtr& getCatalogIndexList() const;
+
+ typedef std::map<std::string, MapDb*> SharedDbMap;
private:
SharedDbEnv(const std::string&, const Ice::CommunicatorPtr&, DbEnv* env);
+ void cleanup();
+
DbEnv* _env;
std::auto_ptr<DbEnv> _envHolder;
const std::string _envName;
const Ice::CommunicatorPtr _communicator;
- SharedDbPtr _catalog;
- SharedDbPtr _catalogIndexList;
+ MapDb* _catalog;
+ MapDb* _catalogIndexList;
int _refCount;
int _trace;
@@ -75,8 +92,10 @@ private:
DWORD _tsdKey;
#else
pthread_key_t _tsdKey;
-#endif
+#endif
+ SharedDbMap _sharedDbMap;
+ IceUtil::Mutex _mutex;
};
inline DbEnv*
@@ -97,18 +116,5 @@ SharedDbEnv::getCommunicator() const
return _communicator;
}
-inline const SharedDbPtr&
-SharedDbEnv::getCatalog() const
-{
- return _catalog;
-}
-
-inline const SharedDbPtr&
-SharedDbEnv::getCatalogIndexList() const
-{
- return _catalogIndexList;
-}
-
-
}
#endif
diff --git a/cpp/test/Freeze/dbmap/Client.cpp b/cpp/test/Freeze/dbmap/Client.cpp
index bde074f2c69..1b1c2387c78 100644
--- a/cpp/test/Freeze/dbmap/Client.cpp
+++ b/cpp/test/Freeze/dbmap/Client.cpp
@@ -203,8 +203,20 @@ private:
int
run(const CommunicatorPtr& communicator, const string& envName)
{
- const string dbName = "binary";
Freeze::ConnectionPtr connection = createConnection(communicator, envName);
+ const string dbName = "binary";
+
+ //
+ // Open/close db within transaction
+ //
+ {
+ TransactionHolder txHolder(connection);
+ ByteIntMap m1(connection, dbName);
+
+ m1.put((ByteIntMap::value_type('a', 1)));
+ // rollback in dtor of txHolder
+ }
+
ByteIntMap m1(connection, dbName);
//
@@ -654,6 +666,7 @@ run(const CommunicatorPtr& communicator, const string& envName)
}
}
txHolder.commit();
+ iim.closeDb();
}
{
diff --git a/java/demo/Freeze/transform/README b/java/demo/Freeze/transform/README
index b0abd0de942..6bcdd5b4ebd 100644
--- a/java/demo/Freeze/transform/README
+++ b/java/demo/Freeze/transform/README
@@ -67,7 +67,7 @@ Running the demo
$ transformdb --old ContactData.ice --new NewContactData.ice \
-f transform.xml db dbnew
- - read the transformend contacts map:
+ - read the transformed contacts map:
$ java ReadNew
You'll notice the sort order (looks random), and the corrupt
index. The index is actually created by ReadNew when it opens
diff --git a/java/src/Freeze/Map.java b/java/src/Freeze/Map.java
index 1977865c6e4..131cc48ef5f 100644
--- a/java/src/Freeze/Map.java
+++ b/java/src/Freeze/Map.java
@@ -20,6 +20,7 @@ public abstract class Map extends java.util.AbstractMap
boolean createDb, java.util.Comparator comparator)
{
_connection = (ConnectionI)connection;
+ _dbName = dbName;
_comparator = (comparator == null) ? null : new Comparator(comparator);
_errorPrefix = "Freeze DB DbEnv(\"" + _connection.envName() + "\") Db(\"" + dbName + "\"): ";
@@ -32,6 +33,7 @@ public abstract class Map extends java.util.AbstractMap
Map(Connection connection, String dbName, java.util.Comparator comparator)
{
_connection = (ConnectionI)connection;
+ _dbName = dbName;
_comparator = (comparator == null) ? null : new Comparator(comparator);
_errorPrefix = "Freeze DB DbEnv(\"" + _connection.envName() + "\") Db(\"" + dbName + "\"): ";
@@ -48,7 +50,7 @@ public abstract class Map extends java.util.AbstractMap
if(dbName.equals(Util.catalogName()) || dbName.equals(Util.catalogIndexListName()))
{
- throw new DatabaseException(errorPrefix(envName, dbName) + "You cannot destroy recreate the \""
+ throw new DatabaseException(errorPrefix(envName, dbName) + "You cannot recreate the \""
+ dbName + "\" database");
}
@@ -65,7 +67,7 @@ public abstract class Map extends java.util.AbstractMap
com.sleepycat.db.DatabaseEntry valueEntry = new com.sleepycat.db.DatabaseEntry();
com.sleepycat.db.Database oldDb = null;
- SharedDb newDb = null;
+ MapDb newDb = null;
for(;;)
{
@@ -123,7 +125,7 @@ public abstract class Map extends java.util.AbstractMap
oldDb = connection.dbEnv().getEnv().openDatabase(txn, oldDbName, null, oldDbConfig);
- newDb = SharedDb.create(connection, dbName, key, value, indices, map._comparator, indexComparators);
+ newDb = new MapDb(connection, dbName, key, value, map._comparator, indices, indexComparators, true);
map.init(newDb, indices);
@@ -259,13 +261,12 @@ public abstract class Map extends java.util.AbstractMap
init(Freeze.Map.Index[] indices, String dbName,
String key, String value, boolean createDb, java.util.Map indexComparators)
{
- init(SharedDb.get(_connection, dbName, key,
- value, indices, createDb, _comparator,
- indexComparators), indices);
+ init(_connection.dbEnv().getSharedMapDb(dbName, key, value, _comparator, indices, indexComparators, createDb),
+ indices);
}
protected void
- init(SharedDb db, Freeze.Map.Index[] indices)
+ init(MapDb db, Freeze.Map.Index[] indices)
{
_db = db;
_token = _connection.registerMap(this);
@@ -286,6 +287,13 @@ public abstract class Map extends java.util.AbstractMap
close(false);
}
+ public void
+ closeDb()
+ {
+ close(false);
+ _connection.dbEnv().removeSharedMapDb(_dbName);
+ }
+
//
// SortedMap methods
//
@@ -851,27 +859,24 @@ public abstract class Map extends java.util.AbstractMap
throw new DatabaseException(_errorPrefix + "You cannot destroy the \"" + dbName + "\" database");
}
+ if(_connection.currentTransaction() != null)
+ {
+ throw new DatabaseException(_errorPrefix + "You cannot destroy a database within an active transaction");
+ }
+
if(_trace >= 1)
{
_connection.communicator().getLogger().trace("Freeze.Map", "destroying \"" + dbName + "\"");
}
-
- close();
-
- Transaction tx = _connection.currentTransaction();
- boolean ownTx = (tx == null);
+ closeDb();
for(;;)
{
+ Transaction tx = null;
try
{
- if(ownTx)
- {
- tx = null;
- tx = _connection.beginTransaction();
- }
-
+ tx = _connection.beginTransaction();
com.sleepycat.db.Transaction txn = _connection.dbTxn();
@@ -892,67 +897,44 @@ public abstract class Map extends java.util.AbstractMap
}
- if(ownTx)
- {
- tx.commit();
- }
+ tx.commit();
+
break; // for(;;)
}
catch(java.io.FileNotFoundException dx)
{
- if(ownTx)
+ try
{
- if(ownTx)
- {
- try
- {
- tx.rollback();
- }
- catch(DatabaseException e)
- {
- }
- }
+ tx.rollback();
}
-
+ catch(DatabaseException e)
+ {
+ }
+
DatabaseException e = new DatabaseException(_errorPrefix + "file not found");
e.initCause(dx);
throw e;
}
catch(com.sleepycat.db.DeadlockException dx)
{
- if(ownTx)
- {
- if(_connection.deadlockWarning())
- {
- _connection.communicator().getLogger().warning("Deadlock in Freeze.Map.destroy on Db \"" +
- dbName + "\"; retrying...");
- }
-
- //
- // Ignored, try again
- //
- }
- else
+ if(_connection.deadlockWarning())
{
- DeadlockException e = new DeadlockException(_errorPrefix + dx.getMessage(), tx);
- e.initCause(dx);
- throw e;
+ _connection.communicator().getLogger().warning("Deadlock in Freeze.Map.destroy on Db \"" +
+ dbName + "\"; retrying...");
}
+
+ //
+ // Ignored, try again
+ //
}
catch(com.sleepycat.db.DatabaseException dx)
- {
- if(ownTx)
+ {
+ try
+ {
+ tx.rollback();
+ }
+ catch(DatabaseException e)
{
- if(ownTx)
- {
- try
- {
- tx.rollback();
- }
- catch(DatabaseException e)
- {
- }
- }
}
DatabaseException e = new DatabaseException(_errorPrefix + dx.getMessage());
@@ -960,17 +942,15 @@ public abstract class Map extends java.util.AbstractMap
throw e;
}
catch(RuntimeException rx)
- {
- if(ownTx && tx != null)
+ {
+ try
{
- try
- {
- tx.rollback();
- }
- catch(DatabaseException e)
- {
- }
+ tx.rollback();
}
+ catch(DatabaseException e)
+ {
+ }
+
throw rx;
}
}
@@ -1011,10 +991,9 @@ public abstract class Map extends java.util.AbstractMap
{
if(_db != null)
{
- closeAllIteratorsExcept(null, finalizing);
try
{
- _db.close();
+ closeAllIteratorsExcept(null, finalizing);
}
finally
{
@@ -1563,7 +1542,7 @@ public abstract class Map extends java.util.AbstractMap
void close()
{
//
- // close() is called by SharedDb only on the "main" index
+ // close() is called by MapDb only on the "main" index
// (the one that was associated)
//
@@ -2501,9 +2480,10 @@ public abstract class Map extends java.util.AbstractMap
protected ConnectionI _connection;
private final Comparator _comparator;
+ private final String _dbName;
protected java.util.Iterator _token;
- protected SharedDb _db;
+ protected MapDb _db;
protected String _errorPrefix;
protected int _trace;
diff --git a/java/src/Freeze/MapDb.java b/java/src/Freeze/MapDb.java
new file mode 100755
index 00000000000..8579b670870
--- /dev/null
+++ b/java/src/Freeze/MapDb.java
@@ -0,0 +1,433 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package Freeze;
+
+//
+// A MapDb represents the Db object underneath Freeze Maps. Several Freeze Maps often
+// share the very same MapDb object; SharedDbEnv manages these shared MapDb objects.
+//
+
+class MapDb
+{
+
+ MapDb(ConnectionI connection, String dbName, String key, String value,
+ java.util.Comparator comparator, Map.Index[] indices, java.util.Map indexComparators,
+ boolean createDb)
+ {
+ _communicator = connection.communicator();
+ _dbName = dbName;
+ _errorPrefix = "Freeze DB DbEnv(\"" + connection.dbEnv().getEnvName() + "\") Db(\"" + dbName + "\"): ";
+ _indices = indices;
+ _trace = connection.trace();
+
+ Catalog catalog = new Catalog(connection, Util.catalogName(), true);
+ CatalogData catalogData = (CatalogData)catalog.get(_dbName);
+ if(catalogData != null)
+ {
+ if(catalogData.evictor)
+ {
+ throw new DatabaseException(_errorPrefix + "is not an evictor");
+ }
+ _key = catalogData.key;
+ _value = catalogData.value;
+ checkTypes(key, value);
+ }
+ else
+ {
+ _key = key;
+ _value = value;
+ }
+
+ com.sleepycat.db.DatabaseConfig config = new com.sleepycat.db.DatabaseConfig();
+
+
+ config.setAllowCreate(createDb);
+ config.setType(com.sleepycat.db.DatabaseType.BTREE);
+
+ if(comparator != null)
+ {
+ config.setBtreeComparator(comparator);
+ }
+ Ice.Properties properties = _communicator.getProperties();
+ String propPrefix = "Freeze.Map." + _dbName + ".";
+
+ int btreeMinKey = properties.getPropertyAsInt(propPrefix + "BtreeMinKey");
+ if(btreeMinKey > 2)
+ {
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace(
+ "Freeze.Map", "Setting \"" + _dbName + "\"'s btree minkey to " + btreeMinKey);
+ }
+ config.setBtreeMinKey(btreeMinKey);
+ }
+
+ boolean checksum = properties.getPropertyAsInt(propPrefix + "Checksum") > 0;
+ if(checksum)
+ {
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace(
+ "Freeze.Map", "Turning checksum on for \"" + _dbName + "\"");
+ }
+
+ config.setChecksum(true);
+ }
+
+ int pageSize = properties.getPropertyAsInt(propPrefix + "PageSize");
+ if(pageSize > 0)
+ {
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace(
+ "Freeze.Map", "Setting \"" + _dbName + "\"'s pagesize to " + pageSize);
+ }
+ config.setPageSize(pageSize);
+ }
+
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace("Freeze.Map", "opening Db \"" + _dbName + "\"");
+ }
+
+ Transaction tx = connection.currentTransaction();
+ boolean ownTx = (tx == null);
+
+ for(;;)
+ {
+ try
+ {
+ if(ownTx)
+ {
+ tx = null;
+ tx = connection.beginTransaction();
+ }
+
+ com.sleepycat.db.Transaction txn = Util.getTxn(tx);
+
+ _db = connection.dbEnv().getEnv().openDatabase(txn, _dbName, null, config);
+
+ String[] oldIndices = null;
+ java.util.List<String> newIndices = new java.util.LinkedList<String>();
+
+ CatalogIndexList catalogIndexList = new CatalogIndexList(connection, Util.catalogIndexListName(), true);
+
+ if(createDb)
+ {
+ oldIndices = (String[])catalogIndexList.get(_dbName);
+ }
+
+
+ if(_indices != null)
+ {
+ for(int i = 0; i < _indices.length; ++i)
+ {
+ String indexName = _indices[i].name();
+
+ java.util.Comparator indexComparator = null;
+ if(indexComparators != null)
+ {
+ indexComparator = (java.util.Comparator)indexComparators.get(indexName);
+ }
+
+ _indices[i].associate(_dbName, _db, txn, createDb, indexComparator);
+
+ if(createDb)
+ {
+ if(oldIndices != null)
+ {
+ int j = java.util.Arrays.asList(oldIndices).indexOf(indexName);
+ if(j != -1)
+ {
+ oldIndices[j] = null;
+ }
+ }
+ newIndices.add(indexName);
+ }
+ }
+ }
+
+ if(catalogData == null)
+ {
+ catalogData = new CatalogData();
+ catalogData.evictor = false;
+ catalogData.key = key;
+ catalogData.value = value;
+ catalog.put(_dbName, catalogData);
+ }
+
+ if(createDb)
+ {
+ boolean indexRemoved = false;
+
+ if(oldIndices != null)
+ {
+ //
+ // Remove old indices and write the new ones
+ //
+ for(int i = 0; i < oldIndices.length; ++i)
+ {
+ String index = oldIndices[i];
+ if(index != null)
+ {
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace(
+ "Freeze.Map", "removing old index \"" + index + "\" on Db \"" + _dbName + "\"");
+ }
+
+ indexRemoved = true;
+
+ try
+ {
+ connection.removeMapIndex(_dbName, index);
+ }
+ catch(IndexNotFoundException ife)
+ {
+ // Ignored
+
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace(
+ "Freeze.Map", "index \"" + index + "\" on Db \"" + _dbName + "\" does not exist");
+ }
+ }
+ }
+ }
+ }
+
+ int oldSize = oldIndices == null ? 0 : oldIndices.length;
+
+ if(indexRemoved || newIndices.size() != oldSize)
+ {
+ if(newIndices.size() == 0)
+ {
+ catalogIndexList.remove(_dbName);
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace(
+ "Freeze.Map", "Removed catalogIndexList entry for Db \"" + _dbName + "\"");
+ }
+
+ }
+ else
+ {
+ catalogIndexList.put(_dbName, newIndices.toArray(new String[0]));
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace(
+ "Freeze.Map", "Updated catalogIndexList entry for Db \"" + _dbName + "\"");
+ }
+ }
+ }
+ }
+
+ if(ownTx)
+ {
+ try
+ {
+ tx.commit();
+ }
+ finally
+ {
+ tx = null;
+ }
+ }
+ break; // for(;;)
+ }
+ catch(java.io.FileNotFoundException dx)
+ {
+ clearIndices();
+ NotFoundException ex = new NotFoundException();
+ ex.initCause(dx);
+ ex.message = _errorPrefix + "Db.open: " + dx.getMessage();
+ throw ex;
+ }
+ catch(com.sleepycat.db.DeadlockException dx)
+ {
+ if(ownTx)
+ {
+ if(connection.deadlockWarning())
+ {
+ connection.communicator().getLogger().warning(
+ "Deadlock in Freeze.Shared.Shared on Db \""
+ + _dbName + "\"; retrying ...");
+ }
+ tx = null;
+ }
+ else
+ {
+ clearIndices();
+ DeadlockException ex = new DeadlockException(_errorPrefix + "Db.open: " + dx.getMessage(), tx);
+ ex.initCause(dx);
+ throw ex;
+ }
+ }
+ catch(com.sleepycat.db.DatabaseException dx)
+ {
+ clearIndices();
+ DatabaseException ex = new DatabaseException();
+ ex.initCause(dx);
+ ex.message = _errorPrefix + "Db.open: " + dx.getMessage();
+ throw ex;
+ }
+ finally
+ {
+ if(ownTx && tx != null)
+ {
+ try
+ {
+ tx.rollback();
+ }
+ catch(DatabaseException de)
+ {
+ }
+ }
+ }
+ }
+ }
+
+
+ //
+ // The constructor for catalogs
+ //
+
+ MapDb(Ice.Communicator communicator, String envName, String dbName, String key, String value,
+ com.sleepycat.db.Environment dbEnv)
+ throws com.sleepycat.db.DatabaseException
+ {
+ _communicator = communicator;
+ _dbName = dbName;
+ _errorPrefix = "Freeze DB DbEnv(\"" + envName + "\") Db(\"" + dbName + "\"): ";
+ _key = key;
+ _value = value;
+ _trace = _communicator.getProperties().getPropertyAsInt("Freeze.Trace.Map");
+
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace("Freeze.Map", "opening Db \"" + _dbName + "\"");
+ }
+
+ com.sleepycat.db.DatabaseConfig config = new com.sleepycat.db.DatabaseConfig();
+ config.setAllowCreate(true);
+ config.setType(com.sleepycat.db.DatabaseType.BTREE);
+ config.setTransactional(true);
+
+ try
+ {
+ _db = dbEnv.openDatabase(null, _dbName, null, config);
+ }
+ catch(java.io.FileNotFoundException dx)
+ {
+ //
+ // This should never happen
+ //
+ NotFoundException ex = new NotFoundException();
+ ex.initCause(dx);
+ ex.message = _errorPrefix + "Db.open: " + dx.getMessage();
+ throw ex;
+ }
+ }
+
+ void close()
+ {
+ if(_trace >= 1)
+ {
+ _communicator.getLogger().trace("Freeze.Map", "closing Db \"" + _dbName + "\"");
+ }
+
+ clearIndices();
+
+ if(_db != null)
+ {
+ try
+ {
+ _db.close();
+ }
+ catch(com.sleepycat.db.DatabaseException dx)
+ {
+ DatabaseException ex = new DatabaseException();
+ ex.initCause(dx);
+ ex.message = _errorPrefix + "close: " + dx.getMessage();
+ throw ex;
+ }
+ finally
+ {
+ _db = null;
+ }
+ }
+ }
+
+
+ void
+ connectIndices(Map.Index[] indices)
+ {
+ if(indices != null)
+ {
+ assert(_indices != null && indices.length == _indices.length);
+
+ for(int i = 0; i < indices.length; ++i)
+ {
+ indices[i].init(_indices[i]);
+ }
+ }
+ }
+
+ void
+ clearIndices()
+ {
+ if(_indices != null)
+ {
+ for(int i = 0; i < _indices.length; ++i)
+ {
+ _indices[i].close();
+ }
+ _indices = null;
+ }
+ }
+
+
+ com.sleepycat.db.Database
+ db()
+ {
+ return _db;
+ }
+
+ String
+ dbName()
+ {
+ return _dbName;
+ }
+
+ void
+ checkTypes(String key, String value)
+ {
+ if(!key.equals(_key))
+ {
+ throw new DatabaseException(_errorPrefix + _dbName + "'s key type is " + _key +
+ ", not " + key);
+ }
+
+ if(!value.equals(_value))
+ {
+ throw new DatabaseException(_errorPrefix + _dbName + "'s value type is " + _value +
+ ", not " + value);
+ }
+ }
+
+ private com.sleepycat.db.Database _db;
+ private final Ice.Communicator _communicator;
+ private final String _dbName;
+ private final String _errorPrefix;
+ private String _key;
+ private String _value;
+ private final int _trace;
+ private Map.Index[] _indices;
+}
diff --git a/java/src/Freeze/SharedDb.java b/java/src/Freeze/SharedDb.java
deleted file mode 100755
index b8fa5eaad2c..00000000000
--- a/java/src/Freeze/SharedDb.java
+++ /dev/null
@@ -1,622 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package Freeze;
-
-class SharedDb
-{
- public static SharedDb
- get(ConnectionI connection, String dbName, String key, String value,
- Map.Index[] indices, boolean createDb, java.util.Comparator comparator,
- java.util.Map indexComparators)
- {
- MapKey mapKey = new MapKey(connection.envName(), connection.communicator(), dbName);
-
- if(dbName.equals(Util.catalogName()))
- {
- //
- // We don't want to lock the _map to retrieve the catalog
- //
- SharedDb result = connection.dbEnv().getCatalog();
- checkTypes(result, key, value);
- result._refCount++;
- return result;
- }
- else if(dbName.equals(Util.catalogIndexListName()))
- {
- SharedDb result = connection.dbEnv().getCatalogIndexList();
- checkTypes(result, key, value);
- result._refCount++;
- return result;
- }
-
- synchronized(_map)
- {
- SharedDb result = (SharedDb)_map.get(mapKey);
- if(result == null)
- {
- ConnectionI insertConnection = (ConnectionI)Util.createConnection(mapKey.communicator, mapKey.envName);
-
- try
- {
- result = new SharedDb(mapKey, key, value, insertConnection,
- indices, createDb, comparator, indexComparators);
- }
- finally
- {
- insertConnection.close();
- }
-
- Object previousValue = _map.put(mapKey, result);
- assert(previousValue == null);
- result._inMap = true;
- }
- else
- {
- checkTypes(result, key, value);
- result.connectIndices(indices);
- result._refCount++;
- }
- return result;
- }
- }
-
- public static SharedDb
- create(ConnectionI connection, String dbName, String key, String value,
- Map.Index[] indices, java.util.Comparator comparator,
- java.util.Map indexComparators)
- {
-
- MapKey mapKey = new MapKey(connection.envName(), connection.communicator(), dbName);
-
- return new SharedDb(mapKey, key, value, connection,
- indices, true, comparator, indexComparators);
-
- }
-
- public static SharedDb[]
- openCatalogs(SharedDbEnv dbEnv)
- {
- MapKey catalogMapKey = new MapKey(dbEnv.getEnvName(), dbEnv.getCommunicator(), Util.catalogName());
- MapKey catalogIndexListMapKey =
- new MapKey(dbEnv.getEnvName(), dbEnv.getCommunicator(), Util.catalogIndexListName());
-
- synchronized(_map)
- {
- SharedDb[] result = new SharedDb[2];
-
- if(_map.get(catalogMapKey) != null)
- {
- throw new DatabaseException(errorPrefix(catalogMapKey) + "Catalog already opened");
- }
-
- if(_map.get(catalogIndexListMapKey) != null)
- {
- throw new DatabaseException(errorPrefix(catalogIndexListMapKey) + "Catalog already opened");
- }
-
- try
- {
- result[0] = new SharedDb(catalogMapKey, "string", "::Freeze::CatalogData", dbEnv.getEnv());
- }
- catch(com.sleepycat.db.DatabaseException dx)
- {
- DatabaseException ex = new DatabaseException(errorPrefix(catalogMapKey)
- + "creation: " + dx.getMessage());
- ex.initCause(dx);
- throw ex;
- }
-
- try
- {
- result[1] = new SharedDb(catalogIndexListMapKey, "string", "::Ice::StringSeq", dbEnv.getEnv());
- }
- catch(com.sleepycat.db.DatabaseException dx)
- {
- DatabaseException ex = new DatabaseException(errorPrefix(catalogIndexListMapKey)
- + "creation: " + dx.getMessage());
- ex.initCause(dx);
- throw ex;
- }
-
- Object previousValue = _map.put(catalogMapKey, result[0]);
- assert(previousValue == null);
- result[0]._inMap = true;
- previousValue = _map.put(catalogIndexListMapKey, result[1]);
- assert(previousValue == null);
- result[1]._inMap = true;
-
- return result;
- }
- }
-
- public com.sleepycat.db.Database
- db()
- {
- return _db;
- }
-
- public String
- dbName()
- {
- return _mapKey.dbName;
- }
-
- public void
- close()
- {
- synchronized(_map)
- {
- if(--_refCount == 0)
- {
-
- if(_inMap)
- {
- //
- // Remove from map
- //
-
- Object value = _map.remove(_mapKey);
- assert(value == this);
- }
-
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace("Freeze.Map", "closing Db \"" + _mapKey.dbName + "\"");
- }
-
- //
- // Keep lock to prevent somebody else from re-opening this Db
- // before it's closed.
- //
- try
- {
- cleanupIndices();
-
- _db.close();
- }
- catch(com.sleepycat.db.DatabaseException dx)
- {
- DatabaseException ex = new DatabaseException();
- ex.initCause(dx);
- ex.message = errorPrefix(_mapKey) + "close: " + dx.getMessage();
- throw ex;
- }
- }
- }
- }
-
- protected void
- finalize()
- {
- assert(_refCount == 0);
- }
-
- private SharedDb(MapKey mapKey, String key, String value, ConnectionI connection, Map.Index[] indices,
- boolean createDb, java.util.Comparator comparator, java.util.Map indexComparators)
- {
- _mapKey = mapKey;
- _indices = indices;
- _trace = connection.trace();
-
-
- Catalog catalog = new Catalog(connection, Util.catalogName(), true);
- CatalogData catalogData = (CatalogData)catalog.get(_mapKey.dbName);
- if(catalogData != null)
- {
- if(catalogData.evictor)
- {
- DatabaseException ex = new DatabaseException();
- ex.message = errorPrefix(_mapKey) + "is not an evictor";
- throw ex;
- }
- _key = catalogData.key;
- _value = catalogData.value;
- checkTypes(this, key, value);
- }
- else
- {
- _key = key;
- _value = value;
- }
-
- com.sleepycat.db.DatabaseConfig config = new com.sleepycat.db.DatabaseConfig();
-
-
- config.setAllowCreate(createDb);
- config.setType(com.sleepycat.db.DatabaseType.BTREE);
-
- if(comparator != null)
- {
- config.setBtreeComparator(comparator);
- }
- Ice.Properties properties = _mapKey.communicator.getProperties();
- String propPrefix = "Freeze.Map." + _mapKey.dbName + ".";
-
- int btreeMinKey = properties.getPropertyAsInt(propPrefix + "BtreeMinKey");
- if(btreeMinKey > 2)
- {
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace(
- "Freeze.Map", "Setting \"" + _mapKey.dbName + "\"'s btree minkey to " + btreeMinKey);
- }
- config.setBtreeMinKey(btreeMinKey);
- }
-
- boolean checksum = properties.getPropertyAsInt(propPrefix + "Checksum") > 0;
- if(checksum)
- {
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace(
- "Freeze.Map", "Turning checksum on for \"" + _mapKey.dbName + "\"");
- }
-
- config.setChecksum(true);
- }
-
- int pageSize = properties.getPropertyAsInt(propPrefix + "PageSize");
- if(pageSize > 0)
- {
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace(
- "Freeze.Map", "Setting \"" + _mapKey.dbName + "\"'s pagesize to " + pageSize);
- }
- config.setPageSize(pageSize);
- }
-
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace("Freeze.Map", "opening Db \"" + _mapKey.dbName + "\"");
- }
-
- Transaction tx = connection.currentTransaction();
- boolean ownTx = (tx == null);
-
- for(;;)
- {
- try
- {
- if(ownTx)
- {
- tx = null;
- tx = connection.beginTransaction();
- }
-
- com.sleepycat.db.Transaction txn = Util.getTxn(tx);
-
- _db = connection.dbEnv().getEnv().openDatabase(txn, mapKey.dbName, null, config);
-
- String[] oldIndices = null;
- java.util.List<String> newIndices = new java.util.LinkedList<String>();
-
- CatalogIndexList catalogIndexList = new CatalogIndexList(connection, Util.catalogIndexListName(), true);
-
- if(createDb)
- {
- oldIndices = (String[])catalogIndexList.get(_mapKey.dbName);
- }
-
-
- if(_indices != null)
- {
- for(int i = 0; i < _indices.length; ++i)
- {
- String indexName = _indices[i].name();
-
- java.util.Comparator indexComparator = null;
- if(indexComparators != null)
- {
- indexComparator = (java.util.Comparator)indexComparators.get(indexName);
- }
-
- _indices[i].associate(mapKey.dbName, _db, txn, createDb, indexComparator);
-
- if(createDb)
- {
- if(oldIndices != null)
- {
- int j = java.util.Arrays.asList(oldIndices).indexOf(indexName);
- if(j != -1)
- {
- oldIndices[j] = null;
- }
- }
- newIndices.add(indexName);
- }
- }
- }
-
- if(catalogData == null)
- {
- catalogData = new CatalogData();
- catalogData.evictor = false;
- catalogData.key = key;
- catalogData.value = value;
- catalog.put(_mapKey.dbName, catalogData);
- }
-
- if(createDb)
- {
- boolean indexRemoved = false;
-
- if(oldIndices != null)
- {
- //
- // Remove old indices and write the new ones
- //
- for(int i = 0; i < oldIndices.length; ++i)
- {
- String index = oldIndices[i];
- if(index != null)
- {
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace(
- "Freeze.Map", "removing old index \"" + index + "\" on Db \"" + _mapKey.dbName + "\"");
- }
-
- indexRemoved = true;
-
- try
- {
- connection.removeMapIndex(mapKey.dbName, index);
- }
- catch(IndexNotFoundException ife)
- {
- // Ignored
-
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace(
- "Freeze.Map", "index \"" + index + "\" on Db \"" + _mapKey.dbName + "\" does not exist");
- }
- }
- }
- }
- }
-
- int oldSize = oldIndices == null ? 0 : oldIndices.length;
-
- if(indexRemoved || newIndices.size() != oldSize)
- {
- if(newIndices.size() == 0)
- {
- catalogIndexList.remove(_mapKey.dbName);
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace(
- "Freeze.Map", "Removed catalogIndexList entry for Db \"" + _mapKey.dbName + "\"");
- }
-
- }
- else
- {
- catalogIndexList.put(_mapKey.dbName, newIndices.toArray(new String[0]));
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace(
- "Freeze.Map", "Updated catalogIndexList entry for Db \"" + _mapKey.dbName + "\"");
- }
- }
- }
- }
-
- if(ownTx)
- {
- try
- {
- tx.commit();
- }
- finally
- {
- tx = null;
- }
- }
- break; // for(;;)
-
- //
- // TODO: FREEZE_DB_MODE
- //
- }
- catch(java.io.FileNotFoundException dx)
- {
- cleanupIndices();
- NotFoundException ex = new NotFoundException();
- ex.initCause(dx);
- ex.message = errorPrefix(_mapKey) + "Db.open: " + dx.getMessage();
- throw ex;
- }
- catch(com.sleepycat.db.DeadlockException dx)
- {
- if(ownTx)
- {
- if(connection.deadlockWarning())
- {
- connection.communicator().getLogger().warning(
- "Deadlock in Freeze.Shared.Shared on Db \""
- + mapKey.dbName + "\"; retrying ...");
- }
- tx = null;
- }
- else
- {
- cleanupIndices();
- DeadlockException ex = new DeadlockException(errorPrefix(_mapKey) + "Db.open: " + dx.getMessage(), tx);
- ex.initCause(dx);
- throw ex;
- }
- }
- catch(com.sleepycat.db.DatabaseException dx)
- {
- cleanupIndices();
- DatabaseException ex = new DatabaseException();
- ex.initCause(dx);
- ex.message = errorPrefix(_mapKey) + "Db.open: " + dx.getMessage();
- throw ex;
- }
- finally
- {
- if(ownTx && tx != null)
- {
- try
- {
- tx.rollback();
- }
- catch(DatabaseException de)
- {
- }
- }
- }
- }
- _refCount = 1;
- }
-
-
- private SharedDb(MapKey mapKey, String key, String value, com.sleepycat.db.Environment dbEnv)
- throws com.sleepycat.db.DatabaseException
- {
- _mapKey = mapKey;
- _key = key;
- _value = value;
- _trace = _mapKey.communicator.getProperties().getPropertyAsInt("Freeze.Trace.Map");
-
- if(_trace >= 1)
- {
- _mapKey.communicator.getLogger().trace("Freeze.Map", "opening Db \"" + _mapKey.dbName + "\"");
- }
-
- com.sleepycat.db.DatabaseConfig config = new com.sleepycat.db.DatabaseConfig();
- config.setAllowCreate(true);
- config.setType(com.sleepycat.db.DatabaseType.BTREE);
- config.setTransactional(true);
-
- try
- {
- _db = dbEnv.openDatabase(null, mapKey.dbName, null, config);
- }
- catch(java.io.FileNotFoundException dx)
- {
- //
- // This should never happen
- //
- NotFoundException ex = new NotFoundException();
- ex.initCause(dx);
- ex.message = errorPrefix(_mapKey) + "Db.open: " + dx.getMessage();
- throw ex;
- }
- _refCount = 1;
- }
-
- private void
- connectIndices(Map.Index[] indices)
- {
- if(indices != null)
- {
- assert(_indices != null && indices.length == _indices.length);
-
- for(int i = 0; i < indices.length; ++i)
- {
- indices[i].init(_indices[i]);
- }
- }
- }
-
- private void
- cleanupIndices()
- {
- if(_indices != null)
- {
- for(int i = 0; i < _indices.length; ++i)
- {
- _indices[i].close();
- }
- _indices = null;
- }
- }
-
- private static void
- checkTypes(SharedDb sharedDb, String key, String value)
- {
- if(!key.equals(sharedDb._key))
- {
- DatabaseException ex = new DatabaseException();
- ex.message = errorPrefix(sharedDb._mapKey) + sharedDb.dbName() + "'s key type is " + sharedDb._key +
- ", not " + key;
- throw ex;
- }
- if(!value.equals(sharedDb._value))
- {
- DatabaseException ex = new DatabaseException();
- ex.message = errorPrefix(sharedDb._mapKey) + sharedDb.dbName() + "'s value type is " + sharedDb._value +
- ", not " + value;
- throw ex;
- }
- }
-
- private static String
- errorPrefix(MapKey k)
- {
- return "Freeze DB DbEnv(\"" + k.envName + "\") Db(\"" + k.dbName + "\"): ";
- }
-
- private static class MapKey
- {
- final String envName;
- final Ice.Communicator communicator;
- final String dbName;
-
- MapKey(String envName, Ice.Communicator communicator, String dbName)
- {
- assert(envName != null);
- assert(communicator != null);
- assert(dbName != null);
-
- this.envName = envName;
- this.communicator = communicator;
- this.dbName = dbName;
- }
-
- public boolean
- equals(Object o)
- {
- try
- {
- MapKey k = (MapKey)o;
- return (dbName.equals(k.dbName)) && (communicator == k.communicator) && envName.equals(k.envName);
- }
- catch(ClassCastException ex)
- {
- communicator.getLogger().trace("Freeze.Map", "equals cast failed");
- return false;
- }
- }
-
- public int hashCode()
- {
- return dbName.hashCode() ^ envName.hashCode() ^ communicator.hashCode();
- }
- }
-
- private com.sleepycat.db.Database _db;
- private MapKey _mapKey;
- private String _key;
- private String _value;
- private int _refCount = 0;
- private int _trace;
- private Map.Index[] _indices;
- private boolean _inMap = false;
-
-//
-// Hash map of (MapKey, SharedDb)
-//
- private static java.util.Map _map = new java.util.HashMap();
-}
diff --git a/java/src/Freeze/SharedDbEnv.java b/java/src/Freeze/SharedDbEnv.java
index d8dabe8a385..807b7ac88b7 100644
--- a/java/src/Freeze/SharedDbEnv.java
+++ b/java/src/Freeze/SharedDbEnv.java
@@ -23,34 +23,81 @@ class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable
result = (SharedDbEnv)_map.get(key);
if(result == null)
{
+ result = new SharedDbEnv(key, dbEnv);
+
+ Object previousValue = _map.put(key, result);
+ assert(previousValue == null);
+ }
+ else
+ {
+ result._refCount++;
+ }
+ }
+
+ return result;
+ }
+
+ //
+ // Returns a shared map Db; the caller should NOT close this Db.
+ //
+ MapDb getSharedMapDb(String dbName, String key, String value,
+ java.util.Comparator comparator, Map.Index[] indices, java.util.Map indexComparators,
+ boolean createDb)
+ {
+ if(dbName.equals(_catalog.dbName()))
+ {
+ _catalog.checkTypes(key, value);
+ return _catalog;
+ }
+ else if(dbName.equals(_catalogIndexList.dbName()))
+ {
+ _catalogIndexList.checkTypes(key, value);
+ return _catalogIndexList;
+ }
+
+ synchronized(_sharedDbMap)
+ {
+ MapDb db = _sharedDbMap.get(dbName);
+ if(db == null)
+ {
+ ConnectionI insertConnection = (ConnectionI)Util.createConnection(_key.communicator, _key.envName);
+
try
{
- result = new SharedDbEnv(key, dbEnv);
+ db = new MapDb(insertConnection, dbName, key, value, comparator, indices, indexComparators, createDb);
}
- catch(com.sleepycat.db.DatabaseException dx)
+ finally
{
- DatabaseException ex = new DatabaseException();
- ex.initCause(dx);
- ex.message = errorPrefix(envName) + "creation: " + dx.getMessage();
- throw ex;
+ insertConnection.close();
}
- Object previousValue = _map.put(key, result);
+ Object previousValue = _sharedDbMap.put(dbName, db);
assert(previousValue == null);
}
else
{
- result._refCount++;
+ db.checkTypes(key, value);
+ db.connectIndices(indices);
}
+ return db;
}
+ }
- //
- // Make sure the result if fully initialized
- //
- result.init();
- return result;
+ //
+ // Tell SharedDbEnv to close and remove this Shared Db from the map
+ //
+ void removeSharedMapDb(String dbName)
+ {
+ synchronized(_sharedDbMap)
+ {
+ MapDb db = _sharedDbMap.remove(dbName);
+ if(db != null)
+ {
+ db.close();
+ }
+ }
}
-
+
public String
getEnvName()
{
@@ -68,20 +115,7 @@ class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable
{
return _dbEnv;
}
-
- public SharedDb
- getCatalog()
- {
- return _catalog;
- }
-
- public SharedDb
- getCatalogIndexList()
- {
- return _catalogIndexList;
- }
-
-
+
public void
close()
{
@@ -96,66 +130,9 @@ class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable
assert(value == this);
//
- // Join thread
- //
- synchronized(this)
- {
- _done = true;
- notify();
- }
-
- for(;;)
- {
- if(_thread != null)
- {
- try
- {
- _thread.join();
- _thread = null;
- break;
- }
- catch(InterruptedException ex)
- {
- }
- }
- }
-
- //
- // Release catalogs
- //
- if(_catalog != null)
- {
- _catalog.close();
- _catalog = null;
- }
-
- if(_catalogIndexList != null)
- {
- _catalogIndexList.close();
- _catalogIndexList = null;
- }
-
- if(_trace >= 1)
- {
- _key.communicator.getLogger().trace("Freeze.DbEnv", "closing database environment \"" +
- _key.envName + "\"");
- }
-
- //
- // Keep lock to prevent somebody else from re-opening this DbEnv
- // before it's closed.
+ // Cleanup with _map locked to prevent concurrent cleanup of the same dbEnv
//
- try
- {
- _dbEnv.close();
- }
- catch(com.sleepycat.db.DatabaseException dx)
- {
- DatabaseException ex = new DatabaseException();
- ex.initCause(dx);
- ex.message = errorPrefix(_key.envName) + "close: " + dx.getMessage();
- throw ex;
- }
+ cleanup();
}
}
}
@@ -287,7 +264,6 @@ class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable
private
SharedDbEnv(MapKey key, com.sleepycat.db.Environment dbEnv)
- throws com.sleepycat.db.DatabaseException
{
_key = key;
_dbEnv = dbEnv;
@@ -296,104 +272,198 @@ class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable
Ice.Properties properties = key.communicator.getProperties();
_trace = properties.getPropertyAsInt("Freeze.Trace.DbEnv");
- if(_ownDbEnv)
+ try
{
- com.sleepycat.db.EnvironmentConfig config = new com.sleepycat.db.EnvironmentConfig();
+ if(_ownDbEnv)
+ {
+ com.sleepycat.db.EnvironmentConfig config = new com.sleepycat.db.EnvironmentConfig();
+
+ config.setErrorHandler(this);
+ config.setInitializeLocking(true);
+ config.setInitializeLogging(true);
+ config.setInitializeCache(true);
+ config.setAllowCreate(true);
+ config.setTransactional(true);
- config.setErrorHandler(this);
- config.setInitializeLocking(true);
- config.setInitializeLogging(true);
- config.setInitializeCache(true);
- config.setAllowCreate(true);
- config.setTransactional(true);
+ //
+ // Deadlock detection
+ //
+ config.setLockDetectMode(com.sleepycat.db.LockDetectMode.YOUNGEST);
- //
- // Deadlock detection
- //
- config.setLockDetectMode(com.sleepycat.db.LockDetectMode.YOUNGEST);
+ String propertyPrefix = "Freeze.DbEnv." + _key.envName;
+ if(properties.getPropertyAsInt(propertyPrefix + ".DbRecoverFatal") != 0)
+ {
+ config.setRunFatalRecovery(true);
+ }
+ else
+ {
+ config.setRunRecovery(true);
+ }
- String propertyPrefix = "Freeze.DbEnv." + _key.envName;
- if(properties.getPropertyAsInt(propertyPrefix + ".DbRecoverFatal") != 0)
+ if(properties.getPropertyAsIntWithDefault(propertyPrefix + ".DbPrivate", 1) != 0)
+ {
+ config.setPrivate(true);
+ }
+
+ if(properties.getPropertyAsIntWithDefault(propertyPrefix + ".OldLogsAutoDelete", 1) != 0)
+ {
+ config.setLogAutoRemove(true);
+ }
+
+ if(_trace >= 1)
+ {
+ _key.communicator.getLogger().trace("Freeze.DbEnv", "opening database environment \"" +
+ _key.envName + "\"");
+ }
+
+ try
+ {
+ String dbHome = properties.getPropertyWithDefault(propertyPrefix + ".DbHome", _key.envName);
+ java.io.File home = new java.io.File(dbHome);
+ _dbEnv = new com.sleepycat.db.Environment(home, config);
+ }
+ catch(java.io.FileNotFoundException dx)
+ {
+ NotFoundException ex = new NotFoundException();
+ ex.initCause(dx);
+ ex.message = errorPrefix(_key.envName) + "open: " + dx.getMessage();
+ throw ex;
+ }
+
+ //
+ // Default checkpoint period is every 120 seconds
+ //
+ _checkpointPeriod =
+ properties.getPropertyAsIntWithDefault(propertyPrefix + ".CheckpointPeriod", 120) * 1000;
+
+ _kbyte = properties.getPropertyAsIntWithDefault(propertyPrefix + ".PeriodicCheckpointMinSize", 0);
+
+ String threadName;
+ String programName = properties.getProperty("Ice.ProgramName");
+ if(programName.length() > 0)
+ {
+ threadName = programName + "-";
+ }
+ else
+ {
+ threadName = "";
+ }
+ threadName += "FreezeCheckpointThread(" + _key.envName + ")";
+
+ if(_checkpointPeriod > 0)
+ {
+ _thread = new Thread(this, threadName);
+ _thread.start();
+ }
+ }
+
+ _catalog = new MapDb(_key.communicator, _key.envName, Util.catalogName(), "string", "::Freeze::CatalogData", _dbEnv);
+ _catalogIndexList = new MapDb(_key.communicator, _key.envName, Util.catalogIndexListName(),
+ "string", "::Ice::StringSeq", _dbEnv);
+ }
+ catch(com.sleepycat.db.DatabaseException dx)
+ {
+ cleanup();
+ DatabaseException ex = new DatabaseException();
+ ex.initCause(dx);
+ ex.message = errorPrefix(_key.envName) + "creation: " + dx.getMessage();
+ throw ex;
+ }
+ catch(java.lang.RuntimeException ex)
+ {
+ cleanup();
+ throw ex;
+ }
+
+ _refCount = 1;
+ }
+
+ private void
+ cleanup()
+ {
+ //
+ // Join thread
+ //
+ synchronized(this)
+ {
+ _done = true;
+ notify();
+ }
+
+ for(;;)
+ {
+ if(_thread != null)
{
- config.setRunFatalRecovery(true);
+ try
+ {
+ _thread.join();
+ _thread = null;
+ break;
+ }
+ catch(InterruptedException ex)
+ {
+ }
}
- else
+ }
+
+ //
+ // Release catalogs
+ //
+ if(_catalog != null)
+ {
+ try
{
- config.setRunRecovery(true);
+ _catalog.close();
}
-
- if(properties.getPropertyAsIntWithDefault(propertyPrefix + ".DbPrivate", 1) != 0)
+ finally
{
- config.setPrivate(true);
+ _catalog = null;
}
-
- if(properties.getPropertyAsIntWithDefault(propertyPrefix + ".OldLogsAutoDelete", 1) != 0)
+ }
+
+ if(_catalogIndexList != null)
+ {
+ try
{
- config.setLogAutoRemove(true);
+ _catalogIndexList.close();
}
-
- if(_trace >= 1)
+ finally
{
- _key.communicator.getLogger().trace("Freeze.DbEnv", "opening database environment \"" +
- _key.envName + "\"");
+ _catalogIndexList = null;
}
-
- //
- // TODO: FREEZE_DB_MODE
- //
-
+ }
+
+ //
+ // Close Dbs
+ //
+ for(MapDb db: _sharedDbMap.values())
+ {
+ db.close();
+ }
+
+ if(_trace >= 1)
+ {
+ _key.communicator.getLogger().trace("Freeze.DbEnv", "closing database environment \"" +
+ _key.envName + "\"");
+ }
+
+ if(_ownDbEnv && _dbEnv != null)
+ {
try
{
- String dbHome = properties.getPropertyWithDefault(propertyPrefix + ".DbHome", _key.envName);
- java.io.File home = new java.io.File(dbHome);
- _dbEnv = new com.sleepycat.db.Environment(home, config);
+ _dbEnv.close();
}
- catch(java.io.FileNotFoundException dx)
+ catch(com.sleepycat.db.DatabaseException dx)
{
- NotFoundException ex = new NotFoundException();
+ DatabaseException ex = new DatabaseException();
ex.initCause(dx);
- ex.message = errorPrefix(_key.envName) + "open: " + dx.getMessage();
+ ex.message = errorPrefix(_key.envName) + "close: " + dx.getMessage();
throw ex;
}
-
- //
- // Default checkpoint period is every 120 seconds
- //
- _checkpointPeriod =
- properties.getPropertyAsIntWithDefault(propertyPrefix + ".CheckpointPeriod", 120) * 1000;
-
- _kbyte = properties.getPropertyAsIntWithDefault(propertyPrefix + ".PeriodicCheckpointMinSize", 0);
-
- String threadName;
- String programName = properties.getProperty("Ice.ProgramName");
- if(programName.length() > 0)
+ finally
{
- threadName = programName + "-";
+ _dbEnv = null;
}
- else
- {
- threadName = "";
- }
- threadName += "FreezeCheckpointThread(" + _key.envName + ")";
-
- if(_checkpointPeriod > 0)
- {
- _thread = new Thread(this, threadName);
- _thread.start();
- }
- }
-
- _refCount = 1;
- }
-
- private synchronized void
- init()
- {
- if(_catalog == null)
- {
- SharedDb[] catalogs = SharedDb.openCatalogs(this);
- _catalog = catalogs[0];
- _catalogIndexList = catalogs[1];
}
}
@@ -438,8 +508,8 @@ class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable
private MapKey _key;
private com.sleepycat.db.Environment _dbEnv;
private boolean _ownDbEnv;
- private SharedDb _catalog;
- private SharedDb _catalogIndexList;
+ private MapDb _catalog;
+ private MapDb _catalogIndexList;
private int _refCount = 0; // protected by _map!
private boolean _done = false;
private int _trace = 0;
@@ -449,6 +519,8 @@ class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable
private java.util.Map _ctxMap = new java.util.HashMap();
+ private java.util.Map<String, MapDb> _sharedDbMap = new java.util.HashMap<String, MapDb>();
+
//
// Hash map of (MapKey, SharedDbEnv)
//
diff --git a/java/test/Freeze/dbmap/Client.java b/java/test/Freeze/dbmap/Client.java
index 869a8166caf..f36500e133c 100644
--- a/java/test/Freeze/dbmap/Client.java
+++ b/java/test/Freeze/dbmap/Client.java
@@ -200,6 +200,18 @@ public class Client
{
Freeze.Connection connection = Freeze.Util.createConnection(communicator, envName);
+ //
+ // Open/close db within transaction
+ //
+ {
+ Transaction tx = connection.beginTransaction();
+ ByteIntMap m = new ByteIntMap(connection, dbName, true);
+
+ m.put(new Byte((byte)'a'), new Integer(1));
+ m.close();
+ tx.rollback();
+ }
+
java.util.Map m = new ByteIntMap(connection, dbName, true);
//
@@ -614,7 +626,7 @@ public class Client
}
}
tx.commit();
- iim.close();
+ iim.closeDb();
}
{