summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2007-01-17 18:11:11 +0000
committerDwayne Boone <dwayne@zeroc.com>2007-01-17 18:11:11 +0000
commite124e693704faa56ecf32ce2a243d0c3fa3a5e6e (patch)
tree071dcaa6edc458f9371289976a4537880e5bb005 /cpp
parentChanged async demo (diff)
downloadice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.tar.bz2
ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.tar.xz
ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.zip
Changed demo
Diffstat (limited to 'cpp')
-rw-r--r--cpp/demo/Ice/async/.depend14
-rw-r--r--cpp/demo/Ice/async/Client.cpp134
-rw-r--r--cpp/demo/Ice/async/Consumer.cpp150
-rw-r--r--cpp/demo/Ice/async/Hello.ice (renamed from cpp/demo/Ice/async/Queue.ice)14
-rw-r--r--cpp/demo/Ice/async/HelloI.cpp43
-rw-r--r--cpp/demo/Ice/async/HelloI.h31
-rw-r--r--cpp/demo/Ice/async/Makefile27
-rw-r--r--cpp/demo/Ice/async/Makefile.mak29
-rw-r--r--cpp/demo/Ice/async/Publisher.cpp100
-rw-r--r--cpp/demo/Ice/async/QueueI.cpp110
-rw-r--r--cpp/demo/Ice/async/QueueI.h38
-rw-r--r--cpp/demo/Ice/async/README14
-rw-r--r--cpp/demo/Ice/async/Server.cpp44
-rw-r--r--cpp/demo/Ice/async/WorkQueue.cpp107
-rw-r--r--cpp/demo/Ice/async/WorkQueue.h46
-rw-r--r--cpp/demo/Ice/async/asyncC.dsp24
-rw-r--r--cpp/demo/Ice/async/asyncP.dsp157
-rw-r--r--cpp/demo/Ice/async/asyncS.dsp34
-rw-r--r--cpp/demo/Ice/async/config.client2
-rw-r--r--cpp/demo/Ice/async/config.server4
20 files changed, 476 insertions, 646 deletions
diff --git a/cpp/demo/Ice/async/.depend b/cpp/demo/Ice/async/.depend
index 3801703d655..29ad1ff08b0 100644
--- a/cpp/demo/Ice/async/.depend
+++ b/cpp/demo/Ice/async/.depend
@@ -1,7 +1,7 @@
-Queue$(OBJEXT): Queue.cpp ./Queue.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/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.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/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/StreamF.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/Ice/StringConverter.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/LocalException.h ../../../include/Ice/ObjectFactory.h ../../../include/IceUtil/Iterator.h ../../../include/IceUtil/ScopedArray.h
-Consumer$(OBJEXT): Consumer.cpp ../../../include/Ice/Application.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/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/LoggerF.h ../../../include/Ice/StreamF.h ../../../include/Ice/StatsF.h ../../../include/Ice/StringConverter.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/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/Stats.h ../../../include/Ice/Communicator.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/LocatorF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ImplicitContextF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/FacetMap.h ../../../include/Ice/Locator.h ../../../include/Ice/ProcessF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/Process.h ../../../include/Ice/Connection.h ../../../include/Ice/Functional.h ../../../include/IceUtil/Functional.h ../../../include/Ice/Stream.h ../../../include/Ice/ImplicitContext.h ../../../include/IceUtil/UUID.h ./Queue.h
-QueueI$(OBJEXT): QueueI.cpp ./QueueI.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Config.h ../../../include/IceUtil/Lock.h ../../../include/IceUtil/ThreadException.h ../../../include/IceUtil/Exception.h ./Queue.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionIF.h ../../../include/Ice/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/StreamF.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/Ice/StringConverter.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/BuiltinSequences.h
-Server$(OBJEXT): Server.cpp ./QueueI.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Config.h ../../../include/IceUtil/Lock.h ../../../include/IceUtil/ThreadException.h ../../../include/IceUtil/Exception.h ./Queue.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionIF.h ../../../include/Ice/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/StreamF.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/Ice/StringConverter.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Application.h ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/LoggerF.h ../../../include/Ice/StatsF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/Stats.h ../../../include/Ice/Communicator.h ../../../include/Ice/RouterF.h ../../../include/Ice/LocatorF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ImplicitContextF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/FacetMap.h ../../../include/Ice/Locator.h ../../../include/Ice/ProcessF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/Process.h ../../../include/Ice/Connection.h ../../../include/Ice/Functional.h ../../../include/IceUtil/Functional.h ../../../include/Ice/Stream.h ../../../include/Ice/ImplicitContext.h
-Publisher$(OBJEXT): Publisher.cpp ../../../include/Ice/Application.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/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/LoggerF.h ../../../include/Ice/StreamF.h ../../../include/Ice/StatsF.h ../../../include/Ice/StringConverter.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/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/Stats.h ../../../include/Ice/Communicator.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/LocatorF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ImplicitContextF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/FacetMap.h ../../../include/Ice/Locator.h ../../../include/Ice/ProcessF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/Process.h ../../../include/Ice/Connection.h ../../../include/Ice/Functional.h ../../../include/IceUtil/Functional.h ../../../include/Ice/Stream.h ../../../include/Ice/ImplicitContext.h ./Queue.h
-Queue.cpp: Queue.ice ../../../slice/Ice/BuiltinSequences.ice
-Queue.ice: $(SLICE2CPP) $(SLICEPARSERLIB)
+Hello$(OBJEXT): Hello.cpp ./Hello.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/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.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/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/StreamF.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/Ice/StringConverter.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/LocalException.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/ObjectFactory.h ../../../include/IceUtil/Iterator.h ../../../include/IceUtil/ScopedArray.h
+Client$(OBJEXT): Client.cpp ../../../include/Ice/Application.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/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/LoggerF.h ../../../include/Ice/StreamF.h ../../../include/Ice/StatsF.h ../../../include/Ice/StringConverter.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/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/Stats.h ../../../include/Ice/Communicator.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/LocatorF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ImplicitContextF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/FacetMap.h ../../../include/Ice/Locator.h ../../../include/Ice/ProcessF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/Process.h ../../../include/Ice/Connection.h ../../../include/Ice/Functional.h ../../../include/IceUtil/Functional.h ../../../include/Ice/Stream.h ../../../include/Ice/ImplicitContext.h ./Hello.h
+HelloI$(OBJEXT): HelloI.cpp ./HelloI.h ./Hello.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/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.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/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/StreamF.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/Ice/StringConverter.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ./WorkQueue.h ../../../include/IceUtil/Thread.h ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/LoggerF.h ../../../include/Ice/StatsF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/Stats.h ../../../include/Ice/Communicator.h ../../../include/Ice/RouterF.h ../../../include/Ice/LocatorF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ImplicitContextF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/FacetMap.h ../../../include/Ice/Locator.h ../../../include/Ice/ProcessF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/Process.h ../../../include/Ice/Application.h ../../../include/Ice/Connection.h ../../../include/Ice/Functional.h ../../../include/IceUtil/Functional.h ../../../include/Ice/Stream.h ../../../include/Ice/ImplicitContext.h
+Server$(OBJEXT): Server.cpp ./HelloI.h ./Hello.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/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.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/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/StreamF.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/Ice/StringConverter.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ./WorkQueue.h ../../../include/IceUtil/Thread.h ../../../include/Ice/Application.h ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/LoggerF.h ../../../include/Ice/StatsF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/Stats.h ../../../include/Ice/Communicator.h ../../../include/Ice/RouterF.h ../../../include/Ice/LocatorF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ImplicitContextF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/FacetMap.h ../../../include/Ice/Locator.h ../../../include/Ice/ProcessF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/Process.h ../../../include/Ice/Connection.h ../../../include/Ice/Functional.h ../../../include/IceUtil/Functional.h ../../../include/Ice/Stream.h ../../../include/Ice/ImplicitContext.h
+WorkQueue$(OBJEXT): WorkQueue.cpp ./WorkQueue.h ./Hello.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/ProxyHandle.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ObjectF.h ../../../include/Ice/GCCountMap.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.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/EndpointIF.h ../../../include/Ice/Endpoint.h ../../../include/Ice/UndefSysMacros.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/OutgoingAsyncF.h ../../../include/Ice/Current.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/Identity.h ../../../include/Ice/StreamF.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/Object.h ../../../include/Ice/GCShared.h ../../../include/Ice/IncomingAsyncF.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Buffer.h ../../../include/Ice/Protocol.h ../../../include/Ice/StringConverter.h ../../../include/IceUtil/Unicode.h ../../../include/Ice/OutgoingAsync.h ../../../include/IceUtil/RecMutex.h ../../../include/Ice/Incoming.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/ServantManagerF.h ../../../include/Ice/IncomingAsync.h ../../../include/Ice/Direct.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/FactoryTable.h ../../../include/Ice/FactoryTableDef.h ../../../include/IceUtil/StaticMutex.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/IceUtil/Thread.h ../../../include/Ice/LocalException.h ../../../include/Ice/BuiltinSequences.h
+Hello.cpp: Hello.ice
+Hello.ice: $(SLICE2CPP) $(SLICEPARSERLIB)
diff --git a/cpp/demo/Ice/async/Client.cpp b/cpp/demo/Ice/async/Client.cpp
new file mode 100644
index 00000000000..cb3e7e862c0
--- /dev/null
+++ b/cpp/demo/Ice/async/Client.cpp
@@ -0,0 +1,134 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Ice/Application.h>
+#include <Hello.h>
+
+using namespace std;
+using namespace Demo;
+
+class AMI_Hello_sayHelloI : public AMI_Hello_sayHello
+{
+public:
+
+ virtual void ice_response()
+ {
+ }
+
+ virtual void ice_exception(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ }
+};
+
+class AsyncClient : public Ice::Application
+{
+public:
+
+ virtual int run(int, char*[]);
+ virtual void interruptCallback(int);
+
+private:
+
+ void menu();
+};
+
+int
+main(int argc, char* argv[])
+{
+ AsyncClient app;
+ return app.main(argc, argv, "config.client");
+}
+
+int
+AsyncClient::run(int argc, char* argv[])
+{
+ callbackOnInterrupt();
+
+ HelloPrx hello = HelloPrx::checkedCast(communicator()->propertyToProxy("Hello.Proxy"));
+ if(!hello)
+ {
+ cerr << argv[0] << ": invalid proxy" << endl;
+ return EXIT_FAILURE;
+ }
+
+ menu();
+
+ char c;
+ do
+ {
+ try
+ {
+ cout << "==> ";
+ cin >> c;
+ if(c == 'i')
+ {
+ hello->sayHello(0);
+ }
+ else if(c == 'd')
+ {
+ hello->sayHello_async(new AMI_Hello_sayHelloI, 5000);
+ }
+ else if(c == 's')
+ {
+ hello->shutdown();
+ }
+ else if(c == 'x')
+ {
+ // Nothing to do
+ }
+ else if(c == '?')
+ {
+ menu();
+ }
+ else
+ {
+ cout << "unknown command `" << c << "'" << endl;
+ menu();
+ }
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ }
+ }
+ while(cin.good() && c != 'x');
+
+ return EXIT_SUCCESS;
+}
+
+void
+AsyncClient::interruptCallback(int)
+{
+ try
+ {
+ communicator()->destroy();
+ }
+ catch(const IceUtil::Exception& ex)
+ {
+ cerr << appName() << ": " << ex << endl;
+ }
+ catch(...)
+ {
+ cerr << appName() << ": unknown exception" << endl;
+ }
+ exit(EXIT_SUCCESS);
+}
+
+void
+AsyncClient::menu()
+{
+ cout <<
+ "usage:\n"
+ "i: send immediate greeting\n"
+ "d: send delayed greeting\n"
+ "s: shutdown server\n"
+ "x: exit\n"
+ "?: help\n";
+}
diff --git a/cpp/demo/Ice/async/Consumer.cpp b/cpp/demo/Ice/async/Consumer.cpp
deleted file mode 100644
index 0de49d933f7..00000000000
--- a/cpp/demo/Ice/async/Consumer.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include <Ice/Application.h>
-#include <IceUtil/UUID.h>
-#include <Queue.h>
-#include <set>
-
-using namespace std;
-using namespace Demo;
-
-static IceUtil::StaticMutex requestsMutex = ICE_STATIC_MUTEX_INITIALIZER;
-static set<string> requests;
-
-class AMI_Queue_getI : public AMI_Queue_get
-{
-public:
- AMI_Queue_getI(const string& id)
- : _id(id)
- {
- IceUtil::StaticMutex::Lock lock(requestsMutex);
- requests.insert(_id);
- }
-
- virtual void ice_response(const string& message)
- {
- IceUtil::StaticMutex::Lock lock(requestsMutex);
- requests.erase(_id);
-
- cout << message << endl;
- }
-
- virtual void ice_exception(const ::Ice::Exception& ex)
- {
- IceUtil::StaticMutex::Lock lock(requestsMutex);
- requests.erase(_id);
-
- cout << ex << endl;
- }
-
-private:
-
- string _id;
-};
-
-class QueueConsumer : public Ice::Application
-{
-public:
-
- virtual int run(int, char*[]);
-
-private:
-
- void menu();
-};
-
-int
-main(int argc, char* argv[])
-{
- QueueConsumer app;
- return app.main(argc, argv, "config.client");
-}
-
-int
-QueueConsumer::run(int argc, char* argv[])
-{
- QueuePrx queue = QueuePrx::checkedCast(communicator()->propertyToProxy("Queue.Proxy"));
- if(!queue)
- {
- cerr << argv[0] << ": invalid proxy" << endl;
- return EXIT_FAILURE;
- }
-
- menu();
-
- char c;
- do
- {
- try
- {
- cout << "==> ";
- cin >> c;
- if(c == 'g')
- {
- string id = IceUtil::generateUUID();
- queue->get_async(new AMI_Queue_getI(id), id);
- }
- else if(c == 'x')
- {
- // Nothing to do
- }
- else if(c == '?')
- {
- menu();
- }
- else
- {
- cout << "unknown command `" << c << "'" << endl;
- menu();
- }
- }
- catch(const Ice::Exception& ex)
- {
- cerr << ex << endl;
- }
- }
- while(cin.good() && c != 'x');
-
-
- //
- // Cancel any outstanding requests.
- //
- /*
- IceUtil::StaticMutex::Lock lock(requestsMutex);
- if(requests.size() != 0)
- {
- try
- {
- vector<string> ids(requests.size());
- for(set<string>::iterator p = requests.begin(); p != requests.end(); ++p)
- {
- ids.push_back(*p);
- }
- queue->cancel(ids);
- }
- catch(const Ice::Exception&)
- {
- // Ignore
- }
- }
- */
-
- return EXIT_SUCCESS;
-}
-
-void
-QueueConsumer::menu()
-{
- cout <<
- "usage:\n"
- "g: get a message\n"
- "x: exit\n"
- "?: help\n";
-}
diff --git a/cpp/demo/Ice/async/Queue.ice b/cpp/demo/Ice/async/Hello.ice
index 4408921ef18..8206d953fc7 100644
--- a/cpp/demo/Ice/async/Queue.ice
+++ b/cpp/demo/Ice/async/Hello.ice
@@ -7,10 +7,8 @@
//
// **********************************************************************
-#ifndef QUEUE_ICE
-#define QUEUE_ICE
-
-#include <Ice/BuiltinSequences.ice>
+#ifndef HELLO_ICE
+#define HELLO_ICE
module Demo
{
@@ -19,14 +17,12 @@ exception RequestCanceledException
{
};
-interface Queue
+interface Hello
{
- ["ami", "amd"] string get(string id)
+ ["ami", "amd"] void sayHello(int delay)
throws RequestCanceledException;
- void add(string message);
-
- ["amd"] void cancel(Ice::StringSeq ids);
+ idempotent void shutdown();
};
};
diff --git a/cpp/demo/Ice/async/HelloI.cpp b/cpp/demo/Ice/async/HelloI.cpp
new file mode 100644
index 00000000000..4f2779faab6
--- /dev/null
+++ b/cpp/demo/Ice/async/HelloI.cpp
@@ -0,0 +1,43 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <HelloI.h>
+#include <Ice/Ice.h>
+
+using namespace std;
+
+HelloI::HelloI(const WorkQueuePtr& workQueue) :
+ _workQueue(workQueue)
+{
+}
+
+void
+HelloI::sayHello_async(const Demo::AMD_Hello_sayHelloPtr& cb, int delay, const Ice::Current&)
+{
+ if(delay == 0)
+ {
+ cout << "Hello World!" << endl;
+ cb->ice_response();
+ }
+ else
+ {
+ _workQueue->add(cb, delay);
+ }
+}
+
+void
+HelloI::shutdown(const Ice::Current& curr)
+{
+ cout << "Shutting down..." << endl;
+
+ _workQueue->destroy();
+ _workQueue->getThreadControl().join();
+
+ curr.adapter->getCommunicator()->shutdown();
+}
diff --git a/cpp/demo/Ice/async/HelloI.h b/cpp/demo/Ice/async/HelloI.h
new file mode 100644
index 00000000000..9651daa8c8c
--- /dev/null
+++ b/cpp/demo/Ice/async/HelloI.h
@@ -0,0 +1,31 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef HELLO_I_H
+#define HELLO_I_H
+
+#include <Hello.h>
+#include <WorkQueue.h>
+
+class HelloI : virtual public Demo::Hello
+{
+public:
+
+ HelloI(const WorkQueuePtr&);
+
+ virtual void sayHello_async(const Demo::AMD_Hello_sayHelloPtr&, int, const Ice::Current&);
+ virtual void shutdown(const Ice::Current&);
+
+private:
+
+ WorkQueuePtr _workQueue;
+};
+
+
+#endif
diff --git a/cpp/demo/Ice/async/Makefile b/cpp/demo/Ice/async/Makefile
index f83dc805a45..72ca9121890 100644
--- a/cpp/demo/Ice/async/Makefile
+++ b/cpp/demo/Ice/async/Makefile
@@ -9,37 +9,30 @@
top_srcdir = ../../..
-PUBLISHER = publiser
-CONSUMER = consumer
+CLIENT = client
SERVER = server
-TARGETS = $(PUBLISHER) $(CONSUMER) $(SERVER)
+TARGETS = $(CLIENT) $(SERVER)
-OBJS = Queue.o
+OBJS = Hello.o
-POBJS = Publisher.o
+COBJS = Client.o
-COBJS = Consumer.o
-
-SOBJS = QueueI.o \
- Server.o
+SOBJS = HelloI.o \
+ Server.o \
+ WorkQueue.o
SRCS = $(OBJS:.o=.cpp) \
$(COBJS:.o=.cpp) \
- $(SOBJS:.o=.cpp) \
- $(POBJS:.o=.cpp)
+ $(SOBJS:.o=.cpp)
-SLICE_SRCS = Queue.ice
+SLICE_SRCS = Hello.ice
include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I. $(CPPFLAGS)
-$(PUBLISHER): $(OBJS) $(POBJS)
- rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(POBJS) $(LIBS)
-
-$(CONSUMER): $(OBJS) $(COBJS)
+$(CLIENT): $(OBJS) $(COBJS)
rm -f $@
$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS)
diff --git a/cpp/demo/Ice/async/Makefile.mak b/cpp/demo/Ice/async/Makefile.mak
index 30bbbaccc2c..3512aaa2fd3 100644
--- a/cpp/demo/Ice/async/Makefile.mak
+++ b/cpp/demo/Ice/async/Makefile.mak
@@ -9,46 +9,39 @@
top_srcdir = ..\..\..
-PUBLISHER = publisher.exe
-CONSUMER = consumer.exe
+CLIENT = client.exe
SERVER = server.exe
-TARGETS = $(PUBLISHER) $(CONSUMER) $(SERVER)
+TARGETS = $(CLIENT) $(SERVER)
-OBJS = Queue.obj
+OBJS = Hello.obj
-POBJS = Publisher.obj
+COBJS = Clinet.obj
-COBJS = Consumer.obj
-
-SOBJS = QueueI.obj \
- Server.obj
+SOBJS = HelloI.obj \
+ Server.obj \
+ WorkQueue.obj
SRCS = $(OBJS:.obj=.cpp) \
$(COBJS:.obj=.cpp) \
- $(SOBJS:.obj=.cpp) \
- $(POBJS:.obj=.cpp)
+ $(SOBJS:.obj=.cpp)
!include $(top_srcdir)/config/Make.rules.mak
CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN
!if "$(CPP_COMPILER)" != "BCC2006" & "$(OPTIMIZE)" != "yes"
-PPDBFLAGS = /pdb:$(PUBLISHER:.exe=.pdb)
-CPDBFLAGS = /pdb:$(CONSUMER:.exe=.pdb)
+CPDBFLAGS = /pdb:$(CLIENT:.exe=.pdb)
SPDBFLAGS = /pdb:$(SERVER:.exe=.pdb)
!endif
-$(PUBLISHER): $(OBJS) $(POBJS)
- $(LINK) $(LD_EXEFLAGS) $(PPDBFLAGS) $(OBJS) $(POBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS)
-
-$(CONSUMER): $(OBJS) $(COBJS)
+$(CLIENT): $(OBJS) $(COBJS)
$(LINK) $(LD_EXEFLAGS) $(CPDBFLAGS) $(OBJS) $(COBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS)
$(SERVER): $(OBJS) $(SOBJS)
$(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(OBJS) $(SOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS)
clean::
- del /q Queue.cpp Queue.h
+ del /q Hello.cpp Hello.h
!include .depend
diff --git a/cpp/demo/Ice/async/Publisher.cpp b/cpp/demo/Ice/async/Publisher.cpp
deleted file mode 100644
index e73796fc45b..00000000000
--- a/cpp/demo/Ice/async/Publisher.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include <Ice/Application.h>
-#include <Queue.h>
-
-using namespace std;
-using namespace Demo;
-
-class QueuePublisher : public Ice::Application
-{
-public:
-
- virtual int run(int, char*[]);
-
-private:
-
- void menu();
- string trim(const string& s);
-};
-
-int
-main(int argc, char* argv[])
-{
- QueuePublisher app;
- return app.main(argc, argv, "config.client");
-}
-
-int
-QueuePublisher::run(int argc, char* argv[])
-{
- QueuePrx queue = QueuePrx::checkedCast(communicator()->propertyToProxy("Queue.Proxy"));
- if(!queue)
- {
- cerr << argv[0] << ": invalid proxy" << endl;
- return EXIT_FAILURE;
- }
-
- cout << "Type a message and hit return to queue a message." << endl;
- menu();
-
- try
- {
- do
- {
- string s;
- cout << "==> ";
- getline(cin, s);
- s = trim(s);
- if(!s.empty())
- {
- if(s[0] == '/')
- {
- if(s == "/quit")
- {
- break;
- }
- menu();
- }
- else
- {
- queue->add(s);
- }
- }
- }
- while(cin.good());
- }
- catch(const Ice::Exception& ex)
- {
- cerr << ex << endl;
- return EXIT_FAILURE;
- }
-
- return EXIT_SUCCESS;
-}
-
-void
-QueuePublisher::menu()
-{
- cout << "Enter /quit to exit." << endl;
-}
-
-string
-QueuePublisher::trim(const string& s)
-{
- static const string delims = "\t\r\n ";
- string::size_type last = s.find_last_not_of(delims);
- if(last != string::npos)
- {
- return s.substr(s.find_first_not_of(delims), last+1);
- }
- return s;
-}
-
diff --git a/cpp/demo/Ice/async/QueueI.cpp b/cpp/demo/Ice/async/QueueI.cpp
deleted file mode 100644
index 1d26e6fcb54..00000000000
--- a/cpp/demo/Ice/async/QueueI.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include <QueueI.h>
-
-using namespace std;
-
-void
-QueueI::get_async(const Demo::AMD_Queue_getPtr& cb, const string& id, const Ice::Current&)
-{
- IceUtil::Mutex::Lock lock(*this);
-
- //
- // If there is already a message in the message queue, send the
- // response immediately. Otherwise add the callback to the
- // request queue.
- //
- if(_messageQueue.size() != 0)
- {
- try
- {
- cb->ice_response(_messageQueue.front());
- _messageQueue.pop_front();
- }
- catch(const Ice::Exception& ex)
- {
- cout << ex << endl;
- }
- }
- else
- {
- Request request;
- request.id = id;
- request.cb = cb;
- _requestQueue.push_back(request);
- }
-}
-
-void
-QueueI::add(const string& message, const Ice::Current&)
-{
- IceUtil::Mutex::Lock lock(*this);
-
- //
- // If there is an outstanding request in the request queue,
- // send a response. Otherwise add the message to the message
- // queue.
- //
- if(_requestQueue.size() != 0)
- {
- try
- {
- _requestQueue.front().cb->ice_response(message);
- }
- catch(const Ice::Exception& ex)
- {
- _messageQueue.push_back(message);
- cout << ex << endl;
- }
- _requestQueue.pop_front();
- }
- else
- {
- _messageQueue.push_back(message);
- }
-}
-
-void
-QueueI::cancel_async(const Demo::AMD_Queue_cancelPtr& cb, const vector<string>& ids, const Ice::Current&)
-{
- //
- // We send immediate response so that later call to ice_exception
- // on queued requests will not cause deadlocks.
- //
- cb->ice_response();
-
- IceUtil::Mutex::Lock lock(*this);
-
- for(vector<string>::const_iterator p = ids.begin(); p != ids.end(); ++p)
- {
- for(list<Request>::iterator q = _requestQueue.begin(); q != _requestQueue.end(); )
- {
- if((*q).id == *p)
- {
- try
- {
- (*q).cb->ice_exception(Demo::RequestCanceledException());
- }
- catch(const Ice::Exception&)
- {
- // Ignore
- }
- list<Request>::iterator erase = q++;
- _requestQueue.erase(erase);
- break;
- }
- else
- {
- ++q;
- }
-
- }
- }
-}
diff --git a/cpp/demo/Ice/async/QueueI.h b/cpp/demo/Ice/async/QueueI.h
deleted file mode 100644
index 461b05fd560..00000000000
--- a/cpp/demo/Ice/async/QueueI.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#ifndef QUEUE_I_H
-#define QUEUE_I_H
-
-#include <IceUtil/Mutex.h>
-#include <Queue.h>
-#include <list>
-
-class QueueI : virtual public Demo::Queue, public IceUtil::Mutex
-{
-public:
-
- virtual void get_async(const Demo::AMD_Queue_getPtr&, const std::string&, const Ice::Current&);
- virtual void add(const std::string&, const Ice::Current&);
- virtual void cancel_async(const Demo::AMD_Queue_cancelPtr&, const std::vector<std::string>&, const Ice::Current&);
-
-private:
-
- struct Request
- {
- std::string id;
- Demo::AMD_Queue_getPtr cb;
- };
-
- std::list<std::string> _messageQueue;
- std::list<Request> _requestQueue;
-};
-
-
-#endif
diff --git a/cpp/demo/Ice/async/README b/cpp/demo/Ice/async/README
index 5356845ea5a..44574f7e1bf 100644
--- a/cpp/demo/Ice/async/README
+++ b/cpp/demo/Ice/async/README
@@ -5,12 +5,14 @@ To run the demo, first start the server:
$ server
-In a second window, start the publisher:
+In a second window, start the client:
-$ publisher
+$ client
-In a third window, start the consumer:
+The demo invocation can either have a short response time or require a
+significant amount of time to complete. For the long running request
+the client uses AMI and the server uses AMD plus a worker thread to
+process the request. While a long request is processing, short
+requests are still able to processed and more long requests can be
+queued for processing by the worker thread.
-$ consumer
-
-Multiple publishers and consumers can be used if so desired.
diff --git a/cpp/demo/Ice/async/Server.cpp b/cpp/demo/Ice/async/Server.cpp
index 64a38295ebb..a3d94180741 100644
--- a/cpp/demo/Ice/async/Server.cpp
+++ b/cpp/demo/Ice/async/Server.cpp
@@ -7,31 +7,63 @@
//
// **********************************************************************
-#include <QueueI.h>
+#include <HelloI.h>
+#include <WorkQueue.h>
#include <Ice/Application.h>
using namespace std;
-class QueueServer : public Ice::Application
+class AsyncServer : public Ice::Application
{
public:
virtual int run(int, char*[]);
+ virtual void interruptCallback(int);
+
+private:
+
+ WorkQueuePtr _workQueue;
};
int
main(int argc, char* argv[])
{
- QueueServer app;
+ AsyncServer app;
return app.main(argc, argv, "config.server");
}
int
-QueueServer::run(int argc, char* argv[])
+AsyncServer::run(int argc, char* argv[])
{
- Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Queue");
- adapter->add(new QueueI, communicator()->stringToIdentity("queue"));
+ callbackOnInterrupt();
+
+ Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Hello");
+ _workQueue = new WorkQueue();
+ adapter->add(new HelloI(_workQueue), communicator()->stringToIdentity("hello"));
+
+ _workQueue->start();
adapter->activate();
+
communicator()->waitForShutdown();
return EXIT_SUCCESS;
}
+
+void
+AsyncServer::interruptCallback(int)
+{
+ _workQueue->destroy();
+ _workQueue->getThreadControl().join();
+
+ try
+ {
+ communicator()->destroy();
+ }
+ catch(const IceUtil::Exception& ex)
+ {
+ cerr << appName() << ": " << ex << endl;
+ }
+ catch(...)
+ {
+ cerr << appName() << ": unknown exception" << endl;
+ }
+}
diff --git a/cpp/demo/Ice/async/WorkQueue.cpp b/cpp/demo/Ice/async/WorkQueue.cpp
new file mode 100644
index 00000000000..0493b8087ab
--- /dev/null
+++ b/cpp/demo/Ice/async/WorkQueue.cpp
@@ -0,0 +1,107 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <WorkQueue.h>
+#include <Ice/LocalException.h>
+
+using namespace std;
+
+WorkQueue::WorkQueue() :
+ _done(false)
+{
+}
+
+void
+WorkQueue::run()
+{
+ IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
+
+ while(!_done)
+ {
+ if(_callbacks.size() == 0)
+ {
+ _monitor.wait();
+ }
+
+ if(_callbacks.size() != 0)
+ {
+ //
+ // Get next work item.
+ //
+ CallbackEntry entry = _callbacks.front();
+
+ //
+ // Wait for the amount of time indicated in delay to
+ // emulate a process that takes a significant period of
+ // time to complete.
+ //
+ _monitor.timedWait(IceUtil::Time::milliSeconds(entry.delay));
+
+ if(!_done)
+ {
+ //
+ // Print greeting and send response.
+ //
+ _callbacks.pop_front();
+ cout << "Belated Hello World!" << endl;
+ entry.cb->ice_response();
+ }
+ }
+ }
+
+ //
+ // Throw exception for any outstanding requests.
+ //
+ list<CallbackEntry>::const_iterator p;
+ for(p = _callbacks.begin(); p != _callbacks.end(); ++p)
+ {
+ (*p).cb->ice_exception(Demo::RequestCanceledException());
+ }
+}
+
+void
+WorkQueue::add(const Demo::AMD_Hello_sayHelloPtr& cb, int delay)
+{
+ IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
+
+ if(!_done)
+ {
+ //
+ // Add work item.
+ //
+ CallbackEntry entry;
+ entry.cb = cb;
+ entry.delay = delay;
+
+ if(_callbacks.size() == 0)
+ {
+ _monitor.notify();
+ }
+ _callbacks.push_back(entry);
+ }
+ else
+ {
+ //
+ // Destroyed, throw exception.
+ //
+ cb->ice_exception(Demo::RequestCanceledException());
+ }
+}
+
+void
+WorkQueue::destroy()
+{
+ IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
+
+ //
+ // Set done flag and notify.
+ //
+ _done = true;
+ _monitor.notify();
+}
diff --git a/cpp/demo/Ice/async/WorkQueue.h b/cpp/demo/Ice/async/WorkQueue.h
new file mode 100644
index 00000000000..9147b2f615d
--- /dev/null
+++ b/cpp/demo/Ice/async/WorkQueue.h
@@ -0,0 +1,46 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef WORK_QUEUE_H
+#define WORK_QUEUE_H
+
+#include <Hello.h>
+#include <IceUtil/Thread.h>
+#include <IceUtil/Monitor.h>
+#include <IceUtil/Mutex.h>
+
+#include <list>
+
+class WorkQueue : public IceUtil::Thread
+{
+public:
+
+ WorkQueue();
+
+ virtual void run();
+
+ void add(const Demo::AMD_Hello_sayHelloPtr&, int);
+ void destroy();
+
+private:
+
+ struct CallbackEntry
+ {
+ Demo::AMD_Hello_sayHelloPtr cb;
+ int delay;
+ };
+
+ IceUtil::Monitor<IceUtil::Mutex> _monitor;
+ std::list<CallbackEntry> _callbacks;
+ bool _done;
+};
+
+typedef IceUtil::Handle<WorkQueue> WorkQueuePtr;
+
+#endif
diff --git a/cpp/demo/Ice/async/asyncC.dsp b/cpp/demo/Ice/async/asyncC.dsp
index 690d96b8534..52b2f390a45 100644
--- a/cpp/demo/Ice/async/asyncC.dsp
+++ b/cpp/demo/Ice/async/asyncC.dsp
@@ -91,11 +91,11 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
-SOURCE=.\Queue.cpp
+SOURCE=.\Hello.cpp
# End Source File
# Begin Source File
-SOURCE=.\Consumer.cpp
+SOURCE=.\Client.cpp
# End Source File
# End Group
# Begin Group "Header Files"
@@ -103,7 +103,7 @@ SOURCE=.\Consumer.cpp
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
-SOURCE=.\Queue.h
+SOURCE=.\Hello.h
# End Source File
# End Group
# Begin Group "Resource Files"
@@ -111,21 +111,21 @@ SOURCE=.\Queue.h
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
-SOURCE=.\Queue.ice
+SOURCE=.\Hello.ice
!IF "$(CFG)" == "asyncC - Win32 Release"
USERDEP__QUEUE="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\slice.lib"
# Begin Custom Build
-InputPath=.\Queue.ice
+InputPath=.\Hello.ice
BuildCmds= \
- ..\..\..\bin\slice2cpp.exe Queue.ice
+ ..\..\..\bin\slice2cpp.exe Hello.ice
-"Queue.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+"Hello.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
-"Queue.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+"Hello.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
@@ -133,15 +133,15 @@ BuildCmds= \
USERDEP__QUEUE="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\sliced.lib"
# Begin Custom Build
-InputPath=.\Queue.ice
+InputPath=.\Hello.ice
BuildCmds= \
- ..\..\..\bin\slice2cpp.exe Queue.ice
+ ..\..\..\bin\slice2cpp.exe Hello.ice
-"Queue.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+"Hello.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
-"Queue.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+"Hello.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
diff --git a/cpp/demo/Ice/async/asyncP.dsp b/cpp/demo/Ice/async/asyncP.dsp
deleted file mode 100644
index 52a91c16015..00000000000
--- a/cpp/demo/Ice/async/asyncP.dsp
+++ /dev/null
@@ -1,157 +0,0 @@
-# Microsoft Developer Studio Project File - Name="asyncP" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=asyncP - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "asyncP.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "asyncP.mak" CFG="asyncP - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "asyncP - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "asyncP - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "asyncP - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /WX /GR /GX /O2 /I "." /I "../../../include" /I "../../../include/stlport" /D "_CONSOLE" /D "NDEBUG" /D "WIN32_LEAN_AND_MEAN" /FD /c
-# SUBTRACT CPP /Fr /YX
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 Ice.lib IceUtil.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"server.exe" /libpath:"../../../lib" /FIXED:no
-# SUBTRACT LINK32 /debug /nodefaultlib
-
-!ELSEIF "$(CFG)" == "asyncP - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../include" /I "../../../include/stlport" /D "_CONSOLE" /D "_DEBUG" /D "WIN32_LEAN_AND_MEAN" /FD /GZ /c
-# SUBTRACT CPP /Fr /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 Iced.lib IceUtild.lib /nologo /subsystem:console /debug /machine:I386 /out:"server.exe" /pdbtype:sept /libpath:"../../../lib" /FIXED:no
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "asyncP - Win32 Release"
-# Name "asyncP - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Publisher.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Queue.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\Queue.ice
-
-!IF "$(CFG)" == "asyncP - Win32 Release"
-
-USERDEP__QUEUE="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\slice.lib"
-# Begin Custom Build
-InputPath=.\Queue.ice
-
-BuildCmds= \
- ..\..\..\bin\slice2cpp.exe Queue.ice
-
-"Queue.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"Queue.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "asyncP - Win32 Debug"
-
-USERDEP__QUEUE="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\sliced.lib"
-# Begin Custom Build
-InputPath=.\Queue.ice
-
-BuildCmds= \
- ..\..\..\bin\slice2cpp.exe Queue.ice
-
-"Queue.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"Queue.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\README
-# End Source File
-# End Target
-# End Project
diff --git a/cpp/demo/Ice/async/asyncS.dsp b/cpp/demo/Ice/async/asyncS.dsp
index c98df8ba5e5..e575863ec56 100644
--- a/cpp/demo/Ice/async/asyncS.dsp
+++ b/cpp/demo/Ice/async/asyncS.dsp
@@ -91,11 +91,15 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
-SOURCE=.\Queue.cpp
+SOURCE=.\Hello.cpp
# End Source File
# Begin Source File
-SOURCE=.\QueueI.cpp
+SOURCE=.\HelloI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\WorkQueue.cpp
# End Source File
# Begin Source File
@@ -107,11 +111,15 @@ SOURCE=.\Server.cpp
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
-SOURCE=.\Queue.h
+SOURCE=.\Hello.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\HelloI.h
# End Source File
# Begin Source File
-SOURCE=.\QueueI.h
+SOURCE=.\WorkQueue.h
# End Source File
# End Group
# Begin Group "Resource Files"
@@ -119,21 +127,21 @@ SOURCE=.\QueueI.h
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
-SOURCE=.\Queue.ice
+SOURCE=.\Hello.ice
!IF "$(CFG)" == "asyncS - Win32 Release"
USERDEP__QUEUE="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\slice.lib"
# Begin Custom Build
-InputPath=.\Queue.ice
+InputPath=.\Hello.ice
BuildCmds= \
- ..\..\..\bin\slice2cpp.exe Queue.ice
+ ..\..\..\bin\slice2cpp.exe Hello.ice
-"Queue.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+"Hello.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
-"Queue.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+"Hello.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
@@ -141,15 +149,15 @@ BuildCmds= \
USERDEP__QUEUE="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\sliced.lib"
# Begin Custom Build
-InputPath=.\Queue.ice
+InputPath=.\Hello.ice
BuildCmds= \
- ..\..\..\bin\slice2cpp.exe Queue.ice
+ ..\..\..\bin\slice2cpp.exe Hello.ice
-"Queue.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+"Hello.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
-"Queue.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+"Hello.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
diff --git a/cpp/demo/Ice/async/config.client b/cpp/demo/Ice/async/config.client
index 9cca378e1e3..0cea3d3bc26 100644
--- a/cpp/demo/Ice/async/config.client
+++ b/cpp/demo/Ice/async/config.client
@@ -2,7 +2,7 @@
# The client reads this property to create the reference to the
# "hello" object in the server.
#
-Queue.Proxy=queue:tcp -p 10000
+Hello.Proxy=hello:tcp -p 10000
#
# Warn about connection exceptions
diff --git a/cpp/demo/Ice/async/config.server b/cpp/demo/Ice/async/config.server
index c7d7b368b1b..05c1345d404 100644
--- a/cpp/demo/Ice/async/config.server
+++ b/cpp/demo/Ice/async/config.server
@@ -1,9 +1,9 @@
#
# The server creates one single object adapter with the name
-# "Queue". The following line sets the endpoints for this
+# "Hello". The following line sets the endpoints for this
# adapter.
#
-Ice.OA.Queue.Endpoints=tcp -p 10000
+Ice.OA.Hello.Endpoints=tcp -p 10000
#
# Warn about connection exceptions