summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2004-12-02 23:18:51 +0000
committerBernard Normier <bernard@zeroc.com>2004-12-02 23:18:51 +0000
commit7e5b25f64e832a9659dc054eef2935284c795a5a (patch)
tree4f9f3ce6eb8ec88d3455b8a07998ed4ab575ce9e /cpp/src
parentbzip2 fix (diff)
downloadice-7e5b25f64e832a9659dc054eef2935284c795a5a.tar.bz2
ice-7e5b25f64e832a9659dc054eef2935284c795a5a.tar.xz
ice-7e5b25f64e832a9659dc054eef2935284c795a5a.zip
Freeze catalogs
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Freeze/.depend19
-rw-r--r--cpp/src/Freeze/ConnectionI.cpp27
-rw-r--r--cpp/src/Freeze/ConnectionI.h13
-rw-r--r--cpp/src/Freeze/EvictorI.cpp44
-rw-r--r--cpp/src/Freeze/EvictorI.h14
-rw-r--r--cpp/src/Freeze/IndexI.cpp2
-rw-r--r--cpp/src/Freeze/Makefile19
-rw-r--r--cpp/src/Freeze/MapI.cpp76
-rw-r--r--cpp/src/Freeze/MapI.h5
-rw-r--r--cpp/src/Freeze/ObjectStore.cpp54
-rw-r--r--cpp/src/Freeze/SharedDb.cpp206
-rw-r--r--cpp/src/Freeze/SharedDb.h38
-rw-r--r--cpp/src/Freeze/SharedDbEnv.cpp227
-rw-r--r--cpp/src/Freeze/SharedDbEnv.h30
-rw-r--r--cpp/src/Freeze/TransactionI.cpp9
-rw-r--r--cpp/src/FreezeScript/.depend4
-rw-r--r--cpp/src/FreezeScript/Makefile2
-rw-r--r--cpp/src/FreezeScript/Transformer.cpp30
-rw-r--r--cpp/src/FreezeScript/Transformer.h3
-rw-r--r--cpp/src/FreezeScript/transformdb.cpp304
-rw-r--r--cpp/src/slice2freeze/Main.cpp31
-rw-r--r--cpp/src/slice2freezej/Main.cpp7
22 files changed, 799 insertions, 365 deletions
diff --git a/cpp/src/Freeze/.depend b/cpp/src/Freeze/.depend
index 06ab85e82ef..530906b1f30 100644
--- a/cpp/src/Freeze/.depend
+++ b/cpp/src/Freeze/.depend
@@ -8,16 +8,18 @@ ConnectionF.o: ConnectionF.cpp ../../include/Freeze/ConnectionF.h ../../include/
ConnectionI.o: ConnectionI.cpp ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Freeze/Transaction.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.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
Transaction.o: Transaction.cpp ../../include/Freeze/Transaction.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h
TransactionI.o: TransactionI.cpp ../Freeze/TransactionI.h ../../include/Freeze/Transaction.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/SharedDbEnv.h ../../include/Freeze/Exception.h
-SharedDb.o: SharedDb.cpp ../Freeze/SharedDb.h ../../include/IceUtil/Config.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Freeze/Transaction.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.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 ../../include/IceUtil/StaticMutex.h ../Freeze/Util.h
-MapI.o: 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/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.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
+SharedDb.o: SharedDb.cpp ../Freeze/SharedDb.h ../../include/IceUtil/Config.h ../Freeze/ConnectionI.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Freeze/Transaction.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.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 ../../include/IceUtil/StaticMutex.h ../Freeze/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h
+MapI.o: 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/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.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
Util.o: Util.cpp ../Freeze/Util.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h
-ObjectStore.o: ObjectStore.cpp ../Freeze/ObjectStore.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/EvictorStorage.h ../../include/Freeze/Index.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/TransactionHolder.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h ../Freeze/IndexI.h
-EvictorI.o: EvictorI.cpp ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.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/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/Ice/Stream.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/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../../include/IceUtil/Cache.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h ../Freeze/EvictorIteratorI.h
-EvictorIteratorI.o: EvictorIteratorI.cpp ../Freeze/EvictorIteratorI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.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/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h
-Index.o: Index.cpp ../../include/Freeze/Index.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../Freeze/IndexI.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../../include/IceUtil/Cache.h ../Freeze/SharedDbEnv.h
-IndexI.o: IndexI.cpp ../Freeze/IndexI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../../include/IceUtil/Cache.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h
-SharedDbEnv.o: 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/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Thread.h ../../include/Freeze/Exception.h ../Freeze/Util.h ../../include/Freeze/DB.h
+ObjectStore.o: ObjectStore.cpp ../Freeze/ObjectStore.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/EvictorStorage.h ../../include/Freeze/Index.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Transaction.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h ../Freeze/IndexI.h ../../include/Freeze/Catalog.h ../../include/Freeze/CatalogData.h ../Freeze/TransactionI.h
+EvictorI.o: EvictorI.cpp ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.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/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/Ice/Stream.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/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../../include/IceUtil/Cache.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h ../Freeze/EvictorIteratorI.h
+EvictorIteratorI.o: EvictorIteratorI.cpp ../Freeze/EvictorIteratorI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.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/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h
+Index.o: Index.cpp ../../include/Freeze/Index.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../Freeze/IndexI.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Transaction.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../../include/IceUtil/Cache.h ../Freeze/SharedDbEnv.h
+IndexI.o: IndexI.cpp ../Freeze/IndexI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../Freeze/EvictorI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/UUID.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Base64.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/GC.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Transaction.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../Freeze/ObjectStore.h ../../include/Freeze/EvictorStorage.h ../../include/IceUtil/Cache.h ../Freeze/SharedDbEnv.h ../Freeze/Util.h
+SharedDbEnv.o: 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/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Thread.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
TransactionHolder.o: TransactionHolder.cpp ../../include/Freeze/TransactionHolder.h ../../include/Freeze/Connection.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Freeze/Transaction.h ../../include/Ice/CommunicatorF.h
+Catalog.o: Catalog.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/Buffer.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/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/Freeze/CatalogData.h
+CatalogData.o: CatalogData.cpp ../../include/Freeze/CatalogData.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Mutex.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
DB.cpp: ../../slice/Freeze/DB.ice
Exception.cpp: ../../slice/Freeze/Exception.ice
Connection.cpp: ../../slice/Freeze/Connection.ice ../../slice/Freeze/Transaction.ice ../../slice/Ice/CommunicatorF.ice
@@ -26,3 +28,4 @@ Transaction.cpp: ../../slice/Freeze/Transaction.ice
Evictor.cpp: ../../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
EvictorF.cpp: ../../slice/Freeze/EvictorF.ice
EvictorStorage.cpp: ../../slice/Freeze/EvictorStorage.ice ../../slice/Ice/Identity.ice
+CatalogData.cpp: ../../slice/Freeze/CatalogData.ice
diff --git a/cpp/src/Freeze/ConnectionI.cpp b/cpp/src/Freeze/ConnectionI.cpp
index 8c824e061d7..996f802b80f 100644
--- a/cpp/src/Freeze/ConnectionI.cpp
+++ b/cpp/src/Freeze/ConnectionI.cpp
@@ -56,11 +56,8 @@ Freeze::ConnectionI::close()
(*_mapList.begin())->close();
}
- if(_dbEnv != 0)
- {
- _dbEnv = 0;
- _dbEnvHolder = 0;
- }
+ _dbEnv = 0;
+
}
CommunicatorPtr
@@ -82,21 +79,9 @@ Freeze::ConnectionI::~ConnectionI()
}
Freeze::ConnectionI::ConnectionI(const CommunicatorPtr& communicator,
- const string& envName) :
- _communicator(communicator),
- _dbEnvHolder(SharedDbEnv::get(communicator, envName)),
- _envName(envName),
- _trace(communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Map")),
- _deadlockWarning(communicator->getProperties()->getPropertyAsInt("Freeze.Warn.Deadlocks") != 0)
-{
- _dbEnv = _dbEnvHolder.get();
-}
-
-Freeze::ConnectionI::ConnectionI(const CommunicatorPtr& communicator,
- const string& envName,
- DbEnv& dbEnv) :
+ const string& envName, DbEnv* dbEnv) :
_communicator(communicator),
- _dbEnv(&dbEnv),
+ _dbEnv(SharedDbEnv::get(communicator, envName, dbEnv)),
_envName(envName),
_trace(communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Map")),
_deadlockWarning(communicator->getProperties()->getPropertyAsInt("Freeze.Warn.Deadlocks") != 0)
@@ -130,7 +115,7 @@ Freeze::createConnection(const CommunicatorPtr& communicator,
const string& envName)
{
- return new ConnectionI(communicator, envName);
+ return new ConnectionI(communicator, envName, 0);
}
Freeze::ConnectionPtr
@@ -138,7 +123,7 @@ Freeze::createConnection(const CommunicatorPtr& communicator,
const string& envName,
DbEnv& dbEnv)
{
- return new ConnectionI(communicator, envName, dbEnv);
+ return new ConnectionI(communicator, envName, &dbEnv);
}
void
diff --git a/cpp/src/Freeze/ConnectionI.h b/cpp/src/Freeze/ConnectionI.h
index 1099e97f516..f641bc8b070 100644
--- a/cpp/src/Freeze/ConnectionI.h
+++ b/cpp/src/Freeze/ConnectionI.h
@@ -43,11 +43,7 @@ public:
virtual ~ConnectionI();
ConnectionI(const Ice::CommunicatorPtr& communicator,
- const std::string& envName);
-
- ConnectionI(const Ice::CommunicatorPtr& communicator,
- const std::string& envName,
- DbEnv& dbEnv);
+ const std::string& envName, DbEnv*);
void
closeAllIterators();
@@ -64,7 +60,7 @@ public:
DbTxn*
dbTxn() const;
- DbEnv*
+ const SharedDbEnvPtr&
dbEnv() const;
const Ice::CommunicatorPtr&
@@ -82,8 +78,7 @@ public:
private:
Ice::CommunicatorPtr _communicator;
- SharedDbEnvPtr _dbEnvHolder;
- DbEnv* _dbEnv;
+ SharedDbEnvPtr _dbEnv;
std::string _envName;
TransactionIPtr _transaction;
std::list<MapHelperI*> _mapList;
@@ -110,7 +105,7 @@ ConnectionI::dbTxn() const
}
}
-inline DbEnv*
+inline const SharedDbEnvPtr&
ConnectionI::dbEnv() const
{
return _dbEnv;
diff --git a/cpp/src/Freeze/EvictorI.cpp b/cpp/src/Freeze/EvictorI.cpp
index 7ea78e088a2..5ae651a2166 100644
--- a/cpp/src/Freeze/EvictorI.cpp
+++ b/cpp/src/Freeze/EvictorI.cpp
@@ -41,7 +41,7 @@ Freeze::createEvictor(const ObjectAdapterPtr& adapter,
const vector<IndexPtr>& indices,
bool createDb)
{
- return new EvictorI(adapter, envName, filename, initializer, indices, createDb);
+ return new EvictorI(adapter, envName, 0, filename, initializer, indices, createDb);
}
Freeze::EvictorPtr
@@ -53,7 +53,7 @@ Freeze::createEvictor(const ObjectAdapterPtr& adapter,
const vector<IndexPtr>& indices,
bool createDb)
{
- return new EvictorI(adapter, envName, dbEnv, filename, initializer, indices, createDb);
+ return new EvictorI(adapter, envName, &dbEnv, filename, initializer, indices, createDb);
}
//
@@ -270,31 +270,7 @@ Freeze::WatchDogThread::terminate()
Freeze::EvictorI::EvictorI(const ObjectAdapterPtr& adapter,
const string& envName,
- const string& filename,
- const ServantInitializerPtr& initializer,
- const vector<IndexPtr>& indices,
- bool createDb) :
- _evictorSize(10),
- _currentEvictorSize(0),
- _deactivateController(this),
- _savingThreadDone(false),
- _adapter(adapter),
- _communicator(adapter->getCommunicator()),
- _initializer(initializer),
-
- _dbEnv(0),
- _dbEnvHolder(SharedDbEnv::get(_communicator, envName)),
- _filename(filename),
- _createDb(createDb),
- _trace(0)
-{
- _dbEnv = _dbEnvHolder.get();
- init(envName, indices);
-}
-
-Freeze::EvictorI::EvictorI(const ObjectAdapterPtr& adapter,
- const string& envName,
- DbEnv& dbEnv,
+ DbEnv* dbEnv,
const string& filename,
const ServantInitializerPtr& initializer,
const vector<IndexPtr>& indices,
@@ -307,18 +283,11 @@ Freeze::EvictorI::EvictorI(const ObjectAdapterPtr& adapter,
_adapter(adapter),
_communicator(adapter->getCommunicator()),
_initializer(initializer),
-
- _dbEnv(&dbEnv),
+ _dbEnv(SharedDbEnv::get(_communicator, envName, dbEnv)),
_filename(filename),
_createDb(createDb),
_trace(0)
{
- init(envName, indices);
-}
-
-void
-Freeze::EvictorI::init(const string& envName, const vector<IndexPtr>& indices)
-{
_trace = _communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Evictor");
_deadlockWarning = (_communicator->getProperties()->getPropertyAsInt("Freeze.Warn.Deadlocks") != 0);
@@ -1287,7 +1256,6 @@ Freeze::EvictorI::deactivate(const string&)
}
_dbEnv = 0;
- _dbEnvHolder = 0;
_initializer = 0;
}
catch(...)
@@ -1557,7 +1525,7 @@ Freeze::EvictorI::run()
try
{
DbTxn* tx = 0;
- _dbEnv->txn_begin(0, &tx, 0);
+ _dbEnv->getEnv()->txn_begin(0, &tx, 0);
try
{
for(size_t i = 0; i < txSize; i++)
@@ -1872,7 +1840,7 @@ Freeze::EvictorI::allDbs() const
try
{
- Db db(_dbEnv, 0);
+ Db db(_dbEnv->getEnv(), 0);
db.open(0, _filename.c_str(), 0, DB_UNKNOWN, DB_RDONLY, 0);
Dbc* dbc = 0;
diff --git a/cpp/src/Freeze/EvictorI.h b/cpp/src/Freeze/EvictorI.h
index 7e34c4b807b..8a5a9b92e85 100644
--- a/cpp/src/Freeze/EvictorI.h
+++ b/cpp/src/Freeze/EvictorI.h
@@ -110,10 +110,7 @@ class EvictorI : public Evictor, public IceUtil::Monitor<IceUtil::Mutex>, publi
{
public:
- EvictorI(const Ice::ObjectAdapterPtr&, const std::string&, const std::string&,
- const ServantInitializerPtr&, const std::vector<IndexPtr>&, bool);
-
- EvictorI(const Ice::ObjectAdapterPtr&, const std::string&, DbEnv&, const std::string&,
+ EvictorI(const Ice::ObjectAdapterPtr&, const std::string&, DbEnv*, const std::string&,
const ServantInitializerPtr&, const std::vector<IndexPtr>&, bool);
virtual ~EvictorI();
@@ -155,7 +152,7 @@ public:
DeactivateController& deactivateController();
const Ice::CommunicatorPtr& communicator() const;
- DbEnv* dbEnv() const;
+ const SharedDbEnvPtr& dbEnv() const;
const std::string& filename() const;
bool deadlockWarning() const;
@@ -179,8 +176,6 @@ public:
private:
- void init(const std::string& envName, const std::vector<IndexPtr>&);
-
Ice::ObjectPtr locateImpl(const Ice::Current&, Ice::LocalObjectPtr&);
void evict();
@@ -223,8 +218,7 @@ private:
ServantInitializerPtr _initializer;
- DbEnv* _dbEnv;
- SharedDbEnvPtr _dbEnvHolder;
+ SharedDbEnvPtr _dbEnv;
std::string _filename;
bool _createDb;
@@ -257,7 +251,7 @@ EvictorI::communicator() const
return _communicator;
}
-inline DbEnv*
+inline const SharedDbEnvPtr&
EvictorI::dbEnv() const
{
return _dbEnv;
diff --git a/cpp/src/Freeze/IndexI.cpp b/cpp/src/Freeze/IndexI.cpp
index df1137a4269..239ebe447e8 100644
--- a/cpp/src/Freeze/IndexI.cpp
+++ b/cpp/src/Freeze/IndexI.cpp
@@ -280,7 +280,7 @@ Freeze::IndexI::associate(ObjectStore* store, DbTxn* txn,
_store = store;
_index._communicator = store->communicator();
- _db.reset(new Db(store->evictor()->dbEnv(), 0));
+ _db.reset(new Db(store->evictor()->dbEnv()->getEnv(), 0));
_db->set_flags(DB_DUP | DB_DUPSORT);
_db->set_app_private(this);
diff --git a/cpp/src/Freeze/Makefile b/cpp/src/Freeze/Makefile
index dd1b79b0eeb..aea1b7af0a4 100644
--- a/cpp/src/Freeze/Makefile
+++ b/cpp/src/Freeze/Makefile
@@ -35,7 +35,9 @@ OBJS = DB.o \
Index.o \
IndexI.o \
SharedDbEnv.o \
- TransactionHolder.o
+ TransactionHolder.o \
+ Catalog.o \
+ CatalogData.o \
SRCS = $(OBJS:.o=.cpp)
@@ -46,7 +48,8 @@ SLICE_SRCS = $(SDIR)/DB.ice \
$(SDIR)/Transaction.ice \
$(SDIR)/Evictor.ice \
$(SDIR)/EvictorF.ice \
- $(SDIR)/EvictorStorage.ice
+ $(SDIR)/EvictorStorage.ice \
+ $(SDIR)/CatalogData.ice
HDIR = $(includedir)/Freeze
SDIR = $(slicedir)/Freeze
@@ -55,9 +58,19 @@ include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I.. $(CPPFLAGS) -DFREEZE_API_EXPORTS $(DB_FLAGS)
SLICE2CPPFLAGS := --ice --include-dir Freeze --dll-export FREEZE_API $(SLICE2CPPFLAGS)
-SLICE2FREEZECMD := $(SLICE2FREEZE) --ice --include-dir Freeze $(ICECPPFLAGS)
LINKWITH := -lIce -lIceUtil $(DB_LIBS)
+
+$(HDIR)/Catalog.h Catalog.cpp: $(SLICE2FREEZE) $(SDIR)/CatalogData.ice
+ rm -f $(HDIR)/Catalog.h Catalog.cpp
+ $(SLICE2FREEZE) $(SLICE2CPPFLAGS) --dict Freeze::Catalog,string,Freeze::CatalogData \
+ Catalog ../../slice/Freeze/CatalogData.ice
+ mv Catalog.h $(HDIR)/Catalog.h
+
+clean::
+ rm -f $(HDIR)/Catalog.h Catalog.cpp
+
+
$(libdir)/$(LIBFILENAME): $(OBJS)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
diff --git a/cpp/src/Freeze/MapI.cpp b/cpp/src/Freeze/MapI.cpp
index bdd4fe9f91f..cda7ef04e34 100644
--- a/cpp/src/Freeze/MapI.cpp
+++ b/cpp/src/Freeze/MapI.cpp
@@ -11,6 +11,7 @@
#include <Freeze/Exception.h>
#include <Freeze/SharedDb.h>
#include <Freeze/Util.h>
+#include <Freeze/Catalog.h>
#include <stdlib.h>
using namespace std;
@@ -57,12 +58,14 @@ Freeze::MapIndexBase::untypedCount(const Key& k) const
Freeze::MapHelper*
Freeze::MapHelper::create(const Freeze::ConnectionPtr& connection,
- const string& dbName,
+ const string& dbName,
+ const string& key,
+ const string& value,
const std::vector<MapIndexBasePtr>& indices,
bool createDb)
{
Freeze::ConnectionIPtr connectionI = Freeze::ConnectionIPtr::dynamicCast(connection);
- return new MapHelperI(connectionI, dbName, indices, createDb);
+ return new MapHelperI(connectionI, dbName, key, value, indices, createDb);
}
Freeze::MapHelper::~MapHelper()
@@ -637,7 +640,7 @@ Freeze::IteratorHelperI::Tx::Tx(const MapHelperI& m) :
try
{
- _map._connection->dbEnv()->txn_begin(0, &_txn, 0);
+ _map._connection->dbEnv()->getEnv()->txn_begin(0, &_txn, 0);
}
catch(const ::DbException& dx)
{
@@ -710,11 +713,13 @@ Freeze::IteratorHelperI::Tx::dead()
Freeze::MapHelperI::MapHelperI(const ConnectionIPtr& connection,
- const std::string& dbName,
+ const string& dbName,
+ const string& key,
+ const string& value,
const vector<MapIndexBasePtr>& indices,
bool createDb) :
_connection(connection),
- _db(SharedDb::get(connection, dbName, indices, createDb)),
+ _db(SharedDb::get(connection, dbName, key, value, indices, createDb)),
_dbName(dbName),
_trace(connection->trace())
{
@@ -1022,23 +1027,74 @@ Freeze::MapHelperI::clear()
void
Freeze::MapHelperI::destroy()
{
- DbTxn* txn = _connection->dbTxn();
- if(txn == 0)
+ if(_dbName == catalogName())
{
- closeAllIterators();
+ DatabaseException ex(__FILE__, __LINE__);
+ ex.message = "You cannot destroy the " + catalogName() + " database";
+ throw ex;
+ }
+
+ TransactionPtr tx = _connection->currentTransaction();
+ bool ownTx = (tx == 0);
+ if(ownTx)
+ {
+ tx = _connection->beginTransaction();
}
+
+ DbTxn* txn = _connection->dbTxn();
try
{
close();
- _connection->dbEnv()->dbremove(txn, _dbName.c_str(), 0, txn != 0 ? 0 : DB_AUTO_COMMIT);
+
+ Catalog catalog(_connection, catalogName());
+ catalog.erase(_dbName);
+ _connection->dbEnv()->getEnv()->dbremove(txn, _dbName.c_str(), 0, 0);
+
+ if(ownTx)
+ {
+ tx->commit();
+ }
}
catch(const ::DbException& dx)
{
+ if(ownTx)
+ {
+ tx = _connection->currentTransaction();
+ if(tx != 0)
+ {
+ try
+ {
+ tx->rollback();
+ }
+ catch(...)
+ {
+ }
+ }
+ }
+
DatabaseException ex(__FILE__, __LINE__);
ex.message = dx.what();
throw ex;
}
+ catch(...)
+ {
+ if(ownTx)
+ {
+ tx = _connection->currentTransaction();
+ if(tx != 0)
+ {
+ try
+ {
+ tx->rollback();
+ }
+ catch(...)
+ {
+ }
+ }
+ }
+ throw;
+ }
}
@@ -1157,7 +1213,7 @@ Freeze::MapIndexI::MapIndexI(const ConnectionIPtr& connection, SharedDb& db,
{
assert(txn != 0);
- _db.reset(new Db(connection->dbEnv(), 0));
+ _db.reset(new Db(connection->dbEnv()->getEnv(), 0));
_db->set_flags(DB_DUP | DB_DUPSORT);
_db->set_app_private(this);
diff --git a/cpp/src/Freeze/MapI.h b/cpp/src/Freeze/MapI.h
index 6c60c1f55e9..fa0c76b37ce 100644
--- a/cpp/src/Freeze/MapI.h
+++ b/cpp/src/Freeze/MapI.h
@@ -97,8 +97,9 @@ class MapHelperI : public MapHelper
{
public:
- MapHelperI(const ConnectionIPtr& connection, const std::string& dbName,
- const std::vector<MapIndexBasePtr>&, bool createDb);
+ MapHelperI(const ConnectionIPtr&, const std::string&,
+ const std::string&, const std::string&,
+ const std::vector<MapIndexBasePtr>&, bool);
virtual ~MapHelperI();
diff --git a/cpp/src/Freeze/ObjectStore.cpp b/cpp/src/Freeze/ObjectStore.cpp
index 05b994a5ec0..9c5fc069ef6 100644
--- a/cpp/src/Freeze/ObjectStore.cpp
+++ b/cpp/src/Freeze/ObjectStore.cpp
@@ -11,6 +11,8 @@
#include <Freeze/EvictorI.h>
#include <Freeze/Util.h>
#include <Freeze/IndexI.h>
+#include <Freeze/Catalog.h>
+#include <Freeze/TransactionI.h>
using namespace std;
using namespace Ice;
@@ -35,14 +37,28 @@ Freeze::ObjectStore::ObjectStore(const string& facet,
_dbName = facet;
}
- DbTxn* txn = 0;
- DbEnv* dbEnv = evictor->dbEnv();
+ ConnectionPtr catalogConnection = createConnection(_communicator, evictor->dbEnv()->getEnvName());
+ Catalog catalog(catalogConnection, catalogName());
+
+ Catalog::iterator p = catalog.find(evictor->filename());
+ if(p != catalog.end())
+ {
+ if(p->second.evictor == false)
+ {
+ DatabaseException ex(__FILE__, __LINE__);
+ ex.message = evictor->filename() + " is an evictor database";
+ throw ex;
+ }
+ }
+
+ DbEnv* dbEnv = evictor->dbEnv()->getEnv();
try
{
_db.reset(new Db(dbEnv, 0));
- dbEnv->txn_begin(0, &txn, 0);
+ TransactionPtr tx = catalogConnection->beginTransaction();
+ DbTxn* txn = getTxn(tx);
u_int32_t flags = DB_THREAD;
if(createDb)
@@ -55,17 +71,24 @@ Freeze::ObjectStore::ObjectStore(const string& facet,
{
_indices[i]->_impl->associate(this, txn, createDb, populateEmptyIndices);
}
- DbTxn* toCommit = txn;
- txn = 0;
- toCommit->commit(0);
+
+ if(p == catalog.end())
+ {
+ CatalogData catalogData;
+ catalogData.evictor = true;
+ catalog.put(Catalog::value_type(evictor->filename(), catalogData));
+ }
+
+ tx->commit();
}
catch(const DbException& dx)
{
- if(txn != 0)
+ TransactionPtr tx = catalogConnection->currentTransaction();
+ if(tx != 0)
{
try
{
- txn->abort();
+ tx->rollback();
}
catch(...)
{
@@ -85,6 +108,21 @@ Freeze::ObjectStore::ObjectStore(const string& facet,
throw ex;
}
}
+ catch(...)
+ {
+ TransactionPtr tx = catalogConnection->currentTransaction();
+ if(tx != 0)
+ {
+ try
+ {
+ tx->rollback();
+ }
+ catch(...)
+ {
+ }
+ }
+ throw;
+ }
}
Freeze::ObjectStore::~ObjectStore()
diff --git a/cpp/src/Freeze/SharedDb.cpp b/cpp/src/Freeze/SharedDb.cpp
index 9d951000065..89379bc38fc 100644
--- a/cpp/src/Freeze/SharedDb.cpp
+++ b/cpp/src/Freeze/SharedDb.cpp
@@ -11,10 +11,12 @@
#include <IceUtil/StaticMutex.h>
#include <Freeze/Exception.h>
#include <Freeze/Util.h>
+#include <Freeze/Catalog.h>
using namespace std;
using namespace IceUtil;
using namespace Ice;
+using namespace Freeze;
namespace
{
@@ -22,16 +24,53 @@ namespace
StaticMutex _mapMutex = ICE_STATIC_MUTEX_INITIALIZER;
StaticMutex _refCountMutex = ICE_STATIC_MUTEX_INITIALIZER;
+const string _catalogName = "__catalog";
+
+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;
+ }
+}
}
Freeze::SharedDb::SharedDbMap* Freeze::SharedDb::sharedDbMap = 0;
-Freeze::SharedDbPtr
+const string&
+Freeze::catalogName()
+{
+ return _catalogName;
+}
+
+SharedDbPtr
Freeze::SharedDb::get(const ConnectionIPtr& connection,
const string& dbName,
+ const string& key,
+ const string& value,
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;
+ }
+
StaticMutex::Lock lock(_mapMutex);
if(sharedDbMap == 0)
@@ -39,15 +78,16 @@ Freeze::SharedDb::get(const ConnectionIPtr& connection,
sharedDbMap = new SharedDbMap;
}
- MapKey key;
- key.envName = connection->envName();
- key.communicator = connection->communicator();
- key.dbName = dbName;
+ MapKey mapKey;
+ mapKey.envName = connection->envName();
+ mapKey.communicator = connection->communicator();
+ mapKey.dbName = dbName;
{
- SharedDbMap::iterator p = sharedDbMap->find(key);
+ SharedDbMap::iterator p = sharedDbMap->find(mapKey);
if(p != sharedDbMap->end())
{
+ checkTypes(*(p->second), key, value);
p->second->connectIndices(indices);
return p->second;
}
@@ -56,24 +96,62 @@ Freeze::SharedDb::get(const ConnectionIPtr& connection,
//
// MapKey not found, let's create and open a new Db
//
- auto_ptr<SharedDb> result(new SharedDb(key, connection, indices, createDb));
+ auto_ptr<SharedDb> result(new SharedDb(mapKey, key, value, connection, indices, createDb));
//
// Insert it into the map
//
pair<SharedDbMap::iterator, bool> insertResult;
- insertResult= sharedDbMap->insert(SharedDbMap::value_type(key, result.get()));
+ insertResult= sharedDbMap->insert(SharedDbMap::value_type(mapKey, result.get()));
assert(insertResult.second);
return result.release();
}
+Freeze::SharedDbPtr
+Freeze::SharedDb::openCatalog(SharedDbEnv& dbEnv)
+{
+ 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> result(new SharedDb(mapKey, dbEnv.getEnv()));
+
+ //
+ // Insert it into the map
+ //
+ pair<SharedDbMap::iterator, bool> insertResult
+ = sharedDbMap->insert(SharedDbMap::value_type(mapKey, result.get()));
+
+ if(!insertResult.second)
+ {
+ //
+ // That's very wrong: the catalog is associated with another env
+ //
+ assert(0);
+ DatabaseException ex(__FILE__, __LINE__);
+ ex.message = "Catalog already opened";
+ throw ex;
+ }
+
+ return result.release();
+}
+
+
Freeze::SharedDb::~SharedDb()
{
if(_trace >= 1)
{
- Trace out(_key.communicator->getLogger(), "Freeze.Map");
- out << "closing Db \"" << _key.dbName << "\"";
+ Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
+ out << "closing Db \"" << _mapKey.dbName << "\"";
}
cleanup(false);
@@ -83,8 +161,8 @@ void Freeze::SharedDb::__incRef()
{
if(_trace >= 2)
{
- Trace out(_key.communicator->getLogger(), "Freeze.Map");
- out << "incremeting reference count for Db \"" << _key.dbName << "\"";
+ Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
+ out << "incremeting reference count for Db \"" << _mapKey.dbName << "\"";
}
IceUtil::StaticMutex::Lock lock(_refCountMutex);
@@ -95,8 +173,8 @@ void Freeze::SharedDb::__decRef()
{
if(_trace >= 2)
{
- Trace out(_key.communicator->getLogger(), "Freeze.Map");
- out << "removing reference count for Db \"" << _key.dbName << "\"";
+ Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
+ out << "removing reference count for Db \"" << _mapKey.dbName << "\"";
}
IceUtil::StaticMutex::Lock lock(_refCountMutex);
@@ -121,7 +199,7 @@ void Freeze::SharedDb::__decRef()
// Remove from map
//
size_t one;
- one = sharedDbMap->erase(_key);
+ one = sharedDbMap->erase(_mapKey);
assert(one == 1);
if(sharedDbMap->size() == 0)
@@ -139,34 +217,58 @@ void Freeze::SharedDb::__decRef()
}
-Freeze::SharedDb::SharedDb(const MapKey& key,
+Freeze::SharedDb::SharedDb(const MapKey& mapKey,
+ const string& key,
+ const string& value,
const ConnectionIPtr& connection,
const vector<MapIndexBasePtr>& indices,
bool createDb) :
- Db(connection->dbEnv(), 0),
- _key(key),
+ Db(connection->dbEnv()->getEnv(), 0),
+ _mapKey(mapKey),
_refCount(0),
_trace(connection->trace())
{
if(_trace >= 1)
{
- Trace out(_key.communicator->getLogger(), "Freeze.Map");
- out << "opening Db \"" << _key.dbName << "\"";
+ Trace out(_mapKey.communicator->getLogger(), "Freeze.Map");
+ out << "opening Db \"" << _mapKey.dbName << "\"";
}
- DbTxn* txn = 0;
- DbEnv* dbEnv = connection->dbEnv();
+ ConnectionPtr catalogConnection = createConnection(_mapKey.communicator, connection->dbEnv()->getEnvName());
+ Catalog catalog(catalogConnection, _catalogName);
+
+ Catalog::iterator ci = catalog.find(_mapKey.dbName);
+ if(ci != catalog.end())
+ {
+ if(ci->second.evictor)
+ {
+ DatabaseException ex(__FILE__, __LINE__);
+ ex.message = _mapKey.dbName + " is an evictor database";
+ throw ex;
+ }
+
+ _key = ci->second.key;
+ _value = ci->second.value;
+ checkTypes(*this, key, value);
+ }
+ else
+ {
+ _key = key;
+ _value = value;
+ }
+
try
{
- dbEnv->txn_begin(0, &txn, 0);
+ TransactionPtr tx = catalogConnection->beginTransaction();
+ DbTxn* txn = getTxn(tx);
u_int32_t flags = DB_THREAD;
if(createDb)
{
flags |= DB_CREATE;
}
- open(txn, key.dbName.c_str(), 0, DB_BTREE, flags, FREEZE_DB_MODE);
+ open(txn, _mapKey.dbName.c_str(), 0, DB_BTREE, flags, FREEZE_DB_MODE);
for(vector<MapIndexBasePtr>::const_iterator p = indices.begin();
p != indices.end(); ++p)
@@ -182,17 +284,25 @@ Freeze::SharedDb::SharedDb(const MapKey& key,
indexBase->_impl = indexI.release();
}
- DbTxn* toCommit = txn;
- txn = 0;
- toCommit->commit(0);
+ if(ci == catalog.end())
+ {
+ CatalogData catalogData;
+ catalogData.evictor = false;
+ catalogData.key = key;
+ catalogData.value = value;
+ catalog.put(Catalog::value_type(_mapKey.dbName, catalogData));
+ }
+
+ tx->commit();
}
catch(const ::DbException& dx)
{
- if(txn != 0)
+ TransactionPtr tx = catalogConnection->currentTransaction();
+ if(tx != 0)
{
try
{
- txn->abort();
+ tx->rollback();
}
catch(...)
{
@@ -213,18 +323,15 @@ Freeze::SharedDb::SharedDb(const MapKey& key,
ex.message = dx.what();
throw ex;
}
-
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = dx.what();
- throw ex;
}
catch(...)
{
- if(txn != 0)
+ TransactionPtr tx = catalogConnection->currentTransaction();
+ if(tx != 0)
{
try
{
- txn->abort();
+ tx->rollback();
}
catch(...)
{
@@ -236,6 +343,35 @@ Freeze::SharedDb::SharedDb(const MapKey& key,
}
}
+
+Freeze::SharedDb::SharedDb(const MapKey& mapKey, DbEnv* env) :
+ Db(env, 0),
+ _mapKey(mapKey),
+ _key(CatalogKeyCodec::typeId()),
+ _value(CatalogValueCodec::typeId()),
+ _refCount(0)
+{
+ _trace = _mapKey.communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Map");
+
+ if(_trace >= 1)
+ {
+ Trace out(_mapKey.communicator->getLogger(), "Freeze.Db");
+ out << "opening Db \"" << _mapKey.dbName << "\"";
+ }
+
+ try
+ {
+ 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
{
diff --git a/cpp/src/Freeze/SharedDb.h b/cpp/src/Freeze/SharedDb.h
index 42cc3db72db..02fca80dcb4 100644
--- a/cpp/src/Freeze/SharedDb.h
+++ b/cpp/src/Freeze/SharedDb.h
@@ -20,6 +20,8 @@
namespace Freeze
{
+class SharedDbEnv;
+
class SharedDb;
typedef IceUtil::Handle<SharedDb> SharedDbPtr;
@@ -62,9 +64,12 @@ public:
using Db::get;
- static SharedDbPtr get(const ConnectionIPtr&, const std::string&,
+ static SharedDbPtr get(const ConnectionIPtr&, const std::string&,
+ const std::string&, const std::string&,
const std::vector<MapIndexBasePtr>&, bool);
+ static SharedDbPtr openCatalog(SharedDbEnv&);
+
~SharedDb();
void __incRef();
@@ -73,6 +78,12 @@ public:
const std::string&
dbName() const;
+ const std::string&
+ key() const;
+
+ const std::string&
+ value() const;
+
#ifdef __HP_aCC
virtual int
@@ -98,13 +109,17 @@ private:
typedef std::map<MapKey, Freeze::SharedDb*> SharedDbMap;
- SharedDb(const MapKey&, const ConnectionIPtr&,
- const std::vector<MapIndexBasePtr>&, bool);
+ SharedDb(const MapKey&, const std::string&, const std::string&,
+ const ConnectionIPtr&, const std::vector<MapIndexBasePtr>&, bool);
+
+ SharedDb(const MapKey&, DbEnv*);
void connectIndices(const std::vector<MapIndexBasePtr>&) const;
void cleanup(bool);
- MapKey _key;
+ MapKey _mapKey;
+ std::string _key;
+ std::string _value;
int _refCount;
Ice::Int _trace;
@@ -116,9 +131,22 @@ private:
inline const std::string&
SharedDb::dbName() const
{
- return _key.dbName;
+ return _mapKey.dbName;
+}
+
+inline const std::string&
+SharedDb::key() const
+{
+ return _key;
}
+inline const std::string&
+SharedDb::value() const
+{
+ return _value;
+}
+
+
inline bool
SharedDb::MapKey::operator<(const MapKey& rhs) const
{
diff --git a/cpp/src/Freeze/SharedDbEnv.cpp b/cpp/src/Freeze/SharedDbEnv.cpp
index dfc9334250e..8674880f756 100644
--- a/cpp/src/Freeze/SharedDbEnv.cpp
+++ b/cpp/src/Freeze/SharedDbEnv.cpp
@@ -12,6 +12,7 @@
#include <IceUtil/Thread.h>
#include <Freeze/Exception.h>
#include <Freeze/Util.h>
+#include <Freeze/SharedDb.h>
#include <cstdlib>
#include <map>
@@ -83,21 +84,21 @@ dbErrCallback(const ::DbEnv* ignored, const char* prefix, const char* msg)
StaticMutex _mapMutex = ICE_STATIC_MUTEX_INITIALIZER;
StaticMutex _refCountMutex = ICE_STATIC_MUTEX_INITIALIZER;
-typedef map<MapKey, Freeze::SharedDbEnv*> Map;
-Map* sharedDbEnvMap;
+typedef map<MapKey, Freeze::SharedDbEnv*> SharedDbEnvMap;
+SharedDbEnvMap* sharedDbEnvMap;
}
Freeze::SharedDbEnvPtr
-Freeze::SharedDbEnv::get(const Ice::CommunicatorPtr& communicator,
- const std::string& envName)
+Freeze::SharedDbEnv::get(const CommunicatorPtr& communicator,
+ const string& envName, DbEnv* env)
{
StaticMutex::Lock lock(_mapMutex);
if(sharedDbEnvMap == 0)
{
- sharedDbEnvMap = new Map;
+ sharedDbEnvMap = new SharedDbEnvMap;
}
MapKey key;
@@ -105,7 +106,7 @@ Freeze::SharedDbEnv::get(const Ice::CommunicatorPtr& communicator,
key.communicator = communicator;
{
- Map::iterator p = sharedDbEnvMap->find(key);
+ SharedDbEnvMap::iterator p = sharedDbEnvMap->find(key);
if(p != sharedDbEnvMap->end())
{
return p->second;
@@ -115,13 +116,13 @@ Freeze::SharedDbEnv::get(const Ice::CommunicatorPtr& communicator,
//
// MapKey not found, let's create and open a new DbEnv
//
- auto_ptr<SharedDbEnv> result(new SharedDbEnv(envName, communicator));
+ auto_ptr<SharedDbEnv> result(new SharedDbEnv(envName, communicator, env));
//
// Insert it into the map
//
- pair<Map::iterator, bool> insertResult;
- insertResult = sharedDbEnvMap->insert(Map::value_type(key, result.get()));
+ pair<SharedDbEnvMap::iterator, bool> insertResult;
+ insertResult = sharedDbEnvMap->insert(SharedDbEnvMap::value_type(key, result.get()));
assert(insertResult.second);
return result.release();
@@ -136,6 +137,11 @@ Freeze::SharedDbEnv::~SharedDbEnv()
}
//
+ // Release catalog (to close it)
+ //
+ _catalog = 0;
+
+ //
// First terminate checkpointing thread
//
if(_thread != 0)
@@ -144,15 +150,18 @@ Freeze::SharedDbEnv::~SharedDbEnv()
_thread = 0;
}
- try
- {
- close(0);
- }
- catch(const ::DbException& dx)
+ if(_envHolder.get() != 0)
{
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = dx.what();
- throw ex;
+ try
+ {
+ _envHolder->close(0);
+ }
+ catch(const ::DbException& dx)
+ {
+ DatabaseException ex(__FILE__, __LINE__);
+ ex.message = dx.what();
+ throw ex;
+ }
}
}
@@ -208,120 +217,132 @@ void Freeze::SharedDbEnv::__decRef()
}
Freeze::SharedDbEnv::SharedDbEnv(const std::string& envName,
- const Ice::CommunicatorPtr& communicator) :
- DbEnv(0),
+ const Ice::CommunicatorPtr& communicator, DbEnv* env) :
+ _env(env),
_envName(envName),
- _communicator(communicator),
- _refCount(0)
+ _communicator(communicator),
+ _refCount(0)
{
Ice::PropertiesPtr properties = _communicator->getProperties();
_trace = properties->getPropertyAsInt("Freeze.Trace.DbEnv");
- if(_trace >= 1)
+ if(_env == 0)
{
- Trace out(_communicator->getLogger(), "Freeze.DbEnv");
- out << "opening database environment \"" << envName << "\"";
- }
-
- string propertyPrefix = string("Freeze.DbEnv.") + envName;
-
- try
- {
- set_errpfx(reinterpret_cast<char*>(this));
-
- set_errcall(dbErrCallback);
-
-#ifdef _WIN32
- //
- // Berkeley DB may use a different C++ runtime
- //
- set_alloc(::malloc, ::realloc, ::free);
-#endif
+ _envHolder.reset(new DbEnv(0));
+ _env = _envHolder.get();
- //
- // Deadlock detection
- //
- set_lk_detect(DB_LOCK_MINLOCKS);
-
- 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;
- }
- else
+ if(_trace >= 1)
{
- flags |= DB_RECOVER | DB_CREATE;
- }
-
- if(properties->getPropertyAsIntWithDefault(propertyPrefix + ".DbPrivate", 1) != 0)
- {
- flags |= DB_PRIVATE;
+ Trace out(_communicator->getLogger(), "Freeze.DbEnv");
+ out << "opening database environment \"" << envName << "\"";
}
- /*
-
- //
- // Does not seem to work reliably in 4.1.25
- //
-
- time_t timeStamp = properties->getPropertyAsIntWithDefault(propertyPrefix + ".TxTimestamp", 0);
+ string propertyPrefix = string("Freeze.DbEnv.") + envName;
- if(timeStamp != 0)
+ try
{
+ _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_MINLOCKS);
+
+ 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;
+ }
+ else
+ {
+ flags |= DB_RECOVER | DB_CREATE;
+ }
+
+ if(properties->getPropertyAsIntWithDefault(propertyPrefix + ".DbPrivate", 1) != 0)
+ {
+ flags |= DB_PRIVATE;
+ }
+
+ /*
+
+ //
+ // Does not seem to work reliably in 4.1.25
+ //
+
+ time_t timeStamp = properties->getPropertyAsIntWithDefault(propertyPrefix + ".TxTimestamp", 0);
+
+ if(timeStamp != 0)
+ {
try
{
- set_tx_timestamp(&timeStamp);
+ set_tx_timestamp(&timeStamp);
}
catch(const ::DbException& dx)
{
- DatabaseException ex(__FILE__, __LINE__);
- ex.message = dx.what();
- throw ex;
+ DatabaseException ex(__FILE__, __LINE__);
+ ex.message = dx.what();
+ throw ex;
+ }
+ }
+ */
+
+ //
+ // Maybe we can deprecate this property since it can be set in the DB_CONFIG file
+ //
+ bool autoDelete = (properties->getPropertyAsIntWithDefault(
+ propertyPrefix + ".OldLogsAutoDelete", 1) != 0);
+
+ if(autoDelete)
+ {
+ _env->set_flags(DB_LOG_AUTOREMOVE, 1);
}
+
+ //
+ // Threading
+ //
+ flags |= DB_THREAD;
+
+ string dbHome = properties->getPropertyWithDefault(
+ 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;
}
- */
//
- // Maybe we can deprecate this property since it can be set in the DB_CONFIG file
+ // Default checkpoint period is every 120 seconds
//
- bool autoDelete = (properties->getPropertyAsIntWithDefault(
- propertyPrefix + ".OldLogsAutoDelete", 1) != 0);
-
- if(autoDelete)
+ Int checkpointPeriod = properties->getPropertyAsIntWithDefault(
+ propertyPrefix + ".CheckpointPeriod", 120);
+ Int kbyte = properties->getPropertyAsIntWithDefault(propertyPrefix + ".PeriodicCheckpointMinSize", 0);
+
+ if(checkpointPeriod > 0)
{
- set_flags(DB_LOG_AUTOREMOVE, 1);
+ _thread = new CheckpointThread(*this, Time::seconds(checkpointPeriod), kbyte, _trace);
}
-
- //
- // Threading
- //
- flags |= DB_THREAD;
-
- string dbHome = properties->getPropertyWithDefault(
- propertyPrefix + ".DbHome", envName);
-
- 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
+ // Get catalog
//
- 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 = SharedDb::openCatalog(*this);
}
@@ -375,7 +396,7 @@ Freeze::CheckpointThread::run()
Trace out(_dbEnv.getCommunicator()->getLogger(), "Freeze.DbEnv");
out << "checkpointing environment \"" << _dbEnv.getEnvName() << "\"";
}
- _dbEnv.txn_checkpoint(_kbyte, 0, 0);
+ _dbEnv.getEnv()->txn_checkpoint(_kbyte, 0, 0);
}
catch(const DbException& dx)
{
diff --git a/cpp/src/Freeze/SharedDbEnv.h b/cpp/src/Freeze/SharedDbEnv.h
index 40c3346569d..666fb0bff40 100644
--- a/cpp/src/Freeze/SharedDbEnv.h
+++ b/cpp/src/Freeze/SharedDbEnv.h
@@ -24,32 +24,45 @@ typedef IceUtil::Handle<CheckpointThread> CheckpointThreadPtr;
class SharedDbEnv;
typedef IceUtil::Handle<SharedDbEnv> SharedDbEnvPtr;
+class SharedDb;
+typedef IceUtil::Handle<SharedDb> SharedDbPtr;
-class SharedDbEnv : public ::DbEnv
+class SharedDbEnv
{
public:
- static SharedDbEnvPtr get(const Ice::CommunicatorPtr&, const std::string&);
+ static SharedDbEnvPtr get(const Ice::CommunicatorPtr&, const std::string&, DbEnv* = 0);
~SharedDbEnv();
void __incRef();
void __decRef();
+ DbEnv* getEnv() const;
const std::string& getEnvName() const;
const Ice::CommunicatorPtr& getCommunicator() const;
+ const SharedDbPtr& getCatalog() const;
private:
- SharedDbEnv(const std::string&, const Ice::CommunicatorPtr&);
+ SharedDbEnv(const std::string&, const Ice::CommunicatorPtr&, DbEnv* env);
+ DbEnv* _env;
+ std::auto_ptr<DbEnv> _envHolder;
const std::string _envName;
const Ice::CommunicatorPtr _communicator;
+ SharedDbPtr _catalog;
+
int _refCount;
- Ice::Int _trace;
+ int _trace;
CheckpointThreadPtr _thread;
- IceUtil::Mutex _oldLogsMutex;
};
+inline DbEnv*
+SharedDbEnv::getEnv() const
+{
+ return _env;
+}
+
inline const std::string&
SharedDbEnv::getEnvName() const
{
@@ -62,5 +75,12 @@ SharedDbEnv::getCommunicator() const
return _communicator;
}
+inline const SharedDbPtr&
+SharedDbEnv::getCatalog() const
+{
+ return _catalog;
+}
+
+
}
#endif
diff --git a/cpp/src/Freeze/TransactionI.cpp b/cpp/src/Freeze/TransactionI.cpp
index ff77a0d7419..ee5c76967d5 100644
--- a/cpp/src/Freeze/TransactionI.cpp
+++ b/cpp/src/Freeze/TransactionI.cpp
@@ -10,8 +10,15 @@
#include <Freeze/TransactionI.h>
#include <Freeze/ConnectionI.h>
#include <Freeze/Exception.h>
+#include <Freeze/Initialize.h>
+DbTxn*
+Freeze::getTxn(const Freeze::TransactionPtr& tx)
+{
+ return dynamic_cast<Freeze::TransactionI*>(tx.get())->dbTxn();
+}
+
void
Freeze::TransactionI::commit()
{
@@ -71,7 +78,7 @@ Freeze::TransactionI::TransactionI(ConnectionI* connection) :
{
try
{
- _connection->dbEnv()->txn_begin(0, &_txn, 0);
+ _connection->dbEnv()->getEnv()->txn_begin(0, &_txn, 0);
}
catch(const ::DbException& dx)
{
diff --git a/cpp/src/FreezeScript/.depend b/cpp/src/FreezeScript/.depend
index 4f0a5999afd..f6046c8d153 100644
--- a/cpp/src/FreezeScript/.depend
+++ b/cpp/src/FreezeScript/.depend
@@ -10,7 +10,7 @@ Print.o: Print.cpp ../FreezeScript/Print.h ../FreezeScript/Data.h ../../include/
Util.o: Util.cpp ../FreezeScript/Util.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../FreezeScript/Exception.h ../../include/Slice/Preprocessor.h
TransformAnalyzer.o: TransformAnalyzer.cpp ../FreezeScript/TransformAnalyzer.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../FreezeScript/Util.h ../../include/IceUtil/OutputUtil.h
TransformVisitor.o: TransformVisitor.cpp ../FreezeScript/TransformVisitor.h ../FreezeScript/Data.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Slice/Parser.h ../../include/IceUtil/InputUtil.h ../FreezeScript/Error.h ../FreezeScript/Util.h
-Transformer.o: Transformer.cpp ../FreezeScript/Transformer.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Slice/Parser.h ../../include/IceUtil/InputUtil.h ../FreezeScript/Parser.h ../FreezeScript/Data.h ../FreezeScript/Error.h ../FreezeScript/TransformVisitor.h ../FreezeScript/AssignVisitor.h ../FreezeScript/Print.h ../FreezeScript/Functions.h ../FreezeScript/Exception.h ../FreezeScript/Util.h ../../include/IceXML/Parser.h
-TransformDB.o: TransformDB.cpp ../FreezeScript/Transformer.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Slice/Parser.h ../../include/IceUtil/InputUtil.h ../FreezeScript/TransformAnalyzer.h ../FreezeScript/Exception.h ../FreezeScript/Util.h
+Transformer.o: Transformer.cpp ../FreezeScript/Transformer.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Slice/Parser.h ../../include/IceUtil/InputUtil.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../FreezeScript/Parser.h ../FreezeScript/Data.h ../FreezeScript/Error.h ../FreezeScript/TransformVisitor.h ../FreezeScript/AssignVisitor.h ../FreezeScript/Print.h ../FreezeScript/Functions.h ../FreezeScript/Exception.h ../FreezeScript/Util.h ../../include/Freeze/Catalog.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/CatalogData.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/IceXML/Parser.h
+TransformDB.o: TransformDB.cpp ../FreezeScript/Transformer.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Slice/Parser.h ../../include/IceUtil/InputUtil.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../FreezeScript/TransformAnalyzer.h ../FreezeScript/Exception.h ../FreezeScript/Util.h ../../include/Freeze/Initialize.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Catalog.h ../../include/Freeze/Map.h ../../include/Freeze/Exception.h ../../include/Freeze/CatalogData.h
DumpDescriptors.o: DumpDescriptors.cpp ../FreezeScript/DumpDescriptors.h ../FreezeScript/Parser.h ../FreezeScript/Data.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Slice/Parser.h ../../include/IceUtil/InputUtil.h ../FreezeScript/Error.h ../../include/IceXML/Parser.h ../FreezeScript/AssignVisitor.h ../FreezeScript/Print.h ../FreezeScript/Functions.h ../FreezeScript/Exception.h ../FreezeScript/Util.h
DumpDB.o: DumpDB.cpp ../FreezeScript/DumpDescriptors.h ../FreezeScript/Parser.h ../FreezeScript/Data.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.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/EndpointF.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/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/IceUtil/GCShared.h ../../include/IceUtil/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Slice/Parser.h ../../include/IceUtil/InputUtil.h ../FreezeScript/Error.h ../../include/IceXML/Parser.h ../FreezeScript/Util.h ../FreezeScript/Exception.h ../../include/IceUtil/OutputUtil.h
diff --git a/cpp/src/FreezeScript/Makefile b/cpp/src/FreezeScript/Makefile
index 05bfbbcfb74..067fbca2d88 100644
--- a/cpp/src/FreezeScript/Makefile
+++ b/cpp/src/FreezeScript/Makefile
@@ -44,7 +44,7 @@ BISONFLAGS := --name-prefix "freeze_script_" $(BISONFLAGS)
$(TRANSFORMDB): $(TRANSFORM_OBJS) $(COMMON_OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(TRANSFORM_OBJS) $(COMMON_OBJS) -lSlice -lIceXML $(LIBS) $(DB_LIBS) $(EXPAT_LIBS)
+ $(CXX) $(LDFLAGS) -o $@ $(TRANSFORM_OBJS) $(COMMON_OBJS) -lSlice -lIceXML -lFreeze $(LIBS) $(DB_LIBS) $(EXPAT_LIBS)
$(DUMPDB): $(DUMP_OBJS) $(COMMON_OBJS)
rm -f $@
diff --git a/cpp/src/FreezeScript/Transformer.cpp b/cpp/src/FreezeScript/Transformer.cpp
index 46c0cd12539..171fc2b54f2 100644
--- a/cpp/src/FreezeScript/Transformer.cpp
+++ b/cpp/src/FreezeScript/Transformer.cpp
@@ -15,6 +15,8 @@
#include <FreezeScript/Functions.h>
#include <FreezeScript/Exception.h>
#include <FreezeScript/Util.h>
+#include <Freeze/Catalog.h>
+#include <Freeze/Initialize.h>
#include <IceXML/Parser.h>
#include <db_cxx.h>
@@ -61,6 +63,13 @@ struct TransformInfoI : public TransformInfo
Db* oldDb;
Db* newDb;
DbTxn* newDbTxn;
+
+ //
+ // Connection to the new environment; not null only if we want to write into the catalog
+ //
+ Freeze::ConnectionPtr connection;
+ string newDbName;
+
string facet;
bool purge;
ErrorReporterPtr errorReporter;
@@ -2085,6 +2094,21 @@ FreezeScript::DatabaseDescriptor::DatabaseDescriptor(const DescriptorPtr& parent
_info->newKeyType = findType(_info->newUnit, newKeyName);
_info->oldValueType = findType(_info->oldUnit, oldValueName);
_info->newValueType = findType(_info->newUnit, newValueName);
+
+ if(_info->connection != 0)
+ {
+ Freeze::Catalog catalog(_info->connection, Freeze::catalogName());
+ Freeze::CatalogData catalogData;
+ catalogData.evictor = false;
+ catalogData.key = _info->newKeyType->typeId();
+ catalogData.value = _info->newValueType->typeId();
+ catalog.put(Freeze::Catalog::value_type(_info->newDbName, catalogData));
+ }
+
+ //
+ // TODO: it looks like _info is not destroyed before the new dbEnv is closed.
+ //
+ _info->connection = 0;
}
void
@@ -2929,8 +2953,8 @@ FreezeScript::assignOrTransform(const DataPtr& dest, const DataPtr& src, bool co
void
FreezeScript::transformDatabase(const Ice::CommunicatorPtr& communicator,
const Slice::UnitPtr& oldUnit, const Slice::UnitPtr& newUnit,
- Db* oldDb, Db* newDb, DbTxn* newDbTxn, const string& facetName, bool purgeObjects,
- ostream& errors, bool suppress, istream& is)
+ Db* oldDb, Db* newDb, DbTxn* newDbTxn, Freeze::ConnectionPtr connection, const string& newDbName,
+ const string& facetName, bool purgeObjects, ostream& errors, bool suppress, istream& is)
{
TransformInfoIPtr info = new TransformInfoI;
info->communicator = communicator;
@@ -2939,6 +2963,8 @@ FreezeScript::transformDatabase(const Ice::CommunicatorPtr& communicator,
info->oldDb = oldDb;
info->newDb = newDb;
info->newDbTxn = newDbTxn;
+ info->connection = connection;
+ info->newDbName = newDbName;
info->facet = facetName;
info->purge = purgeObjects;
info->errorReporter = new ErrorReporter(errors, suppress);
diff --git a/cpp/src/FreezeScript/Transformer.h b/cpp/src/FreezeScript/Transformer.h
index d05d8b9a6c6..c1baecbedd3 100644
--- a/cpp/src/FreezeScript/Transformer.h
+++ b/cpp/src/FreezeScript/Transformer.h
@@ -12,6 +12,7 @@
#include <Ice/Ice.h>
#include <Slice/Parser.h>
+#include <Freeze/Connection.h>
class Db;
class DbTxn;
@@ -21,7 +22,7 @@ namespace FreezeScript
void
transformDatabase(const Ice::CommunicatorPtr&, const Slice::UnitPtr&, const Slice::UnitPtr&,
- Db*, Db*, DbTxn*, const std::string&, bool, std::ostream&, bool, std::istream&);
+ Db*, Db*, DbTxn*, Freeze::ConnectionPtr, const std::string&, const std::string&, bool, std::ostream&, bool, std::istream&);
} // End of namespace FreezeScript
diff --git a/cpp/src/FreezeScript/transformdb.cpp b/cpp/src/FreezeScript/transformdb.cpp
index 41dcc42b085..90aad88e976 100644
--- a/cpp/src/FreezeScript/transformdb.cpp
+++ b/cpp/src/FreezeScript/transformdb.cpp
@@ -11,6 +11,9 @@
#include <FreezeScript/TransformAnalyzer.h>
#include <FreezeScript/Exception.h>
#include <FreezeScript/Util.h>
+#include <Freeze/Initialize.h>
+#include <Freeze/Transaction.h>
+#include <Freeze/Catalog.h>
#include <db_cxx.h>
#include <sys/stat.h>
#include <fstream>
@@ -27,7 +30,7 @@ using namespace std;
static void
usage(const char* n)
{
- cerr << "Usage: " << n << " [options] [dbenv db newdbenv]\n";
+ cerr << "Usage: " << n << " [options] [dbenv db newdbenv | dbenv newdbenv]\n";
cerr <<
"Options:\n"
"-h, --help Show this message.\n"
@@ -39,6 +42,7 @@ usage(const char* n)
"--ice Permit `Ice' prefix (for building Ice source code only)\n"
"-o FILE Output transformation descriptors into the file FILE.\n"
" Database transformation is not performed.\n"
+ "-a Transform all databases in the dbenv\n"
"-i Ignore incompatible type changes.\n"
"-p Purge objects whose types no longer exist.\n"
"-c Use catastrophic recovery on the old database environment.\n"
@@ -78,6 +82,101 @@ findType(const string& prog, const Slice::UnitPtr& u, const string& type)
return l.front();
}
+static void
+transformDb(bool evictor, const Ice::CommunicatorPtr& communicator,
+ DbEnv& dbEnv, DbEnv& dbEnvNew, const string& dbName,
+ const Freeze::ConnectionPtr& connectionNew, vector<Db*>& dbs,
+ const Slice::UnitPtr& oldUnit, const Slice::UnitPtr& newUnit,
+ DbTxn* txnNew, bool purgeObjects, bool suppress, string descriptors)
+{
+ if(evictor)
+ {
+ //
+ // The evictor database file contains multiple databases. We must first
+ // determine the names of those databases, ignoring any whose names
+ // begin with "$index:". Each database represents a separate facet, with
+ // the facet name used as the database name. The database named "$default"
+ // represents the main object.
+ //
+ vector<string> dbNames;
+ {
+ Db db(&dbEnv, 0);
+ db.open(0, dbName.c_str(), 0, DB_UNKNOWN, DB_RDONLY, 0);
+ Dbt dbKey, dbValue;
+ dbKey.set_flags(DB_DBT_MALLOC);
+ dbValue.set_flags(DB_DBT_USERMEM | DB_DBT_PARTIAL);
+
+ Dbc* dbc = 0;
+ db.cursor(0, &dbc, 0);
+
+ while(dbc->get(&dbKey, &dbValue, DB_NEXT) == 0)
+ {
+ string s(static_cast<char*>(dbKey.get_data()), dbKey.get_size());
+ if(s.find("$index:") != 0)
+ {
+ dbNames.push_back(s);
+ }
+ free(dbKey.get_data());
+ }
+
+ dbc->close();
+ db.close(0);
+ }
+
+ //
+ // Transform each database. We must delay closing the new databases
+ // until after the transaction is committed or aborted.
+ //
+ for(vector<string>::iterator p = dbNames.begin(); p != dbNames.end(); ++p)
+ {
+ string name = p->c_str();
+
+ Db db(&dbEnv, 0);
+ db.open(0, dbName.c_str(), name.c_str(), DB_BTREE, DB_RDONLY, FREEZE_SCRIPT_DB_MODE);
+
+ Db* dbNew = new Db(&dbEnvNew, 0);
+ dbs.push_back(dbNew);
+ dbNew->open(txnNew, dbName.c_str(), name.c_str(), DB_BTREE, DB_CREATE | DB_EXCL, FREEZE_SCRIPT_DB_MODE);
+
+ //
+ // Execute the transformation descriptors.
+ //
+ istringstream istr(descriptors);
+ string facet = (name == "$default" ? "" : name);
+ FreezeScript::transformDatabase(communicator, oldUnit, newUnit, &db, dbNew, txnNew, 0, dbName,
+ facet, purgeObjects, cerr, suppress, istr);
+
+ db.close(0);
+ }
+
+ Freeze::Catalog catalogNew(connectionNew, Freeze::catalogName());
+ Freeze::CatalogData catalogData;
+ catalogData.evictor = true;
+ catalogNew.put(Freeze::Catalog::value_type(dbName, catalogData));
+ }
+ else
+ {
+ //
+ // Transform a map database.
+ //
+ Db db(&dbEnv, 0);
+ db.open(0, dbName.c_str(), 0, DB_BTREE, DB_RDONLY, FREEZE_SCRIPT_DB_MODE);
+
+ Db* dbNew = new Db(&dbEnvNew, 0);
+ dbs.push_back(dbNew);
+ dbNew->open(txnNew, dbName.c_str(), 0, DB_BTREE, DB_CREATE | DB_EXCL, FREEZE_SCRIPT_DB_MODE);
+
+ //
+ // Execute the transformation descriptors.
+ //
+ istringstream istr(descriptors);
+ FreezeScript::transformDatabase(communicator, oldUnit, newUnit, &db, dbNew, txnNew, connectionNew,
+ dbName, "", purgeObjects, cerr, suppress, istr);
+
+ db.close(0);
+ }
+}
+
static int
run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
{
@@ -91,6 +190,7 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
bool purgeObjects = false;
bool catastrophicRecover = false;
bool suppress = false;
+ bool allDb = false;
string inputFile;
vector<string> oldSlice;
vector<string> newSlice;
@@ -152,6 +252,15 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
}
--argc;
}
+ else if(strcmp(argv[idx], "-a") == 0)
+ {
+ allDb = true;
+ for(int i = idx ; i + 1 < argc ; ++i)
+ {
+ argv[i] = argv[i + 1];
+ }
+ --argc;
+ }
else if(strcmp(argv[idx], "-o") == 0)
{
if(idx + 1 >= argc || argv[idx + 1][0] == '-')
@@ -333,7 +442,7 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
}
}
- if(outputFile.empty() && argc < 4)
+ if(outputFile.empty() && (allDb && argc != 3 || !allDb && argc != 4))
{
usage(argv[0]);
return EXIT_FAILURE;
@@ -345,7 +454,14 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
}
if(argc > 2)
{
- dbName = argv[2];
+ if(allDb)
+ {
+ dbEnvNameNew = argv[2];
+ }
+ else
+ {
+ dbName = argv[2];
+ }
}
if(argc > 3)
{
@@ -376,6 +492,7 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
// If no input file was provided, then we need to analyze the Slice types.
//
string descriptors;
+
if(inputFile.empty())
{
ostringstream out;
@@ -383,7 +500,8 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
vector<string> analyzeErrors;
string oldKeyName, newKeyName, oldValueName, newValueName;
- if(evictor)
+
+ if(evictor)
{
oldKeyName = newKeyName = "::Ice::Identity";
oldValueName = newValueName = "::Freeze::ObjectRecord";
@@ -518,7 +636,7 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
//
DbEnv dbEnv(0);
DbEnv dbEnvNew(0);
- DbTxn* txnNew = 0;
+ Freeze::TransactionPtr txNew = 0;
vector<Db*> dbs;
int status = EXIT_SUCCESS;
try
@@ -535,8 +653,9 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
// Open the old database environment. Use DB_RECOVER_FATAL if -c is specified.
// No transaction is created for the old environment.
//
+ // DB_THREAD is for compatibility with Freeze (the catalog)
{
- u_int32_t flags = DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE;
+ u_int32_t flags = DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_CREATE | DB_THREAD;
if(catastrophicRecover)
{
flags |= DB_RECOVER_FATAL;
@@ -551,95 +670,88 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
//
// Open the new database environment and start a transaction.
//
+ //
+ // DB_THREAD is for compatibility with Freeze (the catalog)
+ //
{
- u_int32_t flags = DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_CREATE;
+ u_int32_t flags = DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_CREATE
+ | DB_THREAD;
dbEnvNew.open(dbEnvNameNew.c_str(), flags, FREEZE_SCRIPT_DB_MODE);
}
- dbEnvNew.txn_begin(0, &txnNew, 0);
-
- if(evictor)
- {
- //
- // The evictor database file contains multiple databases. We must first
- // determine the names of those databases, ignoring any whose names
- // begin with "$index:". Each database represents a separate facet, with
- // the facet name used as the database name. The database named "$default"
- // represents the main object.
- //
- vector<string> dbNames;
- {
- Db db(&dbEnv, 0);
- db.open(0, dbName.c_str(), 0, DB_UNKNOWN, DB_RDONLY, 0);
- Dbt dbKey, dbValue;
- dbKey.set_flags(DB_DBT_MALLOC);
- dbValue.set_flags(DB_DBT_USERMEM | DB_DBT_PARTIAL);
-
- Dbc* dbc = 0;
- db.cursor(0, &dbc, 0);
- while(dbc->get(&dbKey, &dbValue, DB_NEXT) == 0)
- {
- string s(static_cast<char*>(dbKey.get_data()), dbKey.get_size());
- if(s.find("$index:") != 0)
- {
- dbNames.push_back(s);
- }
- free(dbKey.get_data());
- }
-
- dbc->close();
- db.close(0);
- }
-
- //
- // Transform each database. We must delay closing the new databases
- // until after the transaction is committed or aborted.
- //
- for(vector<string>::iterator p = dbNames.begin(); p != dbNames.end(); ++p)
- {
- string name = p->c_str();
-
- Db db(&dbEnv, 0);
- db.open(0, dbName.c_str(), name.c_str(), DB_BTREE, DB_RDONLY, FREEZE_SCRIPT_DB_MODE);
-
- Db* dbNew = new Db(&dbEnvNew, 0);
- dbs.push_back(dbNew);
- dbNew->open(txnNew, dbName.c_str(), name.c_str(), DB_BTREE, DB_CREATE | DB_EXCL, FREEZE_SCRIPT_DB_MODE);
-
- //
- // Execute the transformation descriptors.
- //
- istringstream istr(descriptors);
- string facet = (name == "$default" ? "" : name);
- FreezeScript::transformDatabase(communicator, oldUnit, newUnit, &db, dbNew, txnNew, facet,
- purgeObjects, cerr, suppress, istr);
-
- db.close(0);
- }
- }
- else
- {
- //
- // Transform a map database. To workaround a bug in BerkeleyDB, we
- // delay closing the new database until after the transaction is
- // aborted or committed.
- //
- Db db(&dbEnv, 0);
- db.open(0, dbName.c_str(), 0, DB_BTREE, DB_RDONLY, FREEZE_SCRIPT_DB_MODE);
-
- Db* dbNew = new Db(&dbEnvNew, 0);
- dbs.push_back(dbNew);
- dbNew->open(txnNew, dbName.c_str(), 0, DB_BTREE, DB_CREATE | DB_EXCL, FREEZE_SCRIPT_DB_MODE);
-
- //
- // Execute the transformation descriptors.
- //
- istringstream istr(descriptors);
- FreezeScript::transformDatabase(communicator, oldUnit, newUnit, &db, dbNew, txnNew, "", purgeObjects, cerr,
- suppress, istr);
-
- db.close(0);
- }
+ //
+ // TODO: handle properly DbHome config (curremtly it will break if it's set for the new env)
+ //
+
+ //
+ // Open the catalog of the new environment, and start a transaction
+ //
+ Freeze::ConnectionPtr connectionNew = Freeze::createConnection(communicator, dbEnvNameNew, dbEnvNew);
+ txNew = connectionNew->beginTransaction();
+ DbTxn* txnNew = getTxn(txNew);
+
+
+ if(allDb)
+ {
+ //
+ // Transform all the databases listed in the old catalog
+ //
+ //
+ // Create each time a new descriptor with the appropriate default database element
+ //
+
+ Freeze::ConnectionPtr connection = Freeze::createConnection(communicator, dbEnvName, dbEnv);
+ Freeze::Catalog catalog(connection, Freeze::catalogName());
+ for(Freeze::Catalog::const_iterator p = catalog.begin(); p != catalog.end(); ++p)
+ {
+ string dbElement;
+ if(p->second.evictor)
+ {
+ dbElement = "<database key=\"::Ice::Identity\" value=\"::Freeze::ObjectRecord\"/>";
+ }
+ else
+ {
+ //
+ // Temporary: FreezeScript should accept type-ids
+ //
+ string value = p->second.value;
+ if(value == "::Ice::Object")
+ {
+ value = "Object";
+ }
+ else if(value == "::Ice::Object*")
+ {
+ value = "Object*";
+ }
+
+ dbElement = "<database key=\"" + p->second.key + "\" value=\"" + value + "\"/>";
+ }
+
+ string localDescriptor = descriptors;
+ string transformdbTag = "<transformdb>";
+ size_t pos = localDescriptor.find(transformdbTag);
+ if(pos == string::npos)
+ {
+ cerr << argv[0] << ": Invalid descriptor " << endl;
+ status = EXIT_FAILURE;
+ break;
+ }
+ localDescriptor.replace(pos, transformdbTag.size(), transformdbTag + dbElement);
+
+ if(debug)
+ {
+ cout << "Processing database " << p->first << " with descriptor: " << localDescriptor << endl;
+ }
+
+ transformDb(p->second.evictor, communicator, dbEnv, dbEnvNew, p->first, connectionNew, dbs,
+ oldUnit, newUnit, txnNew, purgeObjects, suppress, localDescriptor);
+ }
+ }
+ else
+ {
+ transformDb(evictor, communicator, dbEnv, dbEnvNew, dbName, connectionNew, dbs,
+ oldUnit, newUnit, txnNew, purgeObjects, suppress, descriptors);
+ }
}
catch(const DbException& ex)
{
@@ -650,9 +762,9 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
{
try
{
- if(txnNew)
+ if(txNew != 0)
{
- txnNew->abort();
+ txNew->rollback();
}
for(vector<Db*>::iterator p = dbs.begin(); p != dbs.end(); ++p)
{
@@ -670,17 +782,17 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
throw;
}
- if(txnNew)
+ if(txNew != 0)
{
try
{
if(status == EXIT_FAILURE)
{
- txnNew->abort();
+ txNew->rollback();
}
else
{
- txnNew->commit(0);
+ txNew->commit();
//
// Checkpoint to migrate changes from the log to the database(s).
diff --git a/cpp/src/slice2freeze/Main.cpp b/cpp/src/slice2freeze/Main.cpp
index 1f8bac6c4ef..c2b5d3d09d3 100644
--- a/cpp/src/slice2freeze/Main.cpp
+++ b/cpp/src/slice2freeze/Main.cpp
@@ -141,6 +141,7 @@ writeCodecH(const TypePtr& type, const string& name, const string& freezeType, O
<< ", Freeze::" << freezeType << "& bytes, const ::Ice::CommunicatorPtr& communicator);";
H << nl << "static void read(" << typeToString(type) << "&, const Freeze::" << freezeType << "& bytes, "
<< "const ::Ice::CommunicatorPtr& communicator);";
+ H << nl << "static const std::string& typeId();";
H << eb << ';';
}
@@ -195,6 +196,28 @@ writeCodecC(const TypePtr& type, const string& name, const string& freezeType, b
C << nl << "stream.endReadEncaps();";
}
C << eb;
+
+ string staticName = "__";
+ for(string::const_iterator p = name.begin(); p != name.end(); ++p)
+ {
+ if((*p) == ':')
+ {
+ staticName += '_';
+ }
+ else
+ {
+ staticName += *p;
+ }
+ }
+ staticName += "_typeId";
+
+ C << sp << nl << "static const ::std::string " << staticName << " = \"" << type->typeId() << "\";";
+
+ C << sp << nl << "const ::std::string&" << nl << name << "::typeId()";
+ C << sb;
+ C << nl << "return " << staticName << ";";
+
+ C << eb;
}
void
@@ -300,7 +323,9 @@ writeDictWithIndicesH(const string& name, const Dict& dict,
H << nl << "__indices.push_back(new " << capitalizedMembers[i] << "Index(" << indexName << "));";
}
- H << nl << "this->_helper.reset(Freeze::MapHelper::create(__connection, __dbName, __indices, __createDb));";
+ H << nl << "this->_helper.reset(Freeze::MapHelper::create(__connection, __dbName, "
+ << name + "KeyCodec::typeId(), "
+ << name + "ValueCodec::typeId(), __indices, __createDb));";
H << nl << "while(__first != __last)";
H << sb;
H << nl << "put(*__first);";
@@ -471,7 +496,9 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
C << nl << "__indices.push_back(new " << capitalizedMembers[i] << "Index(" << indexName << "));";
}
- C << nl << "_helper.reset(Freeze::MapHelper::create(__connection, __dbName, __indices, __createDb));";
+ C << nl << "_helper.reset(Freeze::MapHelper::create(__connection, __dbName, "
+ << absolute + "KeyCodec::typeId(), "
+ << absolute + "ValueCodec::typeId(), __indices, __createDb));";
C << eb;
//
diff --git a/cpp/src/slice2freezej/Main.cpp b/cpp/src/slice2freezej/Main.cpp
index afb945bbbb4..cab620460e2 100644
--- a/cpp/src/slice2freezej/Main.cpp
+++ b/cpp/src/slice2freezej/Main.cpp
@@ -235,9 +235,11 @@ FreezeGenerator::generate(UnitPtr& u, const Dict& dict)
out << sp << nl << "public" << nl << name
<< "(Freeze.Connection __connection, String __dbName, boolean __createDb)";
out << sb;
+
if(dict.indices.size() == 0)
{
- out << nl << "super(__connection, __dbName, __createDb);";
+ out << nl << "super(__connection, __dbName, \"" << keyType->typeId() << "\", \""
+ << valueType->typeId() << "\", __createDb);";
}
else
{
@@ -248,7 +250,8 @@ FreezeGenerator::generate(UnitPtr& u, const Dict& dict)
out << nl << "_indices[" << i << "] = new " << capitalizedMembers[i]
<< "Index(\"" << indexNames[i] << "\");";
}
- out << nl << "init(_indices, __dbName, __createDb);";
+ out << nl << "init(_indices, __dbName, \"" << keyType->typeId() << "\", \""
+ << valueType->typeId() << "\", __createDb);";
}
out << eb;