summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2001-09-25 23:29:39 +0000
committerMarc Laukien <marc@zeroc.com>2001-09-25 23:29:39 +0000
commit9a5b8decaffd5b7276d571d2d1cf7dc527c9cd3d (patch)
tree919b333472a90ca5977e3c2786ad32a834e1fc5c /cpp
parentfixes (diff)
downloadice-9a5b8decaffd5b7276d571d2d1cf7dc527c9cd3d.tar.bz2
ice-9a5b8decaffd5b7276d571d2d1cf7dc527c9cd3d.tar.xz
ice-9a5b8decaffd5b7276d571d2d1cf7dc527c9cd3d.zip
many, many freeze and other fixes
Diffstat (limited to 'cpp')
-rw-r--r--cpp/demo/Freeze/phonebook/.depend18
-rw-r--r--cpp/demo/Freeze/phonebook/Makefile6
-rw-r--r--cpp/demo/Freeze/phonebook/Parser.cpp34
-rw-r--r--cpp/demo/Freeze/phonebook/PhoneBook.ice20
-rw-r--r--cpp/demo/Freeze/phonebook/PhoneBookI.cpp83
-rw-r--r--cpp/demo/Freeze/phonebook/PhoneBookI.h2
-rw-r--r--cpp/demo/Freeze/phonebook/config2
-rw-r--r--cpp/doc/Makefile1
-rw-r--r--cpp/include/Ice/LocalException.h12
-rw-r--r--cpp/include/Ice/Object.h6
-rw-r--r--cpp/slice/Freeze/DB.ice41
-rw-r--r--cpp/slice/Freeze/DBException.ice59
-rw-r--r--cpp/slice/Freeze/DBF.ice2
-rw-r--r--cpp/slice/Freeze/Evictor.ice1
-rw-r--r--cpp/src/Freeze/.depend9
-rw-r--r--cpp/src/Freeze/DBI.cpp27
-rw-r--r--cpp/src/Freeze/EvictorI.cpp2
-rw-r--r--cpp/src/Freeze/Makefile11
-rw-r--r--cpp/src/Freeze/freeze.dsp53
-rw-r--r--cpp/src/Ice/Collector.cpp10
-rw-r--r--cpp/src/Ice/Incoming.cpp39
-rw-r--r--cpp/src/Ice/LocalException.cpp36
-rw-r--r--cpp/src/Ice/Outgoing.cpp16
-rw-r--r--cpp/src/Ice/TraceUtil.cpp14
-rw-r--r--cpp/src/slice2cpp/Gen.cpp20
-rw-r--r--cpp/src/slice2freeze/Main.cpp2
26 files changed, 380 insertions, 146 deletions
diff --git a/cpp/demo/Freeze/phonebook/.depend b/cpp/demo/Freeze/phonebook/.depend
index 5e8ff59cb7c..7d81c011d48 100644
--- a/cpp/demo/Freeze/phonebook/.depend
+++ b/cpp/demo/Freeze/phonebook/.depend
@@ -1,9 +1,9 @@
-PhoneBook.o: PhoneBook.cpp PhoneBook.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Shared.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/LocalObject.h ../../../include/Ice/LocalException.h
-Grammer.o: Grammer.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h Parser.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h
-Scanner.o: Scanner.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h Parser.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h Grammer.h
-Parser.o: Parser.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h Parser.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h
-Client.o: Client.cpp Parser.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Config.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h
-PhoneBookI.o: PhoneBookI.cpp PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h NameIdentitiesDict.h
-NameIdentitiesDict.o: NameIdentitiesDict.cpp NameIdentitiesDict.h ../../../include/Freeze/DB.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Freeze/DBF.h ../../../include/Freeze/EvictorF.h
-ServantFactory.o: ServantFactory.cpp ServantFactory.h PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h NameIdentitiesDict.h
-Server.o: Server.cpp ServantFactory.h PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h NameIdentitiesDict.h
+PhoneBook.o: PhoneBook.cpp PhoneBook.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Shared.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/LocalObject.h ../../../include/Ice/LocalException.h ../../../include/Freeze/DBException.h
+Grammer.o: Grammer.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h Parser.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Freeze/DBException.h
+Scanner.o: Scanner.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h Parser.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Freeze/DBException.h Grammer.h
+Parser.o: Parser.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h Parser.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Freeze/DBException.h
+Client.o: Client.cpp Parser.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Config.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Freeze/DBException.h
+PhoneBookI.o: PhoneBookI.cpp PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Freeze/DBException.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h NameIdentitiesDict.h
+NameIdentitiesDict.o: NameIdentitiesDict.cpp NameIdentitiesDict.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Freeze/DB.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Incoming.h ../../../include/Freeze/DBException.h ../../../include/Freeze/DBF.h ../../../include/Freeze/EvictorF.h PhoneBook.h
+ServantFactory.o: ServantFactory.cpp ServantFactory.h PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Freeze/DBException.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h NameIdentitiesDict.h
+Server.o: Server.cpp ServantFactory.h PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h ../../../include/Freeze/DBException.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h NameIdentitiesDict.h
diff --git a/cpp/demo/Freeze/phonebook/Makefile b/cpp/demo/Freeze/phonebook/Makefile
index d23d421acd3..0414c0ee54c 100644
--- a/cpp/demo/Freeze/phonebook/Makefile
+++ b/cpp/demo/Freeze/phonebook/Makefile
@@ -38,7 +38,7 @@ LDFLAGS := $(LDFLAGS) -L$(DB)/lib
$(CLIENT): $(OBJS) $(COBJS)
rm -f $@
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS) -lreadline -lcurses
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS) -lFreeze -ldb -lreadline -lcurses
$(SERVER): $(OBJS) $(SOBJS)
rm -f $@
@@ -59,14 +59,14 @@ clean::
PhoneBook.h PhoneBook.cpp: PhoneBook.ice $(SLICE2CPP)
rm -f PhoneBook.h PhoneBook.cpp
- $(SLICE2CPP) PhoneBook.ice
+ $(SLICE2CPP) -I$(slicedir) PhoneBook.ice
clean::
rm -f PhoneBook.h PhoneBook.cpp
NameIdentitiesDict.h NameIdentitiesDict.cpp: PhoneBook.ice $(SLICE2FREEZE)
rm -f NameIdentitiesDict.h NameIdentitiesDict.cpp
- $(SLICE2FREEZE) --dict NameIdentitiesDict,string,Identities NameIdentitiesDict PhoneBook.ice
+ $(SLICE2FREEZE) -I$(slicedir) --dict NameIdentitiesDict,string,Identities NameIdentitiesDict PhoneBook.ice
clean::
rm -f NameIdentitiesDict.h NameIdentitiesDict.cpp
diff --git a/cpp/demo/Freeze/phonebook/Parser.cpp b/cpp/demo/Freeze/phonebook/Parser.cpp
index 9b3d262b1ac..79b7480913b 100644
--- a/cpp/demo/Freeze/phonebook/Parser.cpp
+++ b/cpp/demo/Freeze/phonebook/Parser.cpp
@@ -18,6 +18,7 @@
using namespace std;
using namespace Ice;
+using namespace Freeze;
extern FILE* yyin;
@@ -38,7 +39,6 @@ Parser::usage()
"address ADDRESS Set the address for the current contact to ADDRESS.\n"
"phone PHONE Set the phone number for the current contact to PHONE.\n"
"remove Permanently remove the current contact from the phonebook.\n"
- "list List all names in the phonebook.\n"
"shutdown Shut the phonebook server down.\n";
}
@@ -66,6 +66,10 @@ Parser::addContacts(const std::list<std::string>& args)
cout << "added new contact for `" << *p << "'" << endl;
}
}
+ catch(const DBExceptionPtrE& ex)
+ {
+ error(ex->message);
+ }
catch(const LocalException& ex)
{
error(ex.toString());
@@ -88,6 +92,10 @@ Parser::findContacts(const std::list<std::string>& args)
cout << "number of contacts found: " << _foundContacts.size() << endl;
printCurrent();
}
+ catch(const DBExceptionPtrE& ex)
+ {
+ error(ex->message);
+ }
catch(const LocalException& ex)
{
error(ex.toString());
@@ -121,6 +129,10 @@ Parser::printCurrent()
cout << "no current contact" << endl;
}
}
+ catch(const DBExceptionPtrE& ex)
+ {
+ error(ex->message);
+ }
catch(const LocalException& ex)
{
error(ex.toString());
@@ -148,6 +160,10 @@ Parser::setCurrentName(const std::list<std::string>& args)
cout << "no current contact" << endl;
}
}
+ catch(const DBExceptionPtrE& ex)
+ {
+ error(ex->message);
+ }
catch(const LocalException& ex)
{
error(ex.toString());
@@ -175,6 +191,10 @@ Parser::setCurrentAddress(const std::list<std::string>& args)
cout << "no current contact" << endl;
}
}
+ catch(const DBExceptionPtrE& ex)
+ {
+ error(ex->message);
+ }
catch(const LocalException& ex)
{
error(ex.toString());
@@ -202,6 +222,10 @@ Parser::setCurrentPhone(const std::list<std::string>& args)
cout << "no current contact" << endl;
}
}
+ catch(const DBExceptionPtrE& ex)
+ {
+ error(ex->message);
+ }
catch(const LocalException& ex)
{
error(ex.toString());
@@ -223,6 +247,10 @@ Parser::removeCurrent()
cout << "no current contact" << endl;
}
}
+ catch(const DBExceptionPtrE& ex)
+ {
+ error(ex->message);
+ }
catch(const LocalException& ex)
{
error(ex.toString());
@@ -236,6 +264,10 @@ Parser::shutdown()
{
_phoneBook->shutdown();
}
+ catch(const DBExceptionPtrE& ex)
+ {
+ error(ex->message);
+ }
catch(const LocalException& ex)
{
error(ex.toString());
diff --git a/cpp/demo/Freeze/phonebook/PhoneBook.ice b/cpp/demo/Freeze/phonebook/PhoneBook.ice
index 16cd06c0236..97599ca7bd3 100644
--- a/cpp/demo/Freeze/phonebook/PhoneBook.ice
+++ b/cpp/demo/Freeze/phonebook/PhoneBook.ice
@@ -11,16 +11,18 @@
#ifndef PHONE_BOOK_ICE
#define PHONE_BOOK_ICE
+#include <Freeze/DBException.ice>
+
class Contact
{
- nonmutating string getName();
- void setName(string name);
+ nonmutating string getName() throws Freeze::DBException;
+ void setName(string name) throws Freeze::DBException;
- nonmutating string getAddress();
- void setAddress(string address);
+ nonmutating string getAddress() throws Freeze::DBException;
+ void setAddress(string address) throws Freeze::DBException;
- nonmutating string getPhone();
- void setPhone(string phone);
+ nonmutating string getPhone() throws Freeze::DBException;
+ void setPhone(string phone) throws Freeze::DBException;
//
// Yes, destroy() is nonmutating. It doesn't change the state of
@@ -39,9 +41,9 @@ sequence<string> Identities; // Needed for slice2freeze
interface PhoneBook
{
- Contact* createContact();
- Contacts findContacts(string name);
- void shutdown();
+ Contact* createContact() throws Freeze::DBException;
+ Contacts findContacts(string name) throws Freeze::DBException;
+ void shutdown() throws Freeze::DBException;
};
#endif
diff --git a/cpp/demo/Freeze/phonebook/PhoneBookI.cpp b/cpp/demo/Freeze/phonebook/PhoneBookI.cpp
index e169b2f0809..5735dd6a9da 100644
--- a/cpp/demo/Freeze/phonebook/PhoneBookI.cpp
+++ b/cpp/demo/Freeze/phonebook/PhoneBookI.cpp
@@ -113,25 +113,16 @@ PhoneBookI::createContact()
JTCSyncT<JTCRecursiveMutex> sync(*this); // TODO: Reader/Writer lock
//
- // Get a unique ID
+ // Get a new unique identity.
//
- string identity = "phonebook.contact#";
-#ifdef WIN32 // COMPILERBUG
- char s[20];
- sprintf(s, "%I64d", _nextContactIdentity++);
- identity += s;
-#else
- ostringstream s;
- s << _nextContactIdentity++;
- identity += s.str();
-#endif
-
+ string identity = getNewIdentity();
+
//
// Create a new contact Servant.
//
ContactIPtr contact = new ContactI(this, _evictor);
contact->setIdentity(identity);
-
+
//
// Create a new Ice Object in the evictor, using the new identity
// and the new Servant.
@@ -145,13 +136,13 @@ PhoneBookI::createContact()
Identities identities;
try
{
- identities = _nameIdentitiesDict->get("");
+ identities = _nameIdentitiesDict->get("N");
}
- catch(const DBNotFoundException&)
+ catch(const DBNotFoundExceptionPtrE&)
{
}
identities.push_back(identity);
- _nameIdentitiesDict->put("", identities);
+ _nameIdentitiesDict->put("N", identities);
//
// Turn the identity into a Proxy and return the Proxy to the
@@ -172,9 +163,9 @@ PhoneBookI::findContacts(const string& name)
Identities identities;
try
{
- identities = _nameIdentitiesDict->get(name);
+ identities = _nameIdentitiesDict->get("N" + name);
}
- catch(const DBNotFoundException&)
+ catch(const DBNotFoundExceptionPtrE&)
{
}
@@ -198,13 +189,20 @@ PhoneBookI::remove(const string& identity, const string& name)
JTCSyncT<JTCRecursiveMutex> sync(*this); // TODO: Reader/Writer lock
//
- // We do not catch DBNotFoundException, because it is an
+ // We do not catch DBNotFoundExceptionPtrE, because it is an
// application error if name is not found.
//
- Identities identities = _nameIdentitiesDict->get(name);
+ Identities identities = _nameIdentitiesDict->get("N" + name);
identities.erase(remove_if(identities.begin(), identities.end(), bind2nd(equal_to<string>(), identity)),
identities.end());
- _nameIdentitiesDict->put(name, identities);
+ if (identities.empty())
+ {
+ _nameIdentitiesDict->del("N" + name);
+ }
+ else
+ {
+ _nameIdentitiesDict->put("N" + name, identities);
+ }
}
void
@@ -219,11 +217,48 @@ PhoneBookI::move(const string& identity, const string& oldName, const string& ne
Identities identities;
try
{
- identities = _nameIdentitiesDict->get(newName);
+ identities = _nameIdentitiesDict->get("N" + newName);
}
- catch(const DBNotFoundException&)
+ catch(const DBNotFoundExceptionPtrE&)
{
}
identities.push_back(identity);
- _nameIdentitiesDict->put(newName, identities);
+ _nameIdentitiesDict->put("N" + newName, identities);
}
+
+string
+PhoneBookI::getNewIdentity()
+{
+ Ice::Long id;
+ Identities ids;
+ try
+ {
+ ids = _nameIdentitiesDict->get("ID");
+ assert(ids.size() == 1);
+#ifdef WIN32
+ id = _atoi64(ids.front().c_str()) + 1;
+#else
+ id = atoll(ids.front().c_str()) + 1;
+#endif
+ }
+ catch(const DBNotFoundExceptionPtrE&)
+ {
+ id = 0;
+ }
+
+ char s[20];
+#ifdef WIN32
+ sprintf(s, "%I64d", id);
+#else
+ sprintf(s, "%lld", id);
+#endif
+
+ ids.clear();
+ ids.push_back(s);
+ _nameIdentitiesDict->put("ID", ids);
+
+ return string("phonebook.contact#") + s;
+}
+
+
+
diff --git a/cpp/demo/Freeze/phonebook/PhoneBookI.h b/cpp/demo/Freeze/phonebook/PhoneBookI.h
index ed835f6c109..b214e479c9c 100644
--- a/cpp/demo/Freeze/phonebook/PhoneBookI.h
+++ b/cpp/demo/Freeze/phonebook/PhoneBookI.h
@@ -61,13 +61,13 @@ public:
void remove(const std::string&, const std::string&);
void move(const std::string&, const std::string&, const std::string&);
+ std::string getNewIdentity();
private:
Ice::ObjectAdapterPtr _adapter;
Freeze::DBPtr _db;
Freeze::EvictorPtr _evictor;
- Ice::Long _nextContactIdentity;
NameIdentitiesDictPtr _nameIdentitiesDict;
};
diff --git a/cpp/demo/Freeze/phonebook/config b/cpp/demo/Freeze/phonebook/config
index dcd55eac7ea..3dc1130ff36 100644
--- a/cpp/demo/Freeze/phonebook/config
+++ b/cpp/demo/Freeze/phonebook/config
@@ -2,5 +2,5 @@ Ice.Adapter.PhoneBookAdapter.Endpoints=tcp -p 10000
PhoneBook.PhoneBook=phonebook:tcp -p 10000
PhoneBook.EvictorSize=3
#PhoneBook.SaveAfterMutatingOperation=1
-#Freeze.Trace.DB=1
+Freeze.Trace.DB=1
Freeze.Trace.Evictor=2
diff --git a/cpp/doc/Makefile b/cpp/doc/Makefile
index f40e3100413..dbb573a7103 100644
--- a/cpp/doc/Makefile
+++ b/cpp/doc/Makefile
@@ -25,6 +25,7 @@ SLICEFILES = ../slice/Ice/Communicator.ice \
../slice/Ice/ServantFactory.ice \
../slice/IcePack/Admin.ice \
../slice/Freeze/DB.ice \
+ ../slice/Freeze/DBException.ice \
../slice/Freeze/Evictor.ice
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/include/Ice/LocalException.h b/cpp/include/Ice/LocalException.h
index 41b6e892cb7..9eed6fe4720 100644
--- a/cpp/include/Ice/LocalException.h
+++ b/cpp/include/Ice/LocalException.h
@@ -40,6 +40,18 @@ private:
ICE_API std::ostream& operator<<(std::ostream&, const LocalException&);
+class ICE_API UnknownException : public LocalException
+{
+public:
+
+ UnknownException(const char*, int);
+ UnknownException(const UnknownException&);
+ UnknownException& operator=(const UnknownException&);
+ virtual std::string toString() const;
+ virtual LocalException* clone() const;
+ virtual void raise() const;
+};
+
class ICE_API UnknownUserException : public LocalException
{
public:
diff --git a/cpp/include/Ice/Object.h b/cpp/include/Ice/Object.h
index 54b0f70e373..1ee34b1e58a 100644
--- a/cpp/include/Ice/Object.h
+++ b/cpp/include/Ice/Object.h
@@ -24,10 +24,12 @@ class Stream;
enum DispatchStatus
{
DispatchOK,
- DispatchException,
+ DispatchUserException,
DispatchLocationForward,
DispatchObjectNotExist,
- DispatchOperationNotExist
+ DispatchOperationNotExist,
+ DispatchLocalException,
+ DispatchUnknownException
};
}
diff --git a/cpp/slice/Freeze/DB.ice b/cpp/slice/Freeze/DB.ice
index ce50792a6f4..b4af2bafd34 100644
--- a/cpp/slice/Freeze/DB.ice
+++ b/cpp/slice/Freeze/DB.ice
@@ -12,6 +12,7 @@
#define FREEZE_DB_ICE
#include <Ice/CommunicatorF.ice>
+#include <Freeze/DBException.ice>
#include <Freeze/DBF.ice>
#include <Freeze/EvictorF.ice>
@@ -25,46 +26,6 @@ module Freeze
/**
*
- * A Freeze database exception.
- *
- * @see DBEnvironment
- * @see DBTransaction
- * @see DB
- * @see Evictor
- *
- **/
-local class DBException
-{
- /**
- *
- * A message describing the reason for the exception.
- *
- **/
- string message;
-};
-
-/**
- *
- * A Freeze database exception, indicating that a database record
- * could not be found.
- *
- **/
-local class DBNotFoundException extends DBException
-{
-};
-
-/**
- *
- * A Freeze database deadlock exception. Transactions can react to
- * this exception by aborting and trying the transaction again.
- *
- **/
-local class DBDeadlockException extends DBException
-{
-};
-
-/**
- *
* A database environment. Multiple databases can be created from a
* single database environment. The database environment also offers
* operations to create transactions.
diff --git a/cpp/slice/Freeze/DBException.ice b/cpp/slice/Freeze/DBException.ice
new file mode 100644
index 00000000000..9dac5d4818d
--- /dev/null
+++ b/cpp/slice/Freeze/DBException.ice
@@ -0,0 +1,59 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef FREEZE_DB_EXCEPTION_ICE
+#define FREEZE_DB_EXCEPTION_ICE
+
+module Freeze
+{
+
+/**
+ *
+ * A Freeze database exception.
+ *
+ * @see DBEnvironment
+ * @see DBTransaction
+ * @see DB
+ * @see Evictor
+ *
+ **/
+class DBException
+{
+ /**
+ *
+ * A message describing the reason for the exception.
+ *
+ **/
+ string message;
+};
+
+/**
+ *
+ * A Freeze database exception, indicating that a database record
+ * could not be found.
+ *
+ **/
+class DBNotFoundException extends DBException
+{
+};
+
+/**
+ *
+ * A Freeze database deadlock exception. Transactions can react to
+ * this exception by aborting and trying the transaction again.
+ *
+ **/
+class DBDeadlockException extends DBException
+{
+};
+
+};
+
+#endif
diff --git a/cpp/slice/Freeze/DBF.ice b/cpp/slice/Freeze/DBF.ice
index 3487c3cc3d4..120feb4b602 100644
--- a/cpp/slice/Freeze/DBF.ice
+++ b/cpp/slice/Freeze/DBF.ice
@@ -14,8 +14,6 @@
module Freeze
{
-local class DBException;
-local class DBDeadlockException;
local interface DBEnvironment;
local interface DBTransaction;
local interface DB;
diff --git a/cpp/slice/Freeze/Evictor.ice b/cpp/slice/Freeze/Evictor.ice
index 1ee6aebe832..815d4e81add 100644
--- a/cpp/slice/Freeze/Evictor.ice
+++ b/cpp/slice/Freeze/Evictor.ice
@@ -12,6 +12,7 @@
#define FREEZE_EVICTOR_ICE
#include <Ice/ObjectAdapter.ice>
+#include <Freeze/DBException.ice>
#include <Freeze/DBF.ice>
module Freeze
diff --git a/cpp/src/Freeze/.depend b/cpp/src/Freeze/.depend
index b2187ca180c..53077d687af 100644
--- a/cpp/src/Freeze/.depend
+++ b/cpp/src/Freeze/.depend
@@ -1,4 +1,5 @@
-DB.o: DB.cpp ../../include/Freeze/DB.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Freeze/DBF.h ../../include/Freeze/EvictorF.h ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h
-DBI.o: DBI.cpp ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../Freeze/DBI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Shared.h ../../include/Ice/Ice.h ../../include/Ice/Communicator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/Ice/LoggerF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/PicklerF.h ../../include/Ice/PropertiesF.h ../../include/Ice/ServantFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/ServantFactory.h ../../include/Ice/Pickler.h ../../include/Ice/Initialize.h ../../include/Freeze/DB.h ../../include/Freeze/DBF.h ../../include/Freeze/EvictorF.h ../Freeze/EvictorI.h ../../include/Freeze/Evictor.h ../../include/Freeze/Initialize.h
-Evictor.o: Evictor.cpp ../../include/Freeze/Evictor.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/DBF.h ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h
-EvictorI.o: EvictorI.cpp ../../include/Ice/Object.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/EmitterF.h ../../include/Ice/ReferenceF.h ../Freeze/EvictorI.h ../../include/Ice/Ice.h ../../include/Ice/Communicator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/Ice/LoggerF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/PicklerF.h ../../include/Ice/PropertiesF.h ../../include/Ice/ServantFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/ServantFactory.h ../../include/Ice/Pickler.h ../../include/Ice/Initialize.h ../../include/Ice/InstanceF.h ../../include/Freeze/DB.h ../../include/Freeze/DBF.h ../../include/Freeze/EvictorF.h ../../include/Freeze/Evictor.h
+DB.o: DB.cpp ../../include/Freeze/DB.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/Proxy.h ../../include/IceUtil/Shared.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/EmitterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/Incoming.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObject.h ../../include/Ice/LocalException.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/DBException.h ../../include/Freeze/DBF.h ../../include/Freeze/EvictorF.h
+DBException.o: DBException.cpp ../../include/Freeze/DBException.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/Proxy.h ../../include/IceUtil/Shared.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/EmitterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/Incoming.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObject.h ../../include/Ice/LocalException.h
+Evictor.o: Evictor.cpp ../../include/Freeze/Evictor.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/Proxy.h ../../include/IceUtil/Shared.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/EmitterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/Incoming.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObject.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Freeze/DBException.h ../../include/Freeze/DBF.h
+DBI.o: DBI.cpp ../../include/Ice/Stream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Freeze/DBException.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/Proxy.h ../../include/IceUtil/Shared.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/EmitterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/Ice/Incoming.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObject.h ../../include/Ice/LocalException.h ../Freeze/DBI.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/Functional.h ../../include/Ice/Ice.h ../../include/Ice/Communicator.h ../../include/Ice/LoggerF.h ../../include/Ice/PicklerF.h ../../include/Ice/PropertiesF.h ../../include/Ice/ServantFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/ServantFactory.h ../../include/Ice/Pickler.h ../../include/Ice/Initialize.h ../../include/Freeze/DB.h ../../include/Freeze/DBF.h ../../include/Freeze/EvictorF.h ../Freeze/EvictorI.h ../../include/Freeze/Evictor.h ../../include/Freeze/Initialize.h
+EvictorI.o: EvictorI.cpp ../../include/Ice/Object.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/EmitterF.h ../../include/Ice/ReferenceF.h ../Freeze/EvictorI.h ../../include/Ice/Ice.h ../../include/Ice/Communicator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Native.h ../../include/Ice/LocalObject.h ../../include/Ice/LoggerF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/PicklerF.h ../../include/Ice/PropertiesF.h ../../include/Ice/ServantFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/ServantFactory.h ../../include/Ice/Pickler.h ../../include/Ice/Initialize.h ../../include/Ice/InstanceF.h ../../include/Freeze/DB.h ../../include/Ice/Outgoing.h ../../include/Ice/Stream.h ../../include/Ice/Buffer.h ../../include/Ice/Incoming.h ../../include/Freeze/DBException.h ../../include/Freeze/DBF.h ../../include/Freeze/EvictorF.h ../../include/Freeze/Evictor.h
diff --git a/cpp/src/Freeze/DBI.cpp b/cpp/src/Freeze/DBI.cpp
index f20e62ac201..22615619d70 100644
--- a/cpp/src/Freeze/DBI.cpp
+++ b/cpp/src/Freeze/DBI.cpp
@@ -9,6 +9,7 @@
// **********************************************************************
#include <Ice/Stream.h> // Not included in Ice/Ice.h
+#include <Freeze/DBException.h>
#include <Freeze/DBI.h>
#include <Freeze/EvictorI.h>
#include <Freeze/Initialize.h>
@@ -90,14 +91,13 @@ Freeze::DBEnvironmentI::DBEnvironmentI(const CommunicatorPtr& communicator, cons
}
checkBerkeleyDBReturn(_dbEnv->open(_dbEnv, _name.c_str(),
- DB_CREATE |
- DB_INIT_LOCK |
- DB_INIT_LOG |
- DB_INIT_MPOOL |
- DB_INIT_TXN |
- DB_RECOVER |
- DB_THREAD,
- FREEZE_DB_MODE), _errorPrefix, "DB_ENV->open");
+ DB_CREATE |
+ DB_INIT_LOCK |
+ DB_INIT_LOG |
+ DB_INIT_MPOOL |
+ DB_INIT_TXN |
+ DB_RECOVER,
+ FREEZE_DB_MODE), _errorPrefix, "DB_ENV->open");
}
Freeze::DBEnvironmentI::~DBEnvironmentI()
@@ -324,8 +324,10 @@ Freeze::DBI::DBI(const CommunicatorPtr& communicator, const DBEnvironmentIPtr& d
_logger->trace("DB", s.str());
}
- checkBerkeleyDBReturn(_db->open(_db, name.c_str(), 0, DB_BTREE, DB_CREATE, FREEZE_DB_MODE), _errorPrefix,
+ checkBerkeleyDBReturn(_db->open(_db, _name.c_str(), 0, DB_BTREE, DB_CREATE, FREEZE_DB_MODE), _errorPrefix,
"DB->open");
+
+ _dbEnvObj->add(_name, this);
}
Freeze::DBI::~DBI()
@@ -413,10 +415,7 @@ Freeze::DBI::get(const Key& key)
checkBerkeleyDBReturn(_db->get(_db, 0, &dbKey, &dbData, 0), _errorPrefix, "DB->get");
- Value value;
- value.resize(dbData.size);
- memcpy(value.begin(), dbData.data, dbData.size);
- return value;
+ return Value(static_cast<Byte*>(dbData.data), static_cast<Byte*>(dbData.data) + dbData.size);
}
void
@@ -521,8 +520,8 @@ Freeze::DBI::getServant(const string& identity)
IceInternal::InstancePtr instance = IceInternal::getInstance(_communicator);
IceInternal::Stream stream(instance);
stream.b.resize(dbData.size);
+ copy(static_cast<Byte*>(dbData.data), static_cast<Byte*>(dbData.data) + dbData.size, stream.b.begin());
stream.i = stream.b.begin();
- memcpy(stream.b.begin(), dbData.data, dbData.size);
ObjectPtr servant;
stream.read(servant, "::Ice::Object");
diff --git a/cpp/src/Freeze/EvictorI.cpp b/cpp/src/Freeze/EvictorI.cpp
index 74332675f6b..3104e8b3d2a 100644
--- a/cpp/src/Freeze/EvictorI.cpp
+++ b/cpp/src/Freeze/EvictorI.cpp
@@ -18,7 +18,7 @@ using namespace Freeze;
Freeze::EvictorI::EvictorI(const DBPtr& db, const CommunicatorPtr& communicator) :
_db(db),
- _evictorSize(static_cast<map<string, EvictorElement>::size_type>(10)),
+ _evictorSize(10),
_persistenceMode(SaveUponEviction),
_logger(communicator->getLogger()),
_trace(0)
diff --git a/cpp/src/Freeze/Makefile b/cpp/src/Freeze/Makefile
index 787a8aee7eb..609a2f65f9c 100644
--- a/cpp/src/Freeze/Makefile
+++ b/cpp/src/Freeze/Makefile
@@ -19,8 +19,9 @@ VERSIONED_NAME = $(top_srcdir)/lib/$(VERSIONED_BASE)
TARGETS = $(NAME) $(VERSIONED_NAME)
OBJS = DB.o \
- DBI.o \
+ DBException.o \
Evictor.o \
+ DBI.o \
EvictorI.o
SRCS = $(OBJS:.o=.cpp)
@@ -59,6 +60,14 @@ $(HDIR)/DBF.h: $(IDIR)/DBF.ice $(SLICE2CPP)
clean::
rm -f $(HDIR)/DBF.h
+$(HDIR)/DBException.h DBException.cpp: $(IDIR)/DBException.ice $(SLICE2CPP)
+ rm -f $(HDIR)/DBException.h DBException.cpp
+ $(SLICECMD) $(IDIR)/DBException.ice
+ mv DBException.h $(HDIR)
+
+clean::
+ rm -f $(HDIR)/DBException.h DBException.cpp
+
$(HDIR)/Evictor.h Evictor.cpp: $(IDIR)/Evictor.ice $(SLICE2CPP)
rm -f $(HDIR)/Evictor.h Evictor.cpp
$(SLICECMD) $(IDIR)/Evictor.ice
diff --git a/cpp/src/Freeze/freeze.dsp b/cpp/src/Freeze/freeze.dsp
index f451d224ce5..0b476f8e1c7 100644
--- a/cpp/src/Freeze/freeze.dsp
+++ b/cpp/src/Freeze/freeze.dsp
@@ -108,6 +108,10 @@ SOURCE=.\DB.cpp
# End Source File
# Begin Source File
+SOURCE=.\DBException.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\DBI.cpp
# End Source File
# Begin Source File
@@ -132,6 +136,10 @@ SOURCE=..\..\include\Freeze\DBF.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\Freeze\DBException.h
+# End Source File
+# Begin Source File
+
SOURCE=.\DBI.h
# End Source File
# Begin Source File
@@ -240,6 +248,51 @@ InputPath=..\..\slice\Freeze\DBF.ice
# End Source File
# Begin Source File
+SOURCE=..\..\slice\Freeze\DBException.ice
+
+!IF "$(CFG)" == "Freeze - Win32 Release"
+
+USERDEP__DB_IC="..\..\bin\slice2cpp.exe"
+# Begin Custom Build
+InputPath=..\..\slice\Freeze\DBException.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\lib \
+ ..\..\bin\slice2cpp.exe --dll-export FREEZE_API --include-dir Freeze -I../../slice ../../slice/Freeze/DBException.ice \
+ move DBException.h ..\..\include\Freeze \
+
+
+"..\..\include\Freeze\DBException.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"DBException.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "Freeze - Win32 Debug"
+
+USERDEP__DB_IC="..\..\bin\slice2cpp.exe"
+# Begin Custom Build
+InputPath=..\..\slice\Freeze\DBException.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\lib \
+ ..\..\bin\slice2cpp.exe --dll-export FREEZE_API --include-dir Freeze -I../../slice ../../slice/Freeze/DBException.ice \
+ move DBException.h ..\..\include\Freeze \
+
+
+"..\..\include\Freeze\DBException.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"DBException.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
SOURCE=..\..\slice\Freeze\Evictor.ice
!IF "$(CFG)" == "Freeze - Win32 Release"
diff --git a/cpp/src/Ice/Collector.cpp b/cpp/src/Ice/Collector.cpp
index faed3a338a1..97d09ec7d73 100644
--- a/cpp/src/Ice/Collector.cpp
+++ b/cpp/src/Ice/Collector.cpp
@@ -216,16 +216,6 @@ IceInternal::Collector::message(Stream& stream)
{
JTCSyncT<JTCRecursiveMutex> sync(*this);
warning(ex);
- setState(StateClosed);
- }
- catch(...)
- {
- JTCSyncT<JTCRecursiveMutex> sync(*this);
- string s("server exception:\n");
- s += "unknown exception (no further information available)\n";
- s += _transceiver->toString();
- _logger->warning(s);
- setState(StateClosed);
}
}
while (batch && stream.i < stream.b.end());
diff --git a/cpp/src/Ice/Incoming.cpp b/cpp/src/Ice/Incoming.cpp
index 4d9b0c2cc8b..64209f0b867 100644
--- a/cpp/src/Ice/Incoming.cpp
+++ b/cpp/src/Ice/Incoming.cpp
@@ -37,8 +37,7 @@ IceInternal::Incoming::invoke(Stream& is)
string operation;
_is.read(operation);
- int statusPos = _os.b.size();
- _os.write(Byte(0));
+ Stream::Container::size_type statusPos = _os.b.size();
ObjectPtr servant = _adapter->identityToServant(identity);
ServantLocatorPtr locator;
@@ -57,36 +56,50 @@ IceInternal::Incoming::invoke(Stream& is)
if(!servant)
{
- *(_os.b.begin() + statusPos) = static_cast<Byte>(DispatchObjectNotExist);
+ _os.write(static_cast<Byte>(DispatchObjectNotExist));
}
else
{
+ _os.write(static_cast<Byte>(DispatchOK));
DispatchStatus status = servant->__dispatch(*this, operation);
- if (status != DispatchOK && status != DispatchException && status != DispatchOperationNotExist)
- {
- throw UnknownReplyStatusException(__FILE__, __LINE__);
- }
-
*(_os.b.begin() + statusPos) = static_cast<Byte>(status);
}
+
+ if (locator && servant)
+ {
+ locator->finished(_adapter, identity, servant, operation, cookie);
+ }
}
catch(const LocationForward& p)
{
- *(_os.b.begin() + statusPos) = static_cast<Byte>(DispatchLocationForward);
+ if (locator && servant)
+ {
+ locator->finished(_adapter, identity, servant, operation, cookie);
+ }
+ _os.b.resize(statusPos);
+ _os.write(static_cast<Byte>(DispatchLocationForward));
_os.write(p._prx);
+ return;
}
- catch(...)
+ catch(const LocalException& ex)
{
if (locator && servant)
{
locator->finished(_adapter, identity, servant, operation, cookie);
}
+ _os.b.resize(statusPos);
+ _os.write(static_cast<Byte>(DispatchLocalException));
throw;
}
-
- if (locator && servant)
+ catch(...)
{
- locator->finished(_adapter, identity, servant, operation, cookie);
+ if (locator && servant)
+ {
+ locator->finished(_adapter, identity, servant, operation, cookie);
+ }
+ _os.b.resize(statusPos);
+ _os.write(static_cast<Byte>(DispatchUnknownException));
+ throw UnknownException(__FILE__, __LINE__);
}
}
diff --git a/cpp/src/Ice/LocalException.cpp b/cpp/src/Ice/LocalException.cpp
index 976ede001e7..80d487d5c1a 100644
--- a/cpp/src/Ice/LocalException.cpp
+++ b/cpp/src/Ice/LocalException.cpp
@@ -77,6 +77,42 @@ Ice::operator<<(ostream& out, const LocalException& ex)
return out << s;
}
+Ice::UnknownException::UnknownException(const char* file, int line) :
+ LocalException(file, line)
+{
+}
+
+Ice::UnknownException::UnknownException(const UnknownException& ex) :
+ LocalException(ex)
+{
+}
+
+UnknownException&
+Ice::UnknownException::operator=(const UnknownException& ex)
+{
+ LocalException::operator=(ex);
+ return *this;
+}
+
+string
+Ice::UnknownException::toString() const
+{
+ string s = debugInfo() + "unknown exception";
+ return s;
+}
+
+LocalException*
+Ice::UnknownException::clone() const
+{
+ return new UnknownException(*this);
+}
+
+void
+Ice::UnknownException::raise() const
+{
+ throw *this;
+}
+
Ice::UnknownUserException::UnknownUserException(const char* file, int line) :
LocalException(file, line)
{
diff --git a/cpp/src/Ice/Outgoing.cpp b/cpp/src/Ice/Outgoing.cpp
index b2d7aa9e2b3..f4b3ea8b088 100644
--- a/cpp/src/Ice/Outgoing.cpp
+++ b/cpp/src/Ice/Outgoing.cpp
@@ -199,7 +199,7 @@ IceInternal::Outgoing::finished(Stream& is)
break;
}
- case DispatchException:
+ case DispatchUserException:
{
_state = StateException;
break;
@@ -225,6 +225,20 @@ IceInternal::Outgoing::finished(Stream& is)
break;
}
+ case DispatchLocalException:
+ {
+ _state = StateLocalException;
+ _exception = auto_ptr<LocalException>(new LocalException(__FILE__, __LINE__));
+ break;
+ }
+
+ case DispatchUnknownException:
+ {
+ _state = StateLocalException;
+ _exception = auto_ptr<LocalException>(new UnknownException(__FILE__, __LINE__));
+ break;
+ }
+
default:
{
_state = StateLocalException;
diff --git a/cpp/src/Ice/TraceUtil.cpp b/cpp/src/Ice/TraceUtil.cpp
index 22f35ff1b90..cc6aaaa0203 100644
--- a/cpp/src/Ice/TraceUtil.cpp
+++ b/cpp/src/Ice/TraceUtil.cpp
@@ -154,9 +154,9 @@ IceInternal::traceReply(const char* heading, const Stream& str, const ::Ice::Log
s << "(ok)";
break;
}
- case DispatchException:
+ case DispatchUserException:
{
- s << "(exception)";
+ s << "(user exception)";
break;
}
case DispatchLocationForward:
@@ -174,6 +174,16 @@ IceInternal::traceReply(const char* heading, const Stream& str, const ::Ice::Log
s << "(operation not exist)";
break;
}
+ case DispatchLocalException:
+ {
+ s << "(local exception)";
+ break;
+ }
+ case DispatchUnknownException:
+ {
+ s << "(unknown exception)";
+ break;
+ }
default:
{
s << "(unknown)";
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index c590d22f688..618cfab0c71 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -1777,6 +1777,8 @@ Slice::Gen::ObjectVisitor::visitOperation(const OperationPtr& p)
C << retS << " __ret = ";
}
C << name << args << ';';
+ writeMarshalCode(C, outParams, ret);
+ C << nl << "return ::IceInternal::DispatchOK;";
if (!throws.empty())
{
C << eb;
@@ -1798,12 +1800,10 @@ Slice::Gen::ObjectVisitor::visitOperation(const OperationPtr& p)
{
writeMarshalUnmarshalCode(C, *r, "__ex", true);
}
- C << nl << "return ::IceInternal::DispatchException;";
+ C << nl << "return ::IceInternal::DispatchUserException;";
C << eb;
}
}
- writeMarshalCode(C, outParams, ret);
- C << nl << "return ::IceInternal::DispatchOK;";
C << eb;
}
}
@@ -1868,19 +1868,25 @@ Slice::Gen::IceVisitor::visitClassDefStart(const ClassDefPtr& p)
string scoped = p->scoped();
C << sp;
- C << nl << "void IceInternal::incRef(" << scoped << "* p) { p->__incRef(); }";
- C << nl << "void IceInternal::decRef(" << scoped << "* p) { p->__decRef(); }";
+ C << nl << "void" << nl << "IceInternal::incRef(" << scoped << "* p)";
+ C << sb;
+ C << nl << "p->__incRef();";
+ C << eb;
+ C << nl << "void" << nl << "IceInternal::decRef(" << scoped << "* p)";
+ C << sb;
+ C << nl << "p->__decRef();";
+ C << eb;
if (!p->isLocal())
{
C << sp;
C << nl << "void" << nl << "IceInternal::incRef(::IceProxy" << scoped << "* p)";
C << sb;
- C << "p->__incRef();";
+ C << nl << "p->__incRef();";
C << eb;
C << nl << "void" << nl << "IceInternal::decRef(::IceProxy" << scoped << "* p)";
C << sb;
- C << "p->__decRef();";
+ C << nl << "p->__decRef();";
C << eb;
C << sp;
C << nl << "void" << nl << "IceInternal::checkedCast(::IceProxy::Ice::Object* b, ::IceProxy" << scoped
diff --git a/cpp/src/slice2freeze/Main.cpp b/cpp/src/slice2freeze/Main.cpp
index a419d90b56e..5e5d9d51a17 100644
--- a/cpp/src/slice2freeze/Main.cpp
+++ b/cpp/src/slice2freeze/Main.cpp
@@ -214,7 +214,7 @@ writeDict(const string& n, UnitPtr& unit, const Dict& dict, Output& H, Output& C
C << nl << "IceInternal::Stream keyStream(instance);";
writeMarshalUnmarshalCode(C, keyType, "key", "keyStream", true);
C << nl << "IceInternal::Stream valueStream(instance);";
- writeMarshalUnmarshalCode(C, keyType, "key", "valueStream", true);
+ writeMarshalUnmarshalCode(C, keyType, "value", "valueStream", true);
C << nl << "_db->put(keyStream.b, valueStream.b);";
C << eb;
C << sp << nl << typeToString(valueType) << nl << absolute << "::get(" << inputTypeToString(keyType)