summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2012-07-13 00:18:06 +0200
committerJose <jose@zeroc.com>2012-07-13 00:18:06 +0200
commit70802b63320582f0afa8229659ea9fe4a21d02ec (patch)
treeeb455947cc774cc558f96b8d7c78373d2a6f1c2b /cpp/src
parentICE-4839 - Glacier2 sessionHelper IceSSL plug-in (diff)
downloadice-70802b63320582f0afa8229659ea9fe4a21d02ec.tar.bz2
ice-70802b63320582f0afa8229659ea9fe4a21d02ec.tar.xz
ice-70802b63320582f0afa8229659ea9fe4a21d02ec.zip
WinRT support
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Glacier2Lib/SessionHelper.cpp2
-rw-r--r--cpp/src/Glacier2Lib/winrt/.depend.mak14
-rw-r--r--cpp/src/Glacier2Lib/winrt/Makefile.mak72
-rw-r--r--cpp/src/Ice/Acceptor.h2
-rwxr-xr-xcpp/src/Ice/ConnectionFactory.cpp16
-rw-r--r--cpp/src/Ice/ConnectionFactory.h3
-rw-r--r--cpp/src/Ice/ConnectionI.cpp22
-rw-r--r--cpp/src/Ice/ConnectionI.h6
-rw-r--r--cpp/src/Ice/Connector.h6
-rw-r--r--cpp/src/Ice/DynamicLibrary.cpp5
-rw-r--r--cpp/src/Ice/EndpointI.cpp36
-rw-r--r--cpp/src/Ice/EndpointI.h20
-rw-r--r--cpp/src/Ice/EventHandler.cpp2
-rw-r--r--cpp/src/Ice/EventHandler.h4
-rw-r--r--cpp/src/Ice/Exception.cpp47
-rw-r--r--cpp/src/Ice/ImplicitContextI.cpp51
-rw-r--r--cpp/src/Ice/Instance.cpp40
-rw-r--r--cpp/src/Ice/Instance.h1
-rw-r--r--cpp/src/Ice/Network.cpp2153
-rw-r--r--cpp/src/Ice/Network.h153
-rw-r--r--cpp/src/Ice/PropertiesI.cpp17
-rw-r--r--cpp/src/Ice/Selector.cpp89
-rw-r--r--cpp/src/Ice/Selector.h40
-rw-r--r--cpp/src/Ice/TcpAcceptor.cpp29
-rw-r--r--cpp/src/Ice/TcpAcceptor.h10
-rw-r--r--cpp/src/Ice/TcpConnector.cpp10
-rw-r--r--cpp/src/Ice/TcpConnector.h13
-rw-r--r--cpp/src/Ice/TcpEndpointI.cpp4
-rw-r--r--cpp/src/Ice/TcpEndpointI.h4
-rw-r--r--cpp/src/Ice/TcpTransceiver.cpp56
-rw-r--r--cpp/src/Ice/TcpTransceiver.h8
-rw-r--r--cpp/src/Ice/ThreadPool.cpp128
-rw-r--r--cpp/src/Ice/ThreadPool.h14
-rw-r--r--cpp/src/Ice/Transceiver.h2
-rw-r--r--cpp/src/Ice/UdpConnector.cpp12
-rw-r--r--cpp/src/Ice/UdpConnector.h14
-rw-r--r--cpp/src/Ice/UdpEndpointI.cpp3
-rw-r--r--cpp/src/Ice/UdpEndpointI.h4
-rw-r--r--cpp/src/Ice/UdpTransceiver.cpp482
-rw-r--r--cpp/src/Ice/UdpTransceiver.h51
-rw-r--r--cpp/src/Ice/winrt/.depend.mak146
-rw-r--r--cpp/src/Ice/winrt/.gitignore2
-rw-r--r--cpp/src/Ice/winrt/Makefile.mak272
-rw-r--r--cpp/src/Ice/winrt/StreamAcceptor.cpp217
-rw-r--r--cpp/src/Ice/winrt/StreamAcceptor.h69
-rw-r--r--cpp/src/Ice/winrt/StreamConnector.cpp152
-rw-r--r--cpp/src/Ice/winrt/StreamConnector.h53
-rw-r--r--cpp/src/Ice/winrt/StreamEndpointI.cpp623
-rw-r--r--cpp/src/Ice/winrt/StreamEndpointI.h90
-rw-r--r--cpp/src/Ice/winrt/StreamTransceiver.cpp444
-rw-r--r--cpp/src/Ice/winrt/StreamTransceiver.h93
-rw-r--r--cpp/src/IceGridLib/winrt/.depend.mak21
-rw-r--r--cpp/src/IceGridLib/winrt/Makefile.mak81
-rwxr-xr-xcpp/src/IcePatch2Lib/ClientUtil.cpp1
-rw-r--r--cpp/src/IceSSL/AcceptorI.cpp4
-rw-r--r--cpp/src/IceSSL/ConnectorI.cpp2
-rw-r--r--cpp/src/IceStormLib/winrt/.depend.mak3
-rw-r--r--cpp/src/IceStormLib/winrt/Makefile.mak55
-rw-r--r--cpp/src/IceUtil/Cond.cpp12
-rw-r--r--cpp/src/IceUtil/CountDownLatch.cpp8
-rw-r--r--cpp/src/IceUtil/FileUtil.cpp17
-rw-r--r--cpp/src/IceUtil/RecMutex.cpp2
-rw-r--r--cpp/src/IceUtil/StringUtil.cpp64
-rw-r--r--cpp/src/IceUtil/Thread.cpp26
-rw-r--r--cpp/src/IceUtil/UUID.cpp24
-rw-r--r--cpp/src/IceUtil/winrt/.depend.mak20
-rw-r--r--cpp/src/IceUtil/winrt/Makefile.mak66
-rw-r--r--cpp/src/Makefile.mak10
-rw-r--r--cpp/src/Slice/CPlusPlusUtil.cpp1
-rw-r--r--cpp/src/Slice/PHPUtil.cpp1
70 files changed, 4874 insertions, 1350 deletions
diff --git a/cpp/src/Glacier2Lib/SessionHelper.cpp b/cpp/src/Glacier2Lib/SessionHelper.cpp
index 861543e2c49..801b4de1a5a 100644
--- a/cpp/src/Glacier2Lib/SessionHelper.cpp
+++ b/cpp/src/Glacier2Lib/SessionHelper.cpp
@@ -1004,10 +1004,12 @@ Glacier2::SessionFactoryHelper::createInitData()
os << _timeout;
}
initData.properties->setProperty("Ice.Default.Router", os.str());
+#ifndef ICE_OS_WINRT
if(_secure)
{
initData.properties->setProperty("Ice.Plugin.IceSSL","IceSSL:createIceSSL");
}
+#endif
}
return initData;
}
diff --git a/cpp/src/Glacier2Lib/winrt/.depend.mak b/cpp/src/Glacier2Lib/winrt/.depend.mak
new file mode 100644
index 00000000000..06d130304a2
--- /dev/null
+++ b/cpp/src/Glacier2Lib/winrt/.depend.mak
@@ -0,0 +1,14 @@
+$(ARCH)\$(CONFIG)\PermissionsVerifier$(OBJEXT): ..\PermissionsVerifier.cpp "$(includedir)\Glacier2\PermissionsVerifier.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\IceUtil\Iterator.h"
+$(ARCH)\$(CONFIG)\Router$(OBJEXT): ..\Router.cpp "$(includedir)\Glacier2\Router.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\Router.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Glacier2\Session.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\IceUtil\Iterator.h"
+$(ARCH)\$(CONFIG)\SSLInfo$(OBJEXT): ..\SSLInfo.cpp "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h"
+$(ARCH)\$(CONFIG)\Session$(OBJEXT): ..\Session.cpp "$(includedir)\Glacier2\Session.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\IceUtil\Iterator.h"
+$(ARCH)\$(CONFIG)\SessionHelper$(OBJEXT): ..\SessionHelper.cpp "$(includedir)\Glacier2\SessionHelper.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\Ice.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Logger.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Stats.h" "$(includedir)\Ice\CommunicatorAsync.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\ServantLocator.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\ConnectionAsync.h" "$(includedir)\Ice\Functional.h" "$(includedir)\IceUtil\Functional.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\Locator.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\ProcessF.h" "$(includedir)\Ice\Router.h" "$(includedir)\Ice\DispatchInterceptor.h" "$(includedir)\Glacier2\Session.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\Glacier2\Router.h" "$(includedir)\IceUtil\UUID.h" "$(includedir)\IceUtil\CountDownLatch.h"
+$(ARCH)\$(CONFIG)\RouterF$(OBJEXT): ..\RouterF.cpp "$(includedir)\Glacier2\RouterF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h"
+
+$(HDIR)\PermissionsVerifierF.h ..\PermissionsVerifierF.cpp: "$(slicedir)\Glacier2\PermissionsVerifierF.ice" "$(SLICE2CPP)"
+$(HDIR)\PermissionsVerifier.h ..\PermissionsVerifier.cpp: "$(slicedir)\Glacier2\PermissionsVerifier.ice" "$(slicedir)\Glacier2\SSLInfo.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(HDIR)\Router.h ..\Router.cpp: "$(slicedir)\Glacier2\Router.ice" "$(slicedir)\Ice\Router.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Glacier2\Session.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Glacier2\SSLInfo.ice" "$(SLICE2CPP)"
+$(HDIR)\RouterF.h ..\RouterF.cpp: "$(slicedir)\Glacier2\RouterF.ice" "$(SLICE2CPP)"
+$(HDIR)\Session.h ..\Session.cpp: "$(slicedir)\Glacier2\Session.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Glacier2\SSLInfo.ice" "$(SLICE2CPP)"
+$(HDIR)\SSLInfo.h ..\SSLInfo.cpp: "$(slicedir)\Glacier2\SSLInfo.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+
diff --git a/cpp/src/Glacier2Lib/winrt/Makefile.mak b/cpp/src/Glacier2Lib/winrt/Makefile.mak
new file mode 100644
index 00000000000..f1efcc99789
--- /dev/null
+++ b/cpp/src/Glacier2Lib/winrt/Makefile.mak
@@ -0,0 +1,72 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2012 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.
+#
+# **********************************************************************
+
+top_srcdir = ..\..\..
+LIBNAME = $(SDK_LIBRARY_PATH)\glacier2.lib
+TARGETS = $(LIBNAME)
+SOURCE_DIR = ..
+
+TARGETS = $(LIBNAME)
+
+OBJS = $(ARCH)\$(CONFIG)\PermissionsVerifier.obj \
+ $(ARCH)\$(CONFIG)\Router.obj \
+ $(ARCH)\$(CONFIG)\SSLInfo.obj \
+ $(ARCH)\$(CONFIG)\Session.obj \
+ $(ARCH)\$(CONFIG)\SessionHelper.obj
+
+SRCS = $(OBJS:.obj=.cpp)
+SRCS = $(SRCS:x86\=)
+SRCS = $(SRCS:x64\=)
+SRCS = $(SRCS:Retail\=..\)
+SRCS = $(SRCS:Debug\=..\)
+
+SRCS = $(SRCS) \
+ ..\RouterF.cpp
+
+HDIR = $(headerdir)\Glacier2
+SDIR = $(slicedir)\Glacier2
+
+SLICE_SRCS = $(SDIR)/PermissionsVerifierF.ice \
+ $(SDIR)/PermissionsVerifier.ice \
+ $(SDIR)/Router.ice \
+ $(SDIR)/RouterF.ice \
+ $(SDIR)/Session.ice \
+ $(SDIR)/SSLInfo.ice
+
+CPPFLAGS = -I..\.. $(CPPFLAGS) -DGLACIER2_API_EXPORTS -DWIN32_LEAN_AND_MEAN
+
+!include $(top_srcdir)\config\Make.rules.mak
+
+RES_FILE = $(SOURCE_DIR)\Glacier2.res
+
+SLICE2CPPFLAGS = --include-dir Glacier2 --dll-export GLACIER2_API $(SLICE2CPPFLAGS)
+
+$(LIBNAME): $(OBJS) $(RES_FILE) sdks
+ $(AR) $(ARFLAGS) $(OBJS) /out:$(LIBNAME)
+
+depend::
+ del /q .depend.mak
+
+.cpp.depend:
+ $(CXX) /Fo$(ARCH)\$(CONFIG)\ /Fd$(ARCH)\$(CONFIG)\ /Zs /showIncludes $(CXXFLAGS) $(CPPFLAGS) $< 2>&1 | python.exe $(ice_dir)/config/makedepend-winrt.py $<
+
+depend:: $(ARCH)\$(CONFIG) $(SLICE_SRCS) $(SRCS) $(SRCS_DEPEND)
+ @if not "$(SLICE_SRCS)" == "" \
+ $(SLICE2CPP) --depend $(SLICE2CPPFLAGS) $(SLICE_SRCS) | python.exe $(ice_dir)\config\makedepend-winrt.py
+
+clean::
+ -del /q $(SOURCE_DIR)\PermissionsVerifierF.cpp $(HDIR)\PermissionsVerifierF.h
+ -del /q $(SOURCE_DIR)\PermissionsVerifier.cpp $(HDIR)\PermissionsVerifier.h
+ -del /q $(SOURCE_DIR)\RouterF.cpp $(HDIR)\RouterF.h
+ -del /q $(SOURCE_DIR)\Router.cpp $(HDIR)\Router.h
+ -del /q $(SOURCE_DIR)\Session.cpp $(HDIR)\Session.h
+ -del /q $(SOURCE_DIR)\SSLInfo.cpp $(HDIR)\SSLInfo.h
+ -del /q $(RES_FILE)
+
+!include .depend.mak
diff --git a/cpp/src/Ice/Acceptor.h b/cpp/src/Ice/Acceptor.h
index 5725f12a58e..27fdba1a1cb 100644
--- a/cpp/src/Ice/Acceptor.h
+++ b/cpp/src/Ice/Acceptor.h
@@ -25,7 +25,7 @@ public:
virtual NativeInfoPtr getNativeInfo() = 0;
virtual void close() = 0;
virtual void listen() = 0;
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
virtual void startAccept() = 0;
virtual void finishAccept() = 0;
#endif
diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp
index 0073c442dca..21e642ce572 100755
--- a/cpp/src/Ice/ConnectionFactory.cpp
+++ b/cpp/src/Ice/ConnectionFactory.cpp
@@ -1309,7 +1309,7 @@ IceInternal::IncomingConnectionFactory::flushAsyncBatchRequests(const Communicat
}
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool
IceInternal::IncomingConnectionFactory::startAsync(SocketOperation)
{
@@ -1657,13 +1657,13 @@ IceInternal::IncomingConnectionFactory::setState(State state)
state = StateFinished;
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
//
- // With IOCP, we close the acceptor now to cancel all the pending asynchronous
- // operations. It's important to wait for the pending asynchronous operations
- // to return before ConnectionI::finished(). Otherwise, if there was a pending
- // message waiting to be sent, the connection wouldn't know whether or not the
- // send failed or succeeded, potentially breaking at-most-once semantics.
+ // With IOCP and WinRT, we close the acceptor now to cancel all the pending
+ // asynchronous operations. It's important to wait for the pending asynchronous
+ // operations to return before ConnectionI::finished(). Otherwise, if there was
+ // a pending message waiting to be sent, the connection wouldn't know whether
+ // or not the send failed or succeeded, potentially breaking at-most-once semantics.
//
if(_acceptor)
{
@@ -1685,7 +1685,7 @@ IceInternal::IncomingConnectionFactory::setState(State state)
case StateFinished:
{
assert(_state == StateClosed);
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
if(_acceptor)
{
_acceptor->close();
diff --git a/cpp/src/Ice/ConnectionFactory.h b/cpp/src/Ice/ConnectionFactory.h
index c73489547b4..846248b8e40 100644
--- a/cpp/src/Ice/ConnectionFactory.h
+++ b/cpp/src/Ice/ConnectionFactory.h
@@ -175,10 +175,11 @@ public:
// Operations from EventHandler
//
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
virtual bool startAsync(SocketOperation);
virtual bool finishAsync(SocketOperation);
#endif
+
virtual void message(ThreadPoolCurrent&);
virtual void finished(ThreadPoolCurrent&);
virtual std::string toString() const;
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp
index da9cf31f1fa..f6a16b0f9d6 100644
--- a/cpp/src/Ice/ConnectionI.cpp
+++ b/cpp/src/Ice/ConnectionI.cpp
@@ -1132,7 +1132,7 @@ Ice::ConnectionI::createProxy(const Identity& ident) const
return _instance->proxyFactory()->referenceToProxy(_instance->referenceFactory()->create(ident, self));
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool
Ice::ConnectionI::startAsync(SocketOperation operation)
{
@@ -1599,7 +1599,7 @@ Ice::ConnectionI::finish()
OutgoingMessage* message = &_sendStreams.front();
_writeStream.swap(*message->stream);
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
//
// The current message might be sent but not yet removed from _sendStreams. If
// the response has been received in the meantime, we remove the message from
@@ -2020,7 +2020,7 @@ Ice::ConnectionI::setState(State state)
return;
}
_threadPool->finish(this);
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
_transceiver->close();
#endif
break;
@@ -2029,7 +2029,7 @@ Ice::ConnectionI::setState(State state)
case StateFinished:
{
assert(_state == StateClosed);
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
_transceiver->close();
#endif
_communicator = 0;
@@ -2302,6 +2302,7 @@ Ice::ConnectionI::sendNextMessage(vector<OutgoingAsyncMessageCallbackPtr>& callb
//
message = &_sendStreams.front();
assert(!message->stream->i);
+#ifndef ICE_OS_WINRT
if(message->compress && message->stream->b.size() >= 100) // Only compress messages > 100 bytes.
{
//
@@ -2329,6 +2330,7 @@ Ice::ConnectionI::sendNextMessage(vector<OutgoingAsyncMessageCallbackPtr>& callb
}
else
{
+#endif
if(message->compress)
{
//
@@ -2356,7 +2358,9 @@ Ice::ConnectionI::sendNextMessage(vector<OutgoingAsyncMessageCallbackPtr>& callb
{
traceSend(*message->stream, _logger, _traceLevels);
}
+#ifndef ICE_OS_WINRT
}
+#endif
_writeStream.swap(*message->stream);
//
@@ -2410,7 +2414,7 @@ Ice::ConnectionI::sendMessage(OutgoingMessage& message)
//
message.stream->i = message.stream->b.begin();
-
+#ifndef ICE_OS_WINRT
if(message.compress && message.stream->b.size() >= 100) // Only compress messages larger than 100 bytes.
{
//
@@ -2457,6 +2461,7 @@ Ice::ConnectionI::sendMessage(OutgoingMessage& message)
}
else
{
+#endif
if(message.compress)
{
//
@@ -2506,7 +2511,9 @@ Ice::ConnectionI::sendMessage(OutgoingMessage& message)
_sendStreams.push_back(message);
_sendStreams.back().adopt(0); // Adopt the stream.
+#ifndef ICE_OS_WINRT
}
+#endif
_writeStream.swap(*_sendStreams.back().stream);
scheduleTimeout(SocketOperationWrite, _endpoint->timeout());
@@ -2514,6 +2521,7 @@ Ice::ConnectionI::sendMessage(OutgoingMessage& message)
return AsyncStatusQueued;
}
+#ifndef ICE_OS_WINRT
static string
getBZ2Error(int bzError)
{
@@ -2658,6 +2666,7 @@ Ice::ConnectionI::doUncompress(BasicStream& compressed, BasicStream& uncompresse
copy(compressed.b.begin(), compressed.b.begin() + headerSize, uncompressed.b.begin());
}
+#endif
void
Ice::ConnectionI::parseMessage(BasicStream& stream, Int& invokeNum, Int& requestId, Byte& compress,
@@ -2685,12 +2694,15 @@ Ice::ConnectionI::parseMessage(BasicStream& stream, Int& invokeNum, Int& request
Byte messageType;
stream.read(messageType);
stream.read(compress);
+
+#ifndef ICE_OS_WINRT
if(compress == 2)
{
BasicStream ustream(_instance.get());
doUncompress(stream, ustream);
stream.b.swap(ustream.b);
}
+#endif
stream.i = stream.b.begin() + headerSize;
switch(messageType)
diff --git a/cpp/src/Ice/ConnectionI.h b/cpp/src/Ice/ConnectionI.h
index de6a3a99e86..8648f8f302c 100644
--- a/cpp/src/Ice/ConnectionI.h
+++ b/cpp/src/Ice/ConnectionI.h
@@ -128,10 +128,11 @@ public:
//
// Operations from EventHandler
//
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool startAsync(IceInternal::SocketOperation);
bool finishAsync(IceInternal::SocketOperation);
#endif
+
virtual void message(IceInternal::ThreadPoolCurrent&);
virtual void finished(IceInternal::ThreadPoolCurrent&);
virtual std::string toString() const; // From Connection and EvantHandler.
@@ -213,9 +214,10 @@ private:
void sendNextMessage(std::vector<IceInternal::OutgoingAsyncMessageCallbackPtr>&);
IceInternal::AsyncStatus sendMessage(OutgoingMessage&);
+#ifndef ICE_OS_WINRT
void doCompress(IceInternal::BasicStream&, IceInternal::BasicStream&);
void doUncompress(IceInternal::BasicStream&, IceInternal::BasicStream&);
-
+#endif
void parseMessage(IceInternal::BasicStream&, Int&, Int&, Byte&,
IceInternal::ServantManagerPtr&, ObjectAdapterPtr&, IceInternal::OutgoingAsyncPtr&);
void invokeAll(IceInternal::BasicStream&, Int, Int, Byte,
diff --git a/cpp/src/Ice/Connector.h b/cpp/src/Ice/Connector.h
index d9dab988181..58bd62bf900 100644
--- a/cpp/src/Ice/Connector.h
+++ b/cpp/src/Ice/Connector.h
@@ -14,12 +14,6 @@
#include <Ice/ConnectorF.h>
#include <Ice/TransceiverF.h>
-#ifdef _WIN32
-# include <winsock2.h>
-#else
-# define SOCKET int
-#endif
-
namespace IceInternal
{
diff --git a/cpp/src/Ice/DynamicLibrary.cpp b/cpp/src/Ice/DynamicLibrary.cpp
index 09e5b4ae269..15c9007cb9b 100644
--- a/cpp/src/Ice/DynamicLibrary.cpp
+++ b/cpp/src/Ice/DynamicLibrary.cpp
@@ -176,7 +176,9 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint, bool useIc
bool
IceInternal::DynamicLibrary::load(const string& lib)
{
-#ifdef _WIN32
+#ifdef ICE_OS_WINRT
+ _hnd = LoadPackagedLibrary(IceUtil::stringToWstring(nativeToUTF8(_stringConverter, lib)).c_str(), 0);
+#elif defined(_WIN32)
_hnd = LoadLibraryW(IceUtil::stringToWstring(nativeToUTF8(_stringConverter, lib)).c_str());
#else
@@ -250,3 +252,4 @@ IceInternal::DynamicLibraryList::add(const DynamicLibraryPtr& library)
{
_libraries.push_back(library);
}
+
diff --git a/cpp/src/Ice/EndpointI.cpp b/cpp/src/Ice/EndpointI.cpp
index 5ac241dd909..afb8bdd2743 100644
--- a/cpp/src/Ice/EndpointI.cpp
+++ b/cpp/src/Ice/EndpointI.cpp
@@ -10,7 +10,6 @@
#include <Ice/EndpointI.h>
#include <Ice/Instance.h>
#include <Ice/LocalException.h>
-#include <Ice/Network.h>
#include <Ice/PropertiesI.h>
#include <Ice/LoggerUtil.h>
#include <IceUtil/MutexPtrLock.h>
@@ -58,7 +57,7 @@ IceInternal::EndpointI::ice_getHash() const
}
vector<ConnectorPtr>
-IceInternal::EndpointI::connectors(const vector<struct sockaddr_storage>& addrs) const
+IceInternal::EndpointI::connectors(const vector<Address>& addrs) const
{
//
// This method must be extended by endpoints which use the EndpointHostResolver to create
@@ -72,6 +71,8 @@ IceInternal::EndpointI::EndpointI() : _hashInitialized(false)
{
}
+#ifndef ICE_OS_WINRT
+
IceInternal::EndpointHostResolver::EndpointHostResolver(const InstancePtr& instance) :
IceUtil::Thread("Ice endpoint host resolver thread"),
_instance(instance),
@@ -105,7 +106,7 @@ IceInternal::EndpointHostResolver::EndpointHostResolver(const InstancePtr& insta
void
IceInternal::EndpointHostResolver::resolve(const string& host, int port, const EndpointIPtr& endpoint,
const EndpointI_connectorsPtr& callback)
-{
+{
//
// Try to get the addresses without DNS lookup. If this doesn't work, we queue a resolve
// entry and the thread will take care of getting the endpoint addresses.
@@ -188,3 +189,32 @@ IceInternal::EndpointHostResolver::run()
}
_queue.clear();
}
+
+#else
+
+IceInternal::EndpointHostResolver::EndpointHostResolver(const InstancePtr& instance)
+{
+}
+
+void
+IceInternal::EndpointHostResolver::resolve(const string&, int,
+ const EndpointIPtr& endpoint,
+ const EndpointI_connectorsPtr& callback)
+{
+ //
+ // No DNS lookup support with WinRT.
+ //
+ callback->connectors(endpoint->connectors());
+}
+
+void
+IceInternal::EndpointHostResolver::destroy()
+{
+}
+
+void
+IceInternal::EndpointHostResolver::run()
+{
+}
+
+#endif
diff --git a/cpp/src/Ice/EndpointI.h b/cpp/src/Ice/EndpointI.h
index cde1f4bf4e4..1d170e9bb6d 100644
--- a/cpp/src/Ice/EndpointI.h
+++ b/cpp/src/Ice/EndpointI.h
@@ -10,6 +10,7 @@
#ifndef ICE_ENDPOINT_I_H
#define ICE_ENDPOINT_I_H
+#include <IceUtil/Config.h>
#include <IceUtil/Shared.h>
#include <IceUtil/Thread.h>
#include <IceUtil/Monitor.h>
@@ -20,15 +21,12 @@
#include <Ice/ConnectorF.h>
#include <Ice/AcceptorF.h>
#include <Ice/Protocol.h>
+#include <Ice/Network.h>
-#ifdef _WIN32
-# include <winsock2.h>
-#else
-# include <sys/socket.h> // For struct sockaddr_storage
+#ifndef ICE_OS_WINRT
+# include <deque>
#endif
-#include <deque>
-
namespace IceInternal
{
@@ -144,8 +142,8 @@ public:
virtual ::Ice::Int ice_getHash() const;
protected:
-
- virtual std::vector<ConnectorPtr> connectors(const std::vector<struct sockaddr_storage>&) const;
+
+ virtual std::vector<ConnectorPtr> connectors(const std::vector<Address>&) const;
friend class EndpointHostResolver;
EndpointI();
@@ -167,7 +165,11 @@ inline bool operator<(const EndpointI& l, const EndpointI& r)
return static_cast<const ::Ice::LocalObject&>(l) < static_cast<const ::Ice::LocalObject&>(r);
}
+#ifndef ICE_OS_WINRT
class ICE_API EndpointHostResolver : public IceUtil::Thread, public IceUtil::Monitor<IceUtil::Mutex>
+#else
+class ICE_API EndpointHostResolver : public IceUtil::Shared
+#endif
{
public:
@@ -180,6 +182,7 @@ public:
private:
+#ifndef ICE_OS_WINRT
struct ResolveEntry
{
std::string host;
@@ -191,6 +194,7 @@ private:
const InstancePtr _instance;
bool _destroyed;
std::deque<ResolveEntry> _queue;
+#endif
};
}
diff --git a/cpp/src/Ice/EventHandler.cpp b/cpp/src/Ice/EventHandler.cpp
index 48444ebe477..12c796843c4 100644
--- a/cpp/src/Ice/EventHandler.cpp
+++ b/cpp/src/Ice/EventHandler.cpp
@@ -17,7 +17,7 @@ using namespace IceInternal;
IceUtil::Shared* IceInternal::upCast(EventHandler* p) { return p; }
IceInternal::EventHandler::EventHandler() :
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
_pending(SocketOperationNone),
_ready(SocketOperationNone),
_started(SocketOperationNone),
diff --git a/cpp/src/Ice/EventHandler.h b/cpp/src/Ice/EventHandler.h
index 5f015365ec8..da1df3b93a4 100644
--- a/cpp/src/Ice/EventHandler.h
+++ b/cpp/src/Ice/EventHandler.h
@@ -24,7 +24,7 @@ class EventHandler : virtual public ::IceUtil::Shared
{
public:
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
//
// Called to start a new asynchronous read or write operation.
//
@@ -57,7 +57,7 @@ protected:
EventHandler();
ICE_API virtual ~EventHandler();
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
SocketOperation _ready;
SocketOperation _pending;
SocketOperation _started;
diff --git a/cpp/src/Ice/Exception.cpp b/cpp/src/Ice/Exception.cpp
index 04ac02bfad3..7f070b537c5 100644
--- a/cpp/src/Ice/Exception.cpp
+++ b/cpp/src/Ice/Exception.cpp
@@ -12,12 +12,35 @@
#include <Ice/Network.h>
#include <Ice/Plugin.h>
#include <IceUtil/StringUtil.h>
+#ifdef ICE_OS_WINRT
+# include <IceUtil/Unicode.h>
+#endif
#include <iomanip>
using namespace std;
using namespace Ice;
using namespace IceInternal;
+namespace
+{
+
+inline string
+socketErrorToString(int error)
+{
+ if(error == 0)
+ {
+ return "unknown error";
+ }
+#ifdef ICE_OS_WINRT
+ return IceUtil::wstringToString(
+ static_cast<Windows::Networking::Sockets::SocketErrorStatus>(error).ToString()->Data());
+#else
+ return IceUtilInternal::errorToString(error);
+#endif
+}
+
+};
+
namespace IceInternal
{
@@ -283,15 +306,7 @@ void
Ice::SocketException::ice_print(ostream& out) const
{
Exception::ice_print(out);
- out << ":\nsocket exception: ";
- if(error == 0)
- {
- out << "unknown error";
- }
- else
- {
- out << IceUtilInternal::errorToString(error);
- }
+ out << ":\nsocket exception: " << socketErrorToString(error);
}
void
@@ -317,14 +332,14 @@ void
Ice::ConnectFailedException::ice_print(ostream& out) const
{
Exception::ice_print(out);
- out << ":\nconnect failed: " << IceUtilInternal::errorToString(error);
+ out << ":\nconnect failed: " << socketErrorToString(error);
}
void
Ice::ConnectionRefusedException::ice_print(ostream& out) const
{
Exception::ice_print(out);
- out << ":\nconnection refused: " << IceUtilInternal::errorToString(error);
+ out << ":\nconnection refused: " << socketErrorToString(error);
}
void
@@ -338,7 +353,7 @@ Ice::ConnectionLostException::ice_print(ostream& out) const
}
else
{
- out << IceUtilInternal::errorToString(error);
+ out << socketErrorToString(error);
}
}
@@ -346,7 +361,13 @@ void
Ice::DNSException::ice_print(ostream& out) const
{
Exception::ice_print(out);
- out << ":\nDNS error: " << errorToStringDNS(error) << "\nhost: " << host;
+ out << ":\nDNS error: ";
+#ifdef ICE_OS_WINRT
+ out << socketErrorToString(error);
+#else
+ out << errorToStringDNS(error);
+#endif
+ out << "\nhost: " << host;
}
void
diff --git a/cpp/src/Ice/ImplicitContextI.cpp b/cpp/src/Ice/ImplicitContextI.cpp
index a14c7cc01f3..37c05bd3410 100644
--- a/cpp/src/Ice/ImplicitContextI.cpp
+++ b/cpp/src/Ice/ImplicitContextI.cpp
@@ -37,7 +37,7 @@ private:
IceUtil::Mutex _mutex;
};
-
+#ifndef ICE_OS_WINRT
class PerThreadImplicitContext : public ImplicitContextI
{
public:
@@ -101,7 +101,7 @@ private:
size_t _index; // index in all SlotVector
long _id; // corresponds to owner in the Slot
};
-
+#endif
}
@@ -118,7 +118,13 @@ ImplicitContextI::create(const std::string& kind)
}
else if(kind == "PerThread")
{
+#ifndef ICE_OS_WINRT
return new PerThreadImplicitContext;
+#else
+ throw InitializationException(__FILE__, __LINE__,
+ "'PerThread' Ice.ImplicitContext isn't supported for WinRT.");
+ return 0; // Keep the compiler happy.
+#endif
}
else
{
@@ -129,7 +135,7 @@ ImplicitContextI::create(const std::string& kind)
}
}
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(ICE_OS_WINRT)
void
ImplicitContextI::cleanupThread()
{
@@ -253,7 +259,7 @@ SharedImplicitContext::combine(const Context& proxyCtx, Context& ctx) const
//
// PerThreadImplicitContext implementation
//
-
+#ifndef ICE_OS_WINRT
long PerThreadImplicitContext::_nextId;
PerThreadImplicitContext::IndexInUse* PerThreadImplicitContext::_indexInUse;
IceUtil::Mutex* PerThreadImplicitContext::_mutex = 0;
@@ -281,11 +287,11 @@ Init init;
}
-#ifdef _WIN32
+# ifdef _WIN32
DWORD PerThreadImplicitContext::_key;
-#else
+# else
pthread_key_t PerThreadImplicitContext::_key;
-#endif
+# endif
PerThreadImplicitContext::PerThreadImplicitContext()
{
@@ -297,19 +303,19 @@ PerThreadImplicitContext::PerThreadImplicitContext()
// Initialize; note that we never dealloc this key (it would be
// complex, and since it's a static variable, it's not really a leak)
//
-#ifdef _WIN32
+# ifdef _WIN32
_key = TlsAlloc();
if(_key == TLS_OUT_OF_INDEXES)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
}
-#else
+# else
int err = pthread_key_create(&_key, &threadDestructor);
if(err != 0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err);
}
-#endif
+# endif
}
//
@@ -368,11 +374,11 @@ PerThreadImplicitContext::threadDestructor(void* v)
Context*
PerThreadImplicitContext::getThreadContext(bool allocate) const
{
-#ifdef _WIN32
+# ifdef _WIN32
SlotVector* sv = static_cast<SlotVector*>(TlsGetValue(_key));
-#else
+# else
SlotVector* sv = static_cast<SlotVector*>(pthread_getspecific(_key));
-#endif
+# endif
if(sv == 0)
{
if(!allocate)
@@ -381,18 +387,18 @@ PerThreadImplicitContext::getThreadContext(bool allocate) const
}
sv = new SlotVector(_index + 1);
-#ifdef _WIN32
+# ifdef _WIN32
if(TlsSetValue(_key, sv) == 0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
}
-#else
+# else
if(int err = pthread_setspecific(_key, sv))
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err);
}
-#endif
+# endif
}
else
{
@@ -441,11 +447,11 @@ PerThreadImplicitContext::getThreadContext(bool allocate) const
void
PerThreadImplicitContext::clearThreadContext() const
{
-#ifdef _WIN32
+# ifdef _WIN32
SlotVector* sv = static_cast<SlotVector*>(TlsGetValue(_key));
-#else
+# else
SlotVector* sv = static_cast<SlotVector*>(pthread_getspecific(_key));
-#endif
+# endif
if(sv != 0 && _index < sv->size())
{
delete (*sv)[_index].context;
@@ -473,17 +479,17 @@ PerThreadImplicitContext::clearThreadContext() const
if(clear)
{
delete sv;
-#ifdef _WIN32
+# ifdef _WIN32
if(TlsSetValue(_key, 0) == 0)
{
IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
}
-#else
+# else
if(int err = pthread_setspecific(_key, 0))
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err);
}
-#endif
+# endif
}
else
{
@@ -629,3 +635,4 @@ PerThreadImplicitContext::combine(const Context& proxyCtx, Context& ctx) const
ctx.insert(threadCtx->begin(), threadCtx->end());
}
}
+#endif
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index fad49fae521..26099f3b815 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -29,8 +29,6 @@
#include <Ice/Network.h>
#include <Ice/EndpointFactoryManager.h>
#include <Ice/RetryQueue.h>
-#include <Ice/TcpEndpointI.h>
-#include <Ice/UdpEndpointI.h>
#include <Ice/DynamicLibrary.h>
#include <Ice/PluginManagerI.h>
#include <Ice/Initialize.h>
@@ -53,6 +51,15 @@
# include <sys/types.h>
#endif
+#include <Ice/UdpEndpointI.h>
+
+#ifndef ICE_OS_WINRT
+# include <Ice/TcpEndpointI.h>
+#else
+# include <IceSSL/EndpointInfo.h> // For IceSSL::EndpointType
+# include <Ice/winrt/StreamEndpointI.h>
+#endif
+
using namespace std;
using namespace Ice;
using namespace IceInternal;
@@ -857,7 +864,7 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
if(instanceCount == 1)
{
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(ICE_OS_WINRT)
WORD version = MAKEWORD(1, 1);
WSADATA data;
if(WSAStartup(version, &data) != 0)
@@ -943,9 +950,10 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
//
const_cast<Int&>(_clientACM) = _initData.properties->getPropertyAsIntWithDefault("Ice.ACM.Client", 60);
const_cast<Int&>(_serverACM) = _initData.properties->getPropertyAsInt("Ice.ACM.Server");
+#ifndef ICE_OS_WINRT
const_cast<ImplicitContextIPtr&>(_implicitContext) =
ImplicitContextI::create(_initData.properties->getProperty("Ice.ImplicitContext"));
-
+#endif
_routerManager = new RouterManager;
_locatorManager = new LocatorManager(_initData.properties);
@@ -973,8 +981,15 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
_protocolSupport = EnableIPv6;
}
_endpointFactoryManager = new EndpointFactoryManager(this);
+#ifndef ICE_OS_WINRT
EndpointFactoryPtr tcpEndpointFactory = new TcpEndpointFactory(this);
_endpointFactoryManager->add(tcpEndpointFactory);
+#else
+ EndpointFactoryPtr tcpStreamEndpointFactory = new StreamEndpointFactory(this, TCPEndpointType);
+ _endpointFactoryManager->add(tcpStreamEndpointFactory);
+ EndpointFactoryPtr sslStreamEndpointFactory = new StreamEndpointFactory(this, IceSSL::EndpointType);
+ _endpointFactoryManager->add(sslStreamEndpointFactory);
+#endif
EndpointFactoryPtr udpEndpointFactory = new UdpEndpointFactory(this);
_endpointFactoryManager->add(udpEndpointFactory);
@@ -1048,7 +1063,7 @@ IceInternal::Instance::~Instance()
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(staticMutex);
if(--instanceCount == 0)
{
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(ICE_OS_WINRT)
WSACleanup();
#endif
@@ -1075,7 +1090,6 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[])
assert(pluginManagerImpl);
pluginManagerImpl->loadPlugins(argc, argv);
-
//
// Create threads.
//
@@ -1098,7 +1112,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[])
out << "cannot create thread for timer:\n" << ex;
throw;
}
-
+
try
{
_endpointHostResolver = new EndpointHostResolver(this);
@@ -1109,7 +1123,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[])
out << "cannot create thread for endpoint host resolver:\n" << ex;
throw;
}
-
+
_clientThreadPool = new ThreadPool(this, "Ice.ThreadPool.Client", 0);
//
@@ -1150,7 +1164,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[])
if(printProcessId)
{
#ifdef _MSC_VER
- cout << _getpid() << endl;
+ cout << GetCurrentProcessId() << endl;
#else
cout << getpid() << endl;
#endif
@@ -1242,7 +1256,6 @@ IceInternal::Instance::destroy()
ThreadPoolPtr serverThreadPool;
ThreadPoolPtr clientThreadPool;
EndpointHostResolverPtr endpointHostResolver;
-
{
IceUtil::RecMutex::Lock sync(*this);
@@ -1267,7 +1280,6 @@ IceInternal::Instance::destroy()
_clientThreadPool->destroy();
std::swap(_clientThreadPool, clientThreadPool);
}
-
if(_endpointHostResolver)
{
_endpointHostResolver->destroy();
@@ -1319,7 +1331,7 @@ IceInternal::Instance::destroy()
// No destroy function defined.
// _dynamicLibraryList->destroy();
_dynamicLibraryList = 0;
-
+
_adminAdapter = 0;
_adminFacets.clear();
@@ -1337,11 +1349,13 @@ IceInternal::Instance::destroy()
{
serverThreadPool->joinWithAllThreads();
}
+#ifndef ICE_OS_WINRT
if(endpointHostResolver)
{
endpointHostResolver->getThreadControl().join();
}
-
+#endif
+
if(_initData.properties->getPropertyAsInt("Ice.Warn.UnusedProperties") > 0)
{
set<string> unusedProperties = static_cast<PropertiesI*>(_initData.properties.get())->getUnusedProperties();
diff --git a/cpp/src/Ice/Instance.h b/cpp/src/Ice/Instance.h
index 6d498dc6715..b39e88ce838 100644
--- a/cpp/src/Ice/Instance.h
+++ b/cpp/src/Ice/Instance.h
@@ -10,6 +10,7 @@
#ifndef ICE_INSTANCE_H
#define ICE_INSTANCE_H
+#include <IceUtil/Config.h>
#include <IceUtil/Shared.h>
#include <IceUtil/Mutex.h>
#include <IceUtil/RecMutex.h>
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index 28a380779a8..ed730a8bb88 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -21,25 +21,28 @@
// The following is required for the Vista PSDK to bring in
// the definitions of the IN6_IS_ADDR_* macros.
//
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
+#if defined(_WIN32) && !defined(_WIN32_WINNT) && WINAPI_FAMILY != 0x02
# define _WIN32_WINNT 0x0501
#endif
+#include <Ice/Network.h>
#include <IceUtil/StringUtil.h>
#include <IceUtil/Unicode.h>
-#include <Ice/Network.h>
#include <Ice/LocalException.h>
#include <Ice/Properties.h> // For setTcpBufSize
#include <Ice/LoggerUtil.h> // For setTcpBufSize
-#if defined(_WIN32)
-# include <winsock2.h>
-# include <ws2tcpip.h>
-# include <iphlpapi.h>
-# include <Mswsock.h>
+#if defined(ICE_OS_WINRT)
+# include <IceUtil/InputUtil.h>
+# include <ppltasks.h> // For Concurrency::task
+#elif defined(_WIN32)
+# include <winsock2.h>
+# include <ws2tcpip.h>
+# include <iphlpapi.h>
+# include <Mswsock.h>
#else
-# include <net/if.h>
-# include <sys/ioctl.h>
+# include <net/if.h>
+# include <sys/ioctl.h>
#endif
#if defined(__linux) || defined(__APPLE__) || defined(__FreeBSD__)
@@ -52,6 +55,14 @@ using namespace std;
using namespace Ice;
using namespace IceInternal;
+#ifdef ICE_OS_WINRT
+using namespace Platform;
+using namespace Windows::Foundation;
+using namespace Windows::Storage::Streams;
+using namespace Windows::Networking;
+using namespace Windows::Networking::Sockets;
+#endif
+
#if defined(__sun) && !defined(__GNUC__)
# define INADDR_NONE (in_addr_t)0xffffffff
#endif
@@ -59,10 +70,195 @@ using namespace IceInternal;
namespace
{
-vector<struct sockaddr_storage>
+#ifndef ICE_OS_WINRT
+void
+setTcpNoDelay(SOCKET fd)
+{
+ int flag = 1;
+ if(setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, int(sizeof(int))) == SOCKET_ERROR)
+ {
+ closeSocketNoThrow(fd);
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+}
+
+void
+setKeepAlive(SOCKET fd)
+{
+ int flag = 1;
+ if(setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (char*)&flag, int(sizeof(int))) == SOCKET_ERROR)
+ {
+ closeSocketNoThrow(fd);
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+}
+#endif
+
+SOCKET
+createSocketImpl(bool udp, int family)
+{
+#ifdef ICE_OS_WINRT
+ if(udp)
+ {
+ return ref new DatagramSocket();
+ }
+ else
+ {
+ StreamSocket^ socket = ref new StreamSocket();
+ socket->Control->KeepAlive = true;
+ socket->Control->NoDelay = true;
+ return socket;
+ }
+#else
+ SOCKET fd;
+
+ if(udp)
+ {
+ fd = socket(family, SOCK_DGRAM, IPPROTO_UDP);
+ }
+ else
+ {
+ fd = socket(family, SOCK_STREAM, IPPROTO_TCP);
+ }
+
+ if(fd == INVALID_SOCKET)
+ {
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+
+ if(!udp)
+ {
+ setTcpNoDelay(fd);
+ setKeepAlive(fd);
+ }
+
+ return fd;
+#endif
+}
+
+Address
+getAddressImpl(const string& host, int port, ProtocolSupport protocol, bool server)
+{
+ Address addr;
+#ifdef ICE_OS_WINRT
+ ostringstream os;
+ os << port;
+ addr.port = ref new String(IceUtil::stringToWstring(os.str()).c_str());
+ if(host.empty())
+ {
+ if(server)
+ {
+ addr.host = nullptr; // Equivalent of inaddr_any, see doBind implementation.
+ }
+ else
+ {
+ addr.host = ref new HostName("localhost");
+ }
+ }
+ else
+ {
+ addr.host = ref new HostName(ref new String(IceUtil::stringToWstring(host).c_str()));
+ }
+#else
+ memset(&addr, 0, sizeof(Address));
+
+ //
+ // We don't use getaddrinfo when host is empty as it's not portable (some old Linux
+ // versions don't support it).
+ //
+ if(host.empty())
+ {
+ if(protocol == EnableIPv6)
+ {
+ sockaddr_in6* addrin6 = reinterpret_cast<sockaddr_in6*>(&addr);
+ addrin6->sin6_family = AF_INET6;
+ addrin6->sin6_port = htons(port);
+ addrin6->sin6_addr = server ? in6addr_any : in6addr_loopback;
+ }
+ else
+ {
+ sockaddr_in* addrin = reinterpret_cast<sockaddr_in*>(&addr);
+ addrin->sin_family = AF_INET;
+ addrin->sin_port = htons(port);
+ addrin->sin_addr.s_addr = server ? htonl(INADDR_ANY) : htonl(INADDR_LOOPBACK);
+ }
+ return addr;
+ }
+
+ struct addrinfo* info = 0;
+ int retry = 5;
+
+ struct addrinfo hints = { 0 };
+
+ if(server)
+ {
+ //
+ // If host is empty, getaddrinfo will return the wildcard
+ // address instead of the loopack address.
+ //
+ hints.ai_flags |= AI_PASSIVE;
+ }
+
+ if(protocol == EnableIPv4)
+ {
+ hints.ai_family = PF_INET;
+ }
+ else if(protocol == EnableIPv6)
+ {
+ hints.ai_family = PF_INET6;
+ }
+ else
+ {
+ hints.ai_family = PF_UNSPEC;
+ }
+
+ int rs = 0;
+ do
+ {
+ rs = getaddrinfo(host.c_str(), 0, &hints, &info);
+ }
+ while(info == 0 && rs == EAI_AGAIN && --retry >= 0);
+
+ if(rs != 0)
+ {
+ DNSException ex(__FILE__, __LINE__);
+ ex.error = rs;
+ ex.host = host;
+ throw ex;
+ }
+
+ memcpy(&addr, info->ai_addr, info->ai_addrlen);
+ if(info->ai_family == PF_INET)
+ {
+ reinterpret_cast<sockaddr_in*>(&addr)->sin_port = htons(port);
+ }
+ else if(info->ai_family == PF_INET6)
+ {
+ reinterpret_cast<sockaddr_in6*>(&addr)->sin6_port = htons(port);
+ }
+ else // Unknown address family.
+ {
+ freeaddrinfo(info);
+ DNSException ex(__FILE__, __LINE__);
+ ex.host = host;
+ throw ex;
+ }
+ freeaddrinfo(info);
+#endif
+ return addr;
+}
+
+#ifndef ICE_OS_WINRT
+vector<Address>
getLocalAddresses(ProtocolSupport protocol)
{
- vector<struct sockaddr_storage> result;
+ vector<Address> result;
#if defined(_WIN32)
try
@@ -74,7 +270,7 @@ getLocalAddresses(ProtocolSupport protocol)
continue;
}
- SOCKET fd = createSocket(false, i == 0 ? AF_INET : AF_INET6);
+ SOCKET fd = createSocketImpl(false, i == 0 ? AF_INET : AF_INET6);
vector<unsigned char> buffer;
buffer.resize(1024);
@@ -111,7 +307,7 @@ getLocalAddresses(ProtocolSupport protocol)
SOCKET_ADDRESS_LIST* addrs = reinterpret_cast<SOCKET_ADDRESS_LIST*>(&buffer[0]);
for (int i = 0; i < addrs->iAddressCount; ++i)
{
- sockaddr_storage addr;
+ Address addr;
memcpy(&addr, addrs->Address[i].lpSockaddr, addrs->Address[i].iSockaddrLength);
if(addr.ss_family == AF_INET && protocol != EnableIPv6)
{
@@ -155,7 +351,7 @@ getLocalAddresses(ProtocolSupport protocol)
{
if(curr->ifa_addr->sa_family == AF_INET && protocol != EnableIPv6)
{
- sockaddr_storage addr;
+ Address addr;
memcpy(&addr, curr->ifa_addr, sizeof(sockaddr_in));
if(reinterpret_cast<struct sockaddr_in*>(&addr)->sin_addr.s_addr != 0)
{
@@ -164,11 +360,11 @@ getLocalAddresses(ProtocolSupport protocol)
}
else if(curr->ifa_addr->sa_family == AF_INET6 && protocol != EnableIPv4)
{
- sockaddr_storage addr;
+ Address addr;
memcpy(&addr, curr->ifa_addr, sizeof(sockaddr_in6));
if(!IN6_IS_ADDR_UNSPECIFIED(&reinterpret_cast<struct sockaddr_in6*>(&addr)->sin6_addr))
{
- result.push_back(*reinterpret_cast<struct sockaddr_storage*>(curr->ifa_addr));
+ result.push_back(*reinterpret_cast<Address*>(curr->ifa_addr));
}
}
}
@@ -184,7 +380,7 @@ getLocalAddresses(ProtocolSupport protocol)
{
continue;
}
- SOCKET fd = createSocket(false, i == 0 ? AF_INET : AF_INET6);
+ SOCKET fd = createSocketImpl(false, i == 0 ? AF_INET : AF_INET6);
#ifdef _AIX
int cmd = CSIOCGIFCONF;
@@ -239,51 +435,51 @@ getLocalAddresses(ProtocolSupport protocol)
{
if(!(ifr[i].ifr_flags & IFF_LOOPBACK)) // Don't include loopback interface addresses
{
- //
- // On Solaris the above Loopback check does not always work so we double
- // check the address below. Solaris also returns duplicate entries that need
- // to be filtered out.
- //
+ //
+ // On Solaris the above Loopback check does not always work so we double
+ // check the address below. Solaris also returns duplicate entries that need
+ // to be filtered out.
+ //
if(ifr[i].ifr_addr.sa_family == AF_INET && protocol != EnableIPv6)
{
- sockaddr_storage addr;
+ Address addr;
memcpy(&addr, &ifr[i].ifr_addr, sizeof(sockaddr_in));
struct in_addr* inaddr = &reinterpret_cast<struct sockaddr_in*>(&addr)->sin_addr;
if(inaddr->s_addr != 0 && inaddr->s_addr != htonl(INADDR_LOOPBACK))
{
- unsigned int j;
- for(j = 0; j < result.size(); ++j)
- {
- if(compareAddress(addr, result[j]) == 0)
- {
- break;
- }
- }
- if(j == result.size())
- {
+ unsigned int j;
+ for(j = 0; j < result.size(); ++j)
+ {
+ if(compareAddress(addr, result[j]) == 0)
+ {
+ break;
+ }
+ }
+ if(j == result.size())
+ {
result.push_back(addr);
- }
+ }
}
}
else if(ifr[i].ifr_addr.sa_family == AF_INET6 && protocol != EnableIPv4)
{
- sockaddr_storage addr;
+ Address addr;
memcpy(&addr, &ifr[i].ifr_addr, sizeof(sockaddr_in6));
struct in6_addr* inaddr6 = &reinterpret_cast<struct sockaddr_in6*>(&addr)->sin6_addr;
if(!IN6_IS_ADDR_UNSPECIFIED(inaddr6) && !IN6_IS_ADDR_LOOPBACK(inaddr6))
{
- unsigned int j;
- for(j = 0; j < result.size(); ++j)
- {
- if(compareAddress(addr, result[j]) == 0)
- {
- break;
- }
- }
- if(j == result.size())
- {
+ unsigned int j;
+ for(j = 0; j < result.size(); ++j)
+ {
+ if(compareAddress(addr, result[j]) == 0)
+ {
+ break;
+ }
+ }
+ if(j == result.size())
+ {
result.push_back(addr);
- }
+ }
}
}
}
@@ -295,103 +491,12 @@ getLocalAddresses(ProtocolSupport protocol)
return result;
}
-struct sockaddr_storage
-getAddressImpl(const string& host, int port, ProtocolSupport protocol, bool server)
-{
- struct sockaddr_storage addr;
- memset(&addr, 0, sizeof(struct sockaddr_storage));
-
- //
- // We don't use getaddrinfo when host is empty as it's not portable (some old Linux
- // versions don't support it).
- //
- if(host.empty())
- {
- if(protocol == EnableIPv6)
- {
- sockaddr_in6* addrin6 = reinterpret_cast<sockaddr_in6*>(&addr);
- addrin6->sin6_family = AF_INET6;
- addrin6->sin6_port = htons(port);
- addrin6->sin6_addr = server ? in6addr_any : in6addr_loopback;
- }
- else
- {
- sockaddr_in* addrin = reinterpret_cast<sockaddr_in*>(&addr);
- addrin->sin_family = AF_INET;
- addrin->sin_port = htons(port);
- addrin->sin_addr.s_addr = server ? htonl(INADDR_ANY) : htonl(INADDR_LOOPBACK);
- }
- return addr;
- }
-
- struct addrinfo* info = 0;
- int retry = 5;
-
- struct addrinfo hints = { 0 };
-
- if(server)
- {
- //
- // If host is empty, getaddrinfo will return the wildcard
- // address instead of the loopack address.
- //
- hints.ai_flags |= AI_PASSIVE;
- }
-
- if(protocol == EnableIPv4)
- {
- hints.ai_family = PF_INET;
- }
- else if(protocol == EnableIPv6)
- {
- hints.ai_family = PF_INET6;
- }
- else
- {
- hints.ai_family = PF_UNSPEC;
- }
-
- int rs = 0;
- do
- {
- rs = getaddrinfo(host.c_str(), 0, &hints, &info);
- }
- while(info == 0 && rs == EAI_AGAIN && --retry >= 0);
-
- if(rs != 0)
- {
- DNSException ex(__FILE__, __LINE__);
- ex.error = rs;
- ex.host = host;
- throw ex;
- }
-
- memcpy(&addr, info->ai_addr, info->ai_addrlen);
- if(info->ai_family == PF_INET)
- {
- reinterpret_cast<sockaddr_in*>(&addr)->sin_port = htons(port);
- }
- else if(info->ai_family == PF_INET6)
- {
- reinterpret_cast<sockaddr_in6*>(&addr)->sin6_port = htons(port);
- }
- else // Unknown address family.
- {
- freeaddrinfo(info);
- DNSException ex(__FILE__, __LINE__);
- ex.host = host;
- throw ex;
- }
- freeaddrinfo(info);
- return addr;
-}
-
bool
isWildcard(const string& host, ProtocolSupport protocol)
{
try
{
- sockaddr_storage addr = getAddressImpl(host, 0, protocol, false);
+ Address addr = getAddressImpl(host, 0, protocol, false);
if(addr.ss_family == AF_INET)
{
struct sockaddr_in* addrin = reinterpret_cast<sockaddr_in*>(&addr);
@@ -481,7 +586,7 @@ getInterfaceAddress(const string& name)
ifreq if_address;
strcpy(if_address.ifr_name, name.c_str());
- SOCKET fd = createSocket(false, AF_INET);
+ SOCKET fd = createSocketImpl(false, AF_INET);
int rc = ioctl(fd, SIOCGIFADDR, &if_address);
closeSocketNoThrow(fd);
@@ -494,6 +599,8 @@ getInterfaceAddress(const string& name)
return addr;
}
+#endif // #ifndef ICE_OS_WINRT
+
}
#ifdef ICE_USE_IOCP
@@ -504,317 +611,691 @@ IceInternal::AsyncInfo::AsyncInfo(SocketOperation s)
}
#endif
-int
-IceInternal::getSocketErrno()
+bool
+IceInternal::noMoreFds(int error)
{
-#ifdef _WIN32
- return WSAGetLastError();
+#if defined(ICE_OS_WINRT)
+ return error == (int)SocketErrorStatus::TooManyOpenFiles;
+#elif defined(_WIN32)
+ return error == WSAEMFILE;
#else
- return errno;
+ return error == EMFILE || error == ENFILE;
#endif
}
-bool
-IceInternal::interrupted()
+string
+IceInternal::errorToStringDNS(int error)
{
-#ifdef _WIN32
- return WSAGetLastError() == WSAEINTR;
+#if defined(ICE_OS_WINRT)
+ return "Host not found";
+#elif defined(_WIN32)
+ return IceUtilInternal::errorToString(error);
#else
-# ifdef EPROTO
- return errno == EINTR || errno == EPROTO;
-# else
- return errno == EINTR;
-# endif
+ return gai_strerror(error);
#endif
}
-bool
-IceInternal::acceptInterrupted()
+vector<Address>
+IceInternal::getAddresses(const string& host, int port, ProtocolSupport protocol, bool blocking)
{
- if(interrupted())
+ vector<Address> result;
+ Address addr;
+#ifdef ICE_OS_WINRT
+ addr.host = ref new HostName(host.empty() ? "localhost" : ref new String(IceUtil::stringToWstring(host).c_str()));
+ stringstream os;
+ os << port;
+ addr.port = ref new String(IceUtil::stringToWstring(os.str()).c_str());
+ result.push_back(addr);
+#else
+ memset(&addr, 0, sizeof(Address));
+
+ //
+ // We don't use getaddrinfo when host is empty as it's not portable (some old Linux
+ // versions don't support it).
+ //
+ if(host.empty())
{
- return true;
+ if(protocol != EnableIPv4)
+ {
+ sockaddr_in6* addrin6 = reinterpret_cast<sockaddr_in6*>(&addr);
+ addrin6->sin6_family = AF_INET6;
+ addrin6->sin6_port = htons(port);
+ addrin6->sin6_addr = in6addr_loopback;
+ result.push_back(addr);
+ }
+ if(protocol != EnableIPv6)
+ {
+ sockaddr_in* addrin = reinterpret_cast<sockaddr_in*>(&addr);
+ addrin->sin_family = AF_INET;
+ addrin->sin_port = htons(port);
+ addrin->sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+ result.push_back(addr);
+ }
+ return result;
}
-#ifdef _WIN32
- int error = WSAGetLastError();
- return error == WSAECONNABORTED ||
- error == WSAECONNRESET ||
- error == WSAETIMEDOUT;
+ struct addrinfo* info = 0;
+ int retry = 5;
+
+ struct addrinfo hints = { 0 };
+ if(protocol == EnableIPv4)
+ {
+ hints.ai_family = PF_INET;
+ }
+ else if(protocol == EnableIPv6)
+ {
+ hints.ai_family = PF_INET6;
+ }
+ else
+ {
+ hints.ai_family = PF_UNSPEC;
+ }
+
+ if(!blocking)
+ {
+ hints.ai_flags = AI_NUMERICHOST;
+ }
+
+ int rs = 0;
+ do
+ {
+ rs = getaddrinfo(host.c_str(), 0, &hints, &info);
+ }
+ while(info == 0 && rs == EAI_AGAIN && --retry >= 0);
+
+ // In theory, getaddrinfo should only return EAI_NONAME if AI_NUMERICHOST is specified and the host name
+ // is not a IP address. However on some platforms (e.g. Mac OS X 10.4.x) EAI_NODATA is also returned so
+ // we also check for it.
+#ifdef EAI_NODATA
+ if(!blocking && (rs == EAI_NONAME || rs == EAI_NODATA))
#else
- return errno == ECONNABORTED ||
- errno == ECONNRESET ||
- errno == ETIMEDOUT;
+ if(!blocking && rs == EAI_NONAME)
+#endif
+ {
+ return result; // Empty result indicates that a blocking lookup is necessary.
+ }
+ else if(rs != 0)
+ {
+ DNSException ex(__FILE__, __LINE__);
+ ex.error = rs;
+ ex.host = host;
+ throw ex;
+ }
+
+ struct addrinfo* p;
+ for(p = info; p != NULL; p = p->ai_next)
+ {
+ memcpy(&addr, p->ai_addr, p->ai_addrlen);
+ if(p->ai_family == PF_INET)
+ {
+ struct sockaddr_in* addrin = reinterpret_cast<sockaddr_in*>(&addr);
+ addrin->sin_port = htons(port);
+ }
+ else if(p->ai_family == PF_INET6)
+ {
+ struct sockaddr_in6* addrin6 = reinterpret_cast<sockaddr_in6*>(&addr);
+ addrin6->sin6_port = htons(port);
+ }
+
+ bool found = false;
+ for(unsigned int i = 0; i < result.size(); ++i)
+ {
+ if(compareAddress(result[i], addr) == 0)
+ {
+ found = true;
+ break;
+ }
+ }
+ if(!found)
+ {
+ result.push_back(addr);
+ }
+ }
+
+ freeaddrinfo(info);
+
+ if(result.size() == 0)
+ {
+ DNSException ex(__FILE__, __LINE__);
+ ex.host = host;
+ throw ex;
+ }
#endif
+ return result;
}
-bool
-IceInternal::noBuffers()
+ProtocolSupport
+IceInternal::getProtocolSupport(const Address& addr)
{
-#ifdef _WIN32
- int error = WSAGetLastError();
- return error == WSAENOBUFS ||
- error == WSAEFAULT;
+#ifndef ICE_OS_WINRT
+ return addr.ss_family == AF_INET ? EnableIPv4 : EnableIPv6;
#else
- return errno == ENOBUFS;
+ return EnableIPv4;
#endif
}
-bool
-IceInternal::wouldBlock()
+Address
+IceInternal::getAddressForServer(const string& host, int port, ProtocolSupport protocol)
{
-#ifdef _WIN32
- int error = WSAGetLastError();
- return error == WSAEWOULDBLOCK || error == WSA_IO_PENDING || error == ERROR_IO_PENDING;
+ return getAddressImpl(host, port, protocol, true);
+}
+
+Address
+IceInternal::getAddress(const string& host, int port, ProtocolSupport protocol)
+{
+ return getAddressImpl(host, port, protocol, false);
+}
+
+int
+IceInternal::compareAddress(const Address& addr1, const Address& addr2)
+{
+#ifdef ICE_OS_WINRT
+ int o = String::CompareOrdinal(addr1.port, addr2.port);
+ if(o != 0)
+ {
+ return o;
+ }
+ return String::CompareOrdinal(addr1.host->RawName, addr2.host->RawName);
#else
- return errno == EAGAIN || errno == EWOULDBLOCK;
+ if(addr1.ss_family < addr2.ss_family)
+ {
+ return -1;
+ }
+ else if(addr2.ss_family < addr1.ss_family)
+ {
+ return 1;
+ }
+
+ if(addr1.ss_family == AF_INET)
+ {
+ const struct sockaddr_in* addr1in = reinterpret_cast<const sockaddr_in*>(&addr1);
+ const struct sockaddr_in* addr2in = reinterpret_cast<const sockaddr_in*>(&addr2);
+
+ if(addr1in->sin_port < addr2in->sin_port)
+ {
+ return -1;
+ }
+ else if(addr2in->sin_port < addr1in->sin_port)
+ {
+ return 1;
+ }
+
+ if(addr1in->sin_addr.s_addr < addr2in->sin_addr.s_addr)
+ {
+ return -1;
+ }
+ else if(addr2in->sin_addr.s_addr < addr1in->sin_addr.s_addr)
+ {
+ return 1;
+ }
+ }
+ else
+ {
+ const struct sockaddr_in6* addr1in = reinterpret_cast<const sockaddr_in6*>(&addr1);
+ const struct sockaddr_in6* addr2in = reinterpret_cast<const sockaddr_in6*>(&addr2);
+
+ if(addr1in->sin6_port < addr2in->sin6_port)
+ {
+ return -1;
+ }
+ else if(addr2in->sin6_port < addr1in->sin6_port)
+ {
+ return 1;
+ }
+
+ int res = memcmp(&addr1in->sin6_addr, &addr2in->sin6_addr, sizeof(struct in6_addr));
+ if(res < 0)
+ {
+ return -1;
+ }
+ else if(res > 0)
+ {
+ return 1;
+ }
+ }
+
+ return 0;
#endif
}
-bool
-IceInternal::connectFailed()
+SOCKET
+IceInternal::createSocket(bool udp, const Address& addr)
{
-#ifdef _WIN32
- int error = WSAGetLastError();
- return error == WSAECONNREFUSED ||
- error == WSAETIMEDOUT ||
- error == WSAENETUNREACH ||
- error == WSAEHOSTUNREACH ||
- error == WSAECONNRESET ||
- error == WSAESHUTDOWN ||
- error == WSAECONNABORTED;
+#ifdef ICE_OS_WINRT
+ return createSocketImpl(udp, 0);
#else
- return errno == ECONNREFUSED ||
- errno == ETIMEDOUT ||
- errno == ENETUNREACH ||
- errno == EHOSTUNREACH ||
- errno == ECONNRESET ||
- errno == ESHUTDOWN ||
- errno == ECONNABORTED;
+ return createSocketImpl(udp, addr.ss_family);
#endif
}
-bool
-IceInternal::connectionRefused()
+
+void
+IceInternal::closeSocketNoThrow(SOCKET fd)
{
-#ifdef _WIN32
+#if defined(ICE_OS_WINRT)
+ //
+ // NOTE: StreamSocket::Close or DatagramSocket::Close aren't
+ // exposed in C++, you have to delete the socket to close
+ // it. According some Microsoft samples, this is safe even if
+ // there are still references to the object...
+ //
+ //fd->Close();
+ delete fd;
+#elif defined(_WIN32)
int error = WSAGetLastError();
- return error == WSAECONNREFUSED || error == ERROR_CONNECTION_REFUSED;
+ closesocket(fd);
+ WSASetLastError(error);
#else
- return errno == ECONNREFUSED;
+ int error = errno;
+ close(fd);
+ errno = error;
#endif
}
-bool
-IceInternal::connectInProgress()
+void
+IceInternal::closeSocket(SOCKET fd)
{
-#ifdef _WIN32
+#if defined(ICE_OS_WINRT)
+ //
+ // NOTE: StreamSocket::Close or DatagramSocket::Close aren't
+ // exposed in C++, you have to delete the socket to close
+ // it. According some Microsoft samples, this is safe even if
+ // there are still references to the object...
+ //
+ //fd->Close();
+ delete fd;
+#elif defined(_WIN32)
int error = WSAGetLastError();
- return error == WSAEWOULDBLOCK || error == WSA_IO_PENDING || error == ERROR_IO_PENDING;
+ if(closesocket(fd) == SOCKET_ERROR)
+ {
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+ WSASetLastError(error);
#else
- return errno == EINPROGRESS;
+ int error = errno;
+ if(close(fd) == SOCKET_ERROR)
+ {
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+ errno = error;
#endif
}
-bool
-IceInternal::connectionLost()
+string
+IceInternal::addrToString(const Address& addr)
{
-#ifdef _WIN32
- int error = WSAGetLastError();
- return error == WSAECONNRESET ||
- error == WSAESHUTDOWN ||
- error == WSAENOTCONN ||
-#ifdef ICE_USE_IOCP
- error == ERROR_NETNAME_DELETED ||
-#endif
- error == WSAECONNABORTED;
+ ostringstream s;
+ s << inetAddrToString(addr) << ':' << getPort(addr);
+ return s.str();
+}
+
+void
+IceInternal::fdToLocalAddress(SOCKET fd, Address& addr)
+{
+#ifndef ICE_OS_WINRT
+ socklen_t len = static_cast<socklen_t>(sizeof(Address));
+ if(getsockname(fd, reinterpret_cast<struct sockaddr*>(&addr), &len) == SOCKET_ERROR)
+ {
+ closeSocketNoThrow(fd);
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
#else
- return errno == ECONNRESET ||
- errno == ENOTCONN ||
- errno == ESHUTDOWN ||
- errno == ECONNABORTED ||
- errno == EPIPE;
+ StreamSocket^ stream = dynamic_cast<StreamSocket^>(fd);
+ if(stream)
+ {
+ addr.host = stream->Information->LocalAddress;
+ addr.port = stream->Information->LocalPort;
+ }
+ DatagramSocket^ datagram = dynamic_cast<DatagramSocket^>(fd);
+ if(datagram)
+ {
+ addr.host = datagram->Information->LocalAddress;
+ addr.port = datagram->Information->LocalPort;
+ }
#endif
}
bool
-IceInternal::notConnected()
+IceInternal::fdToRemoteAddress(SOCKET fd, Address& addr)
{
-#ifdef _WIN32
- return WSAGetLastError() == WSAENOTCONN;
-#elif defined(__APPLE__) || defined(__FreeBSD__)
- return errno == ENOTCONN || errno == EINVAL;
+#ifndef ICE_OS_WINRT
+ socklen_t len = static_cast<socklen_t>(sizeof(Address));
+ if(getpeername(fd, reinterpret_cast<struct sockaddr*>(&addr), &len) == SOCKET_ERROR)
+ {
+ if(notConnected())
+ {
+ return false;
+ }
+ else
+ {
+ closeSocketNoThrow(fd);
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+ }
+
+ return true;
#else
- return errno == ENOTCONN;
+ StreamSocket^ stream = dynamic_cast<StreamSocket^>(fd);
+ if(stream != nullptr)
+ {
+ addr.host = stream->Information->RemoteAddress;
+ addr.port = stream->Information->RemotePort;
+ }
+ DatagramSocket^ datagram = dynamic_cast<DatagramSocket^>(fd);
+ if(datagram != nullptr)
+ {
+ addr.host = datagram->Information->RemoteAddress;
+ addr.port = datagram->Information->RemotePort;
+ }
+ return addr.host != nullptr;
#endif
}
+
+std::string
+IceInternal::fdToString(SOCKET fd)
+{
+ if(fd == INVALID_SOCKET)
+ {
+ return "<closed>";
+ }
+
+ Address localAddr;
+ fdToLocalAddress(fd, localAddr);
+
+ Address remoteAddr;
+ bool peerConnected = fdToRemoteAddress(fd, remoteAddr);
+
+ return addressesToString(localAddr, remoteAddr, peerConnected);
+};
+
+void
+IceInternal::fdToAddressAndPort(SOCKET fd, string& localAddress, int& localPort, string& remoteAddress, int& remotePort)
+{
+ if(fd == INVALID_SOCKET)
+ {
+ localAddress.clear();
+ remoteAddress.clear();
+ localPort = -1;
+ remotePort = -1;
+ return;
+ }
+
+ Address localAddr;
+ fdToLocalAddress(fd, localAddr);
+ addrToAddressAndPort(localAddr, localAddress, localPort);
+
+ Address remoteAddr;
+ if(fdToRemoteAddress(fd, remoteAddr))
+ {
+ addrToAddressAndPort(remoteAddr, remoteAddress, remotePort);
+ }
+ else
+ {
+ remoteAddress.clear();
+ remotePort = -1;
+ }
+}
+
+void
+IceInternal::addrToAddressAndPort(const Address& addr, string& address, int& port)
+{
+ address = inetAddrToString(addr);
+ port = getPort(addr);
+}
+
+std::string
+IceInternal::addressesToString(const Address& localAddr, const Address& remoteAddr,
+ bool peerConnected)
+{
+ ostringstream s;
+ s << "local address = " << addrToString(localAddr);
+ if(peerConnected)
+ {
+ s << "\nremote address = " << addrToString(remoteAddr);
+ }
+ else
+ {
+ s << "\nremote address = <not connected>";
+ }
+ return s.str();
+}
+
bool
-IceInternal::recvTruncated()
+IceInternal::isAddressValid(const Address& addr)
{
-#ifdef _WIN32
- int err = WSAGetLastError();
- return err == WSAEMSGSIZE || err == ERROR_MORE_DATA;
+#ifndef ICE_OS_WINRT
+ return addr.ss_family != AF_UNSPEC;
#else
- // We don't get an error under Linux if a datagram is truncated.
- return false;
+ return addr.host != nullptr || addr.port != nullptr;
#endif
}
-bool
-IceInternal::noMoreFds(int error)
+vector<string>
+IceInternal::getHostsForEndpointExpand(const string& host, ProtocolSupport protocolSupport, bool includeLoopback)
{
-#ifdef _WIN32
- return error == WSAEMFILE;
+ vector<string> hosts;
+
+#ifndef ICE_OS_WINRT
+ if(host.empty() || isWildcard(host, protocolSupport))
+ {
+ vector<Address> addrs = getLocalAddresses(protocolSupport);
+ for(vector<Address>::const_iterator p = addrs.begin(); p != addrs.end(); ++p)
+ {
+ //
+ // NOTE: We don't publish link-local IPv6 addresses as these addresses can only
+ // be accessed in general with a scope-id.
+ //
+ if(p->ss_family != AF_INET6 ||
+ !IN6_IS_ADDR_LINKLOCAL(&reinterpret_cast<const struct sockaddr_in6*>(&(*p))->sin6_addr))
+ {
+ hosts.push_back(inetAddrToString(*p));
+ }
+ }
+
+ if(hosts.empty() || includeLoopback)
+ {
+ if(protocolSupport != EnableIPv6)
+ {
+ hosts.push_back("127.0.0.1");
+ }
+ if(protocolSupport != EnableIPv4)
+ {
+ hosts.push_back("0:0:0:0:0:0:0:1");
+ }
+ }
+ }
#else
- return error == EMFILE || error == ENFILE;
+ //
+ // No support for expanding wildcard addresses on WinRT
+ //
#endif
+ return hosts; // An empty host list indicates to just use the given host.
}
-SOCKET
-IceInternal::createSocket(bool udp, int family)
+string
+IceInternal::inetAddrToString(const Address& ss)
{
- SOCKET fd;
-
- if(udp)
+#ifndef ICE_OS_WINRT
+ int size = 0;
+ if(ss.ss_family == AF_INET)
{
- fd = socket(family, SOCK_DGRAM, IPPROTO_UDP);
+ size = sizeof(sockaddr_in);
+ }
+ else if(ss.ss_family == AF_INET6)
+ {
+ size = sizeof(sockaddr_in6);
}
else
{
- fd = socket(family, SOCK_STREAM, IPPROTO_TCP);
+ return "";
}
- if(fd == INVALID_SOCKET)
+ char namebuf[1024];
+ namebuf[0] = '\0';
+ getnameinfo(reinterpret_cast<const struct sockaddr *>(&ss), size, namebuf, sizeof(namebuf), 0, 0, NI_NUMERICHOST);
+ return string(namebuf);
+#else
+ if(ss.host == nullptr)
{
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
+ return "";
}
-
- if(!udp)
+ else
{
- setTcpNoDelay(fd);
- setKeepAlive(fd);
+ return IceUtil::wstringToString(ss.host->RawName->Data());
}
-
- return fd;
+#endif
}
-void
-IceInternal::closeSocket(SOCKET fd)
+int
+IceInternal::getPort(const Address& addr)
{
-#ifdef _WIN32
- int error = WSAGetLastError();
- if(closesocket(fd) == SOCKET_ERROR)
+#ifndef ICE_OS_WINRT
+ if(addr.ss_family == AF_INET)
{
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
+ return ntohs(reinterpret_cast<const sockaddr_in*>(&addr)->sin_port);
+ }
+ else if(addr.ss_family == AF_INET6)
+ {
+ return ntohs(reinterpret_cast<const sockaddr_in6*>(&addr)->sin6_port);
+ }
+ else
+ {
+ return -1;
}
- WSASetLastError(error);
#else
- int error = errno;
- if(close(fd) == SOCKET_ERROR)
+ IceUtil::Int64 port;
+ if(addr.port == nullptr || !IceUtilInternal::stringToInt64(IceUtil::wstringToString(addr.port->Data()), port))
{
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
+ return -1;
}
- errno = error;
+ return static_cast<int>(port);
#endif
}
void
-IceInternal::closeSocketNoThrow(SOCKET fd)
+IceInternal::setPort(Address& addr, int port)
{
-#ifdef _WIN32
- int error = WSAGetLastError();
- closesocket(fd);
- WSASetLastError(error);
+#ifndef ICE_OS_WINRT
+ if(addr.ss_family == AF_INET)
+ {
+ reinterpret_cast<sockaddr_in*>(&addr)->sin_port = htons(port);
+ }
+ else
+ {
+ assert(addr.ss_family == AF_INET6);
+ reinterpret_cast<sockaddr_in6*>(&addr)->sin6_port = htons(port);
+ }
#else
- int error = errno;
- close(fd);
- errno = error;
+ ostringstream os;
+ os << port;
+ addr.port = ref new String(IceUtil::stringToWstring(os.str()).c_str());
#endif
}
-void
-IceInternal::shutdownSocketWrite(SOCKET fd)
+bool
+IceInternal::isMulticast(const Address& addr)
{
- if(shutdown(fd, SHUT_WR) == SOCKET_ERROR)
+#ifndef ICE_OS_WINRT
+ if(addr.ss_family == AF_INET)
{
- //
- // Ignore errors indicating that we are shutdown already.
- //
-#if defined(_WIN32)
- int error = WSAGetLastError();
- //
- // Under Vista its possible to get a WSAECONNRESET. See
- // http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=1739 for
- // some details.
- //
- if(error == WSAENOTCONN || error == WSAECONNRESET)
- {
- return;
- }
-#elif defined(__APPLE__) || defined(__FreeBSD__)
- if(errno == ENOTCONN || errno == EINVAL)
- {
- return;
- }
+ return IN_MULTICAST(ntohl(reinterpret_cast<const struct sockaddr_in*>(&addr)->sin_addr.s_addr));
+ }
+ else if(addr.ss_family == AF_INET6)
+ {
+ return IN6_IS_ADDR_MULTICAST(&reinterpret_cast<const struct sockaddr_in6*>(&addr)->sin6_addr);
+ }
#else
- if(errno == ENOTCONN)
+ if(addr.host == nullptr)
+ {
+ return false;
+ }
+ string host = IceUtil::wstringToString(addr.host->RawName->Data());
+ string ip = IceUtilInternal::toUpper(host);
+ vector<string> tokens;
+ IceUtilInternal::splitString(ip, ".", tokens);
+ if(tokens.size() == 4)
+ {
+ IceUtil::Int64 j;
+ if(IceUtilInternal::stringToInt64(tokens[0], j))
{
- return;
+ if(j >= 233 && j <= 239)
+ {
+ return true;
+ }
}
-#endif
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
}
+ if(ip.find("::") != string::npos)
+ {
+ return ip.compare(0, 2, "FF") == 0;
+ }
+#endif
+ return false;
}
void
-IceInternal::shutdownSocketReadWrite(SOCKET fd)
+IceInternal::setTcpBufSize(SOCKET fd, const Ice::PropertiesPtr& properties, const Ice::LoggerPtr& logger)
{
- if(shutdown(fd, SHUT_RDWR) == SOCKET_ERROR)
+ assert(fd != INVALID_SOCKET);
+
+ //
+ // By default, on Windows we use a 128KB buffer size. On Unix
+ // platforms, we use the system defaults.
+ //
+#ifdef _WIN32
+ const int dfltBufSize = 128 * 1024;
+#else
+ const int dfltBufSize = 0;
+#endif
+ Int sizeRequested;
+
+ sizeRequested = properties->getPropertyAsIntWithDefault("Ice.TCP.RcvSize", dfltBufSize);
+ if(sizeRequested > 0)
{
//
- // Ignore errors indicating that we are shutdown already.
- //
-#if defined(_WIN32)
- int error = WSAGetLastError();
- //
- // Under Vista its possible to get a WSAECONNRESET. See
- // http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=1739 for
- // some details.
+ // Try to set the buffer size. The kernel will silently adjust
+ // the size to an acceptable value. Then read the size back to
+ // get the size that was actually set.
//
- if(error == WSAENOTCONN || error == WSAECONNRESET)
- {
- return;
- }
-#elif defined(__APPLE__) || defined(__FreeBSD__)
- if(errno == ENOTCONN || errno == EINVAL)
+ setRecvBufferSize(fd, sizeRequested);
+ int size = getRecvBufferSize(fd);
+ if(size > 0 && size < sizeRequested) // Warn if the size that was set is less than the requested size.
{
- return;
+ Ice::Warning out(logger);
+ out << "TCP receive buffer size: requested size of " << sizeRequested << " adjusted to " << size;
}
-#else
- if(errno == ENOTCONN)
+ }
+
+ sizeRequested = properties->getPropertyAsIntWithDefault("Ice.TCP.SndSize", dfltBufSize);
+ if(sizeRequested > 0)
+ {
+ //
+ // Try to set the buffer size. The kernel will silently adjust
+ // the size to an acceptable value. Then read the size back to
+ // get the size that was actually set.
+ //
+ setSendBufferSize(fd, sizeRequested);
+ int size = getSendBufferSize(fd);
+ if(size > 0 && size < sizeRequested) // Warn if the size that was set is less than the requested size.
{
- return;
+ Ice::Warning out(logger);
+ out << "TCP send buffer size: requested size of " << sizeRequested << " adjusted to " << size;
}
-#endif
-
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
}
}
void
IceInternal::setBlock(SOCKET fd, bool block)
{
+#ifndef ICE_OS_WINRT
if(block)
{
#ifdef _WIN32
@@ -861,37 +1342,13 @@ IceInternal::setBlock(SOCKET fd, bool block)
}
#endif
}
-}
-
-void
-IceInternal::setTcpNoDelay(SOCKET fd)
-{
- int flag = 1;
- if(setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, int(sizeof(int))) == SOCKET_ERROR)
- {
- closeSocketNoThrow(fd);
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
-}
-
-void
-IceInternal::setKeepAlive(SOCKET fd)
-{
- int flag = 1;
- if(setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (char*)&flag, int(sizeof(int))) == SOCKET_ERROR)
- {
- closeSocketNoThrow(fd);
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
+#endif
}
void
IceInternal::setSendBufferSize(SOCKET fd, int sz)
{
+#ifndef ICE_OS_WINRT
if(setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&sz, int(sizeof(int))) == SOCKET_ERROR)
{
closeSocketNoThrow(fd);
@@ -899,11 +1356,19 @@ IceInternal::setSendBufferSize(SOCKET fd, int sz)
ex.error = getSocketErrno();
throw ex;
}
+#else
+ StreamSocket^ stream = dynamic_cast<StreamSocket^>(fd);
+ if(stream != nullptr)
+ {
+ stream->Control->OutboundBufferSizeInBytes = sz;
+ }
+#endif
}
int
IceInternal::getSendBufferSize(SOCKET fd)
{
+#ifndef ICE_OS_WINRT
int sz;
socklen_t len = sizeof(sz);
if(getsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&sz, &len) == SOCKET_ERROR ||
@@ -915,11 +1380,20 @@ IceInternal::getSendBufferSize(SOCKET fd)
throw ex;
}
return sz;
+#else
+ StreamSocket^ stream = dynamic_cast<StreamSocket^>(fd);
+ if(stream != nullptr)
+ {
+ return stream->Control->OutboundBufferSizeInBytes;
+ }
+ return 0; // Not supported
+#endif
}
void
IceInternal::setRecvBufferSize(SOCKET fd, int sz)
{
+#ifndef ICE_OS_WINRT
if(setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&sz, int(sizeof(int))) == SOCKET_ERROR)
{
closeSocketNoThrow(fd);
@@ -927,11 +1401,13 @@ IceInternal::setRecvBufferSize(SOCKET fd, int sz)
ex.error = getSocketErrno();
throw ex;
}
+#endif
}
int
IceInternal::getRecvBufferSize(SOCKET fd)
{
+#ifndef ICE_OS_WINRT
int sz;
socklen_t len = sizeof(sz);
if(getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&sz, &len) == SOCKET_ERROR ||
@@ -943,26 +1419,30 @@ IceInternal::getRecvBufferSize(SOCKET fd)
throw ex;
}
return sz;
+#else
+ return 0; // Not supported
+#endif
}
void
-IceInternal::setMcastGroup(SOCKET fd, const struct sockaddr_storage& group, const string& interface)
+IceInternal::setMcastGroup(SOCKET fd, const Address& group, const string& intf)
{
+#ifndef ICE_OS_WINRT
int rc;
if(group.ss_family == AF_INET)
{
struct ip_mreq mreq;
mreq.imr_multiaddr = reinterpret_cast<const struct sockaddr_in*>(&group)->sin_addr;
mreq.imr_interface.s_addr = INADDR_ANY;
- if(interface.size() > 0)
+ if(intf.size() > 0)
{
//
// First see if it is the interface name. If not check if IP Address.
//
- mreq.imr_interface = getInterfaceAddress(interface);
+ mreq.imr_interface = getInterfaceAddress(intf);
if(mreq.imr_interface.s_addr == INADDR_ANY)
{
- struct sockaddr_storage addr = getAddressForServer(interface, 0, EnableIPv4);
+ Address addr = getAddressForServer(intf, 0, EnableIPv4);
mreq.imr_interface = reinterpret_cast<const struct sockaddr_in*>(&addr)->sin_addr;
}
}
@@ -973,15 +1453,15 @@ IceInternal::setMcastGroup(SOCKET fd, const struct sockaddr_storage& group, cons
struct ipv6_mreq mreq;
mreq.ipv6mr_multiaddr = reinterpret_cast<const struct sockaddr_in6*>(&group)->sin6_addr;
mreq.ipv6mr_interface = 0;
- if(interface.size() != 0)
+ if(intf.size() != 0)
{
//
// First check if it is the interface name. If not check if index.
//
- mreq.ipv6mr_interface = getInterfaceIndex(interface);
+ mreq.ipv6mr_interface = getInterfaceIndex(intf);
if(mreq.ipv6mr_interface == 0)
{
- istringstream p(interface);
+ istringstream p(intf);
if(!(p >> mreq.ipv6mr_interface) || !p.eof())
{
closeSocketNoThrow(fd);
@@ -1000,21 +1480,35 @@ IceInternal::setMcastGroup(SOCKET fd, const struct sockaddr_storage& group, cons
ex.error = getSocketErrno();
throw ex;
}
+#else
+ try
+ {
+ //
+ // NOTE: WinRT doesn't allow specyfing the interface.
+ //
+ safe_cast<DatagramSocket^>(fd)->JoinMulticastGroup(group.host);
+ }
+ catch(Platform::Exception^ pex)
+ {
+ throw SocketException(__FILE__, __LINE__, (int)SocketError::GetStatus(pex->HResult));
+ }
+#endif
}
void
-IceInternal::setMcastInterface(SOCKET fd, const string& interface, bool IPv4)
+IceInternal::setMcastInterface(SOCKET fd, const string& intf, const Address& addr)
{
+#ifndef ICE_OS_WINRT
int rc;
- if(IPv4)
+ if(addr.ss_family == AF_INET)
{
//
// First see if it is the interface name. If not check if IP Address.
//
- struct in_addr iface = getInterfaceAddress(interface);
+ struct in_addr iface = getInterfaceAddress(intf);
if(iface.s_addr == INADDR_ANY)
{
- struct sockaddr_storage addr = getAddressForServer(interface, 0, EnableIPv4);
+ Address addr = getAddressForServer(intf, 0, EnableIPv4);
iface = reinterpret_cast<const struct sockaddr_in*>(&addr)->sin_addr;
}
rc = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, (char*)&iface, int(sizeof(iface)));
@@ -1024,10 +1518,10 @@ IceInternal::setMcastInterface(SOCKET fd, const string& interface, bool IPv4)
//
// First check if it is the interface name. If not check if index.
//
- int interfaceNum = getInterfaceIndex(interface);
+ int interfaceNum = getInterfaceIndex(intf);
if(interfaceNum == 0)
{
- istringstream p(interface);
+ istringstream p(intf);
if(!(p >> interfaceNum) || !p.eof())
{
closeSocketNoThrow(fd);
@@ -1044,13 +1538,15 @@ IceInternal::setMcastInterface(SOCKET fd, const string& interface, bool IPv4)
ex.error = getSocketErrno();
throw ex;
}
+#endif
}
void
-IceInternal::setMcastTtl(SOCKET fd, int ttl, bool IPv4)
+IceInternal::setMcastTtl(SOCKET fd, int ttl, const Address& addr)
{
+#ifndef ICE_OS_WINRT
int rc;
- if(IPv4)
+ if(addr.ss_family == AF_INET)
{
rc = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, (char*)&ttl, int(sizeof(int)));
}
@@ -1065,11 +1561,13 @@ IceInternal::setMcastTtl(SOCKET fd, int ttl, bool IPv4)
ex.error = getSocketErrno();
throw ex;
}
+#endif
}
void
IceInternal::setReuseAddress(SOCKET fd, bool reuse)
{
+#ifndef ICE_OS_WINRT
int flag = reuse ? 1 : 0;
if(setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char*)&flag, int(sizeof(int))) == SOCKET_ERROR)
{
@@ -1078,11 +1576,53 @@ IceInternal::setReuseAddress(SOCKET fd, bool reuse)
ex.error = getSocketErrno();
throw ex;
}
+#endif
}
-struct sockaddr_storage
-IceInternal::doBind(SOCKET fd, const struct sockaddr_storage& addr)
+Address
+IceInternal::doBind(SOCKET fd, const Address& addr)
{
+#ifdef ICE_OS_WINRT
+ Address local;
+ try
+ {
+ StreamSocketListener^ listener = dynamic_cast<StreamSocketListener^>(fd);
+ if(listener != nullptr)
+ {
+ if(addr.host == nullptr) // inaddr_any
+ {
+ concurrency::create_task(listener->BindServiceNameAsync(addr.port)).wait();
+ }
+ else
+ {
+ concurrency::create_task(listener->BindEndpointAsync(addr.host, addr.port)).wait();
+ }
+ local.host = addr.host;
+ local.port = listener->Information->LocalPort;
+ }
+
+ DatagramSocket^ datagram = dynamic_cast<DatagramSocket^>(fd);
+ if(datagram != nullptr)
+ {
+ if(addr.host == nullptr) // inaddr_any
+ {
+ concurrency::create_task(datagram->BindServiceNameAsync(addr.port)).wait();
+ }
+ else
+ {
+ concurrency::create_task(datagram->BindEndpointAsync(addr.host, addr.port)).wait();
+ }
+ local.host = datagram->Information->LocalAddress;
+ local.port = datagram->Information->LocalPort;
+ }
+ }
+ catch(Platform::Exception^ pex)
+ {
+ closeSocketNoThrow(fd);
+ checkErrorCode(__FILE__, __LINE__, pex->HResult);
+ }
+ return local;
+#else
int size;
if(addr.ss_family == AF_INET)
{
@@ -1106,7 +1646,7 @@ IceInternal::doBind(SOCKET fd, const struct sockaddr_storage& addr)
throw ex;
}
- struct sockaddr_storage local;
+ Address local;
socklen_t len = static_cast<socklen_t>(sizeof(local));
#ifdef NDEBUG
getsockname(fd, reinterpret_cast<struct sockaddr*>(&local), &len);
@@ -1115,6 +1655,166 @@ IceInternal::doBind(SOCKET fd, const struct sockaddr_storage& addr)
assert(ret != SOCKET_ERROR);
#endif
return local;
+#endif
+}
+
+#ifndef ICE_OS_WINRT
+
+int
+IceInternal::getSocketErrno()
+{
+#if defined(_WIN32)
+ return WSAGetLastError();
+#else
+ return errno;
+#endif
+}
+
+bool
+IceInternal::interrupted()
+{
+#ifdef _WIN32
+ return WSAGetLastError() == WSAEINTR;
+#else
+# ifdef EPROTO
+ return errno == EINTR || errno == EPROTO;
+# else
+ return errno == EINTR;
+# endif
+#endif
+}
+
+bool
+IceInternal::acceptInterrupted()
+{
+ if(interrupted())
+ {
+ return true;
+ }
+
+#ifdef _WIN32
+ int error = WSAGetLastError();
+ return error == WSAECONNABORTED ||
+ error == WSAECONNRESET ||
+ error == WSAETIMEDOUT;
+#else
+ return errno == ECONNABORTED ||
+ errno == ECONNRESET ||
+ errno == ETIMEDOUT;
+#endif
+}
+
+bool
+IceInternal::noBuffers()
+{
+#ifdef _WIN32
+ int error = WSAGetLastError();
+ return error == WSAENOBUFS ||
+ error == WSAEFAULT;
+#else
+ return errno == ENOBUFS;
+#endif
+}
+
+bool
+IceInternal::wouldBlock()
+{
+#ifdef _WIN32
+ int error = WSAGetLastError();
+ return error == WSAEWOULDBLOCK || error == WSA_IO_PENDING || error == ERROR_IO_PENDING;
+#else
+ return errno == EAGAIN || errno == EWOULDBLOCK;
+#endif
+}
+
+bool
+IceInternal::connectFailed()
+{
+#if defined(_WIN32)
+ int error = WSAGetLastError();
+ return error == WSAECONNREFUSED ||
+ error == WSAETIMEDOUT ||
+ error == WSAENETUNREACH ||
+ error == WSAEHOSTUNREACH ||
+ error == WSAECONNRESET ||
+ error == WSAESHUTDOWN ||
+ error == WSAECONNABORTED;
+#else
+ return errno == ECONNREFUSED ||
+ errno == ETIMEDOUT ||
+ errno == ENETUNREACH ||
+ errno == EHOSTUNREACH ||
+ errno == ECONNRESET ||
+ errno == ESHUTDOWN ||
+ errno == ECONNABORTED;
+#endif
+}
+
+bool
+IceInternal::connectionRefused()
+{
+#if defined(_WIN32)
+ int error = WSAGetLastError();
+ return error == WSAECONNREFUSED || error == ERROR_CONNECTION_REFUSED;
+#else
+ return errno == ECONNREFUSED;
+#endif
+}
+
+bool
+IceInternal::connectionLost()
+{
+#ifdef _WIN32
+ int error = WSAGetLastError();
+ return error == WSAECONNRESET ||
+ error == WSAESHUTDOWN ||
+ error == WSAENOTCONN ||
+# ifdef ICE_USE_IOCP
+ error == ERROR_NETNAME_DELETED ||
+# endif
+ error == WSAECONNABORTED;
+#else
+ return errno == ECONNRESET ||
+ errno == ENOTCONN ||
+ errno == ESHUTDOWN ||
+ errno == ECONNABORTED ||
+ errno == EPIPE;
+#endif
+}
+
+bool
+IceInternal::connectInProgress()
+{
+#ifdef _WIN32
+ int error = WSAGetLastError();
+ return error == WSAEWOULDBLOCK || error == WSA_IO_PENDING || error == ERROR_IO_PENDING;
+#else
+ return errno == EINPROGRESS;
+#endif
+}
+
+bool
+IceInternal::notConnected()
+{
+#ifdef _WIN32
+ return WSAGetLastError() == WSAENOTCONN;
+#elif defined(__APPLE__) || defined(__FreeBSD__)
+ return errno == ENOTCONN || errno == EINVAL;
+#else
+ return errno == ENOTCONN;
+#endif
+}
+
+bool
+IceInternal::recvTruncated()
+{
+#ifdef _WIN32
+ int err = WSAGetLastError();
+ return err == WSAEMSGSIZE || err == ERROR_MORE_DATA;
+#else
+ // We don't get an error under Linux if a datagram is truncated.
+ return false;
+#endif
}
void
@@ -1136,7 +1836,7 @@ repeatListen:
}
bool
-IceInternal::doConnect(SOCKET fd, const struct sockaddr_storage& addr)
+IceInternal::doConnect(SOCKET fd, const Address& addr)
{
repeatConnect:
int size;
@@ -1193,7 +1893,7 @@ repeatConnect:
// a server which was just deactivated if the client socket re-uses the same ephemeral
// port as the server).
//
- struct sockaddr_storage localAddr;
+ Address localAddr;
fdToLocalAddress(fd, localAddr);
if(compareAddress(addr, localAddr) == 0)
{
@@ -1218,7 +1918,7 @@ IceInternal::doFinishConnect(SOCKET fd)
// necessary, otherwise no error is reported through
// getsockopt.
//
-#ifdef _WIN32
+#if defined(_WIN32)
Sleep(0);
#endif
@@ -1230,10 +1930,10 @@ IceInternal::doFinishConnect(SOCKET fd)
ex.error = getSocketErrno();
throw ex;
}
-
+
if(val > 0)
{
-#ifdef _WIN32
+#if defined(_WIN32)
WSASetLastError(val);
#else
errno = val;
@@ -1264,9 +1964,9 @@ IceInternal::doFinishConnect(SOCKET fd)
// a server which was just deactivated if the client socket re-uses the same ephemeral
// port as the server).
//
- struct sockaddr_storage localAddr;
+ Address localAddr;
fdToLocalAddress(fd, localAddr);
- struct sockaddr_storage remoteAddr;
+ Address remoteAddr;
if(fdToRemoteAddress(fd, remoteAddr) && compareAddress(remoteAddr, localAddr) == 0)
{
ConnectionRefusedException ex(__FILE__, __LINE__);
@@ -1276,141 +1976,6 @@ IceInternal::doFinishConnect(SOCKET fd)
#endif
}
-#ifdef ICE_USE_IOCP
-void
-IceInternal::doConnectAsync(SOCKET fd, const struct sockaddr_storage& addr, AsyncInfo& info)
-{
- //
- // NOTE: It's the caller's responsability to close the socket upon
- // failure to connect. The socket isn't closed by this method.
- //
-
- struct sockaddr_storage bindAddr;
- memset(&bindAddr, 0, sizeof(bindAddr));
-
- int size;
- if(addr.ss_family == AF_INET)
- {
- size = sizeof(sockaddr_in);
-
- struct sockaddr_in* addrin = reinterpret_cast<struct sockaddr_in*>(&bindAddr);
- addrin->sin_family = AF_INET;
- addrin->sin_port = htons(0);
- addrin->sin_addr.s_addr = htonl(INADDR_ANY);
- }
- else if(addr.ss_family == AF_INET6)
- {
- size = sizeof(sockaddr_in6);
-
- struct sockaddr_in6* addrin = reinterpret_cast<struct sockaddr_in6*>(&bindAddr);
- addrin->sin6_family = AF_INET6;
- addrin->sin6_port = htons(0);
- addrin->sin6_addr = in6addr_any;
- }
- else
- {
- assert(false);
- size = 0; // Keep the compiler happy.
- }
-
- if(bind(fd, reinterpret_cast<const struct sockaddr*>(&bindAddr), size) == SOCKET_ERROR)
- {
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
-
- LPFN_CONNECTEX ConnectEx = NULL; // a pointer to the 'ConnectEx()' function
- GUID GuidConnectEx = WSAID_CONNECTEX; // The Guid
- DWORD dwBytes;
- if(WSAIoctl(fd,
- SIO_GET_EXTENSION_FUNCTION_POINTER,
- &GuidConnectEx,
- sizeof(GuidConnectEx),
- &ConnectEx,
- sizeof(ConnectEx),
- &dwBytes,
- NULL,
- NULL) == SOCKET_ERROR)
- {
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
-
- if(!ConnectEx(fd, reinterpret_cast<const struct sockaddr*>(&addr), size, 0, 0, 0,
-#if defined(_MSC_VER) && (_MSC_VER < 1300) // COMPILER FIX: VC60
- reinterpret_cast<LPOVERLAPPED>(&info)
-#else
- &info
-#endif
- ))
- {
- if(!connectInProgress())
- {
- if(connectionRefused())
- {
- ConnectionRefusedException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
- else if(connectFailed())
- {
- ConnectFailedException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
- else
- {
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
- }
- }
-
-}
-
-void
-IceInternal::doFinishConnectAsync(SOCKET fd, AsyncInfo& info)
-{
- //
- // NOTE: It's the caller's responsability to close the socket upon
- // failure to connect. The socket isn't closed by this method.
- //
-
- if(info.count == SOCKET_ERROR)
- {
- WSASetLastError(info.error);
- if(connectionRefused())
- {
- ConnectionRefusedException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
- else if(connectFailed())
- {
- ConnectFailedException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
- else
- {
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
- }
-
- if(setsockopt(fd, SOL_SOCKET, SO_UPDATE_CONNECT_CONTEXT, NULL, 0) == SOCKET_ERROR)
- {
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
-}
-#endif
-
SOCKET
IceInternal::doAccept(SOCKET fd)
{
@@ -1438,212 +2003,16 @@ repeatAccept:
return ret;
}
-struct sockaddr_storage
-IceInternal::getAddressForServer(const string& host, int port, ProtocolSupport protocol)
-{
- return getAddressImpl(host, port, protocol, true);
-}
-
-struct sockaddr_storage
-IceInternal::getAddress(const string& host, int port, ProtocolSupport protocol)
-{
- return getAddressImpl(host, port, protocol, false);
-}
-
-vector<struct sockaddr_storage>
-IceInternal::getAddresses(const string& host, int port, ProtocolSupport protocol, bool blocking)
-{
- vector<struct sockaddr_storage> result;
- struct sockaddr_storage addr;
- memset(&addr, 0, sizeof(struct sockaddr_storage));
-
- //
- // We don't use getaddrinfo when host is empty as it's not portable (some old Linux
- // versions don't support it).
- //
- if(host.empty())
- {
- if(protocol != EnableIPv4)
- {
- sockaddr_in6* addrin6 = reinterpret_cast<sockaddr_in6*>(&addr);
- addrin6->sin6_family = AF_INET6;
- addrin6->sin6_port = htons(port);
- addrin6->sin6_addr = in6addr_loopback;
- result.push_back(addr);
- }
- if(protocol != EnableIPv6)
- {
- sockaddr_in* addrin = reinterpret_cast<sockaddr_in*>(&addr);
- addrin->sin_family = AF_INET;
- addrin->sin_port = htons(port);
- addrin->sin_addr.s_addr = htonl(INADDR_LOOPBACK);
- result.push_back(addr);
- }
- return result;
- }
-
- struct addrinfo* info = 0;
- int retry = 5;
-
- struct addrinfo hints = { 0 };
- if(protocol == EnableIPv4)
- {
- hints.ai_family = PF_INET;
- }
- else if(protocol == EnableIPv6)
- {
- hints.ai_family = PF_INET6;
- }
- else
- {
- hints.ai_family = PF_UNSPEC;
- }
-
- if(!blocking)
- {
- hints.ai_flags = AI_NUMERICHOST;
- }
-
- int rs = 0;
- do
- {
- rs = getaddrinfo(host.c_str(), 0, &hints, &info);
- }
- while(info == 0 && rs == EAI_AGAIN && --retry >= 0);
-
- // In theory, getaddrinfo should only return EAI_NONAME if AI_NUMERICHOST is specified and the host name
- // is not a IP address. However on some platforms (e.g. Mac OS X 10.4.x) EAI_NODATA is also returned so
- // we also check for it.
-#ifdef EAI_NODATA
- if(!blocking && (rs == EAI_NONAME || rs == EAI_NODATA))
-#else
- if(!blocking && rs == EAI_NONAME)
-#endif
- {
- return result; // Empty result indicates that a blocking lookup is necessary.
- }
- else if(rs != 0)
- {
- DNSException ex(__FILE__, __LINE__);
- ex.error = rs;
- ex.host = host;
- throw ex;
- }
-
- struct addrinfo* p;
- for(p = info; p != NULL; p = p->ai_next)
- {
- memcpy(&addr, p->ai_addr, p->ai_addrlen);
- if(p->ai_family == PF_INET)
- {
- struct sockaddr_in* addrin = reinterpret_cast<sockaddr_in*>(&addr);
- addrin->sin_port = htons(port);
- }
- else if(p->ai_family == PF_INET6)
- {
- struct sockaddr_in6* addrin6 = reinterpret_cast<sockaddr_in6*>(&addr);
- addrin6->sin6_port = htons(port);
- }
-
- bool found = false;
- for(unsigned int i = 0; i < result.size(); ++i)
- {
- if(compareAddress(result[i], addr) == 0)
- {
- found = true;
- break;
- }
- }
- if(!found)
- {
- result.push_back(addr);
- }
- }
-
- freeaddrinfo(info);
-
- if(result.size() == 0)
- {
- DNSException ex(__FILE__, __LINE__);
- ex.host = host;
- throw ex;
- }
-
- return result;
-}
-
-int
-IceInternal::compareAddress(const struct sockaddr_storage& addr1, const struct sockaddr_storage& addr2)
-{
- if(addr1.ss_family < addr2.ss_family)
- {
- return -1;
- }
- else if(addr2.ss_family < addr1.ss_family)
- {
- return 1;
- }
-
- if(addr1.ss_family == AF_INET)
- {
- const struct sockaddr_in* addr1in = reinterpret_cast<const sockaddr_in*>(&addr1);
- const struct sockaddr_in* addr2in = reinterpret_cast<const sockaddr_in*>(&addr2);
-
- if(addr1in->sin_port < addr2in->sin_port)
- {
- return -1;
- }
- else if(addr2in->sin_port < addr1in->sin_port)
- {
- return 1;
- }
-
- if(addr1in->sin_addr.s_addr < addr2in->sin_addr.s_addr)
- {
- return -1;
- }
- else if(addr2in->sin_addr.s_addr < addr1in->sin_addr.s_addr)
- {
- return 1;
- }
- }
- else
- {
- const struct sockaddr_in6* addr1in = reinterpret_cast<const sockaddr_in6*>(&addr1);
- const struct sockaddr_in6* addr2in = reinterpret_cast<const sockaddr_in6*>(&addr2);
-
- if(addr1in->sin6_port < addr2in->sin6_port)
- {
- return -1;
- }
- else if(addr2in->sin6_port < addr1in->sin6_port)
- {
- return 1;
- }
-
- int res = memcmp(&addr1in->sin6_addr, &addr2in->sin6_addr, sizeof(struct in6_addr));
- if(res < 0)
- {
- return -1;
- }
- else if(res > 0)
- {
- return 1;
- }
- }
-
- return 0;
-}
void
IceInternal::createPipe(SOCKET fds[2])
{
#ifdef _WIN32
- SOCKET fd = createSocket(false, AF_INET);
+ SOCKET fd = createSocketImpl(false, AF_INET);
setBlock(fd, true);
- struct sockaddr_storage addr;
+ Address addr;
memset(&addr, 0, sizeof(addr));
struct sockaddr_in* addrin = reinterpret_cast<struct sockaddr_in*>(&addr);
@@ -1656,7 +2025,7 @@ IceInternal::createPipe(SOCKET fds[2])
try
{
- fds[0] = createSocket(false, AF_INET);
+ fds[0] = createSocketImpl(false, AF_INET);
}
catch(...)
{
@@ -1739,290 +2108,204 @@ IceInternal::createPipe(SOCKET fds[2])
#endif
}
-#ifdef _WIN32
-
-string
-IceInternal::errorToStringDNS(int error)
-{
- return IceUtilInternal::errorToString(error);
-}
-
-#else
+#else // ICE_OS_WINRT
-string
-IceInternal::errorToStringDNS(int error)
-{
- return gai_strerror(error);
-}
-
-#endif
-
-std::string
-IceInternal::fdToString(SOCKET fd)
+void
+IceInternal::checkConnectErrorCode(const char* file, int line, HRESULT herr, HostName^ host)
{
- if(fd == INVALID_SOCKET)
+ SocketErrorStatus error = SocketError::GetStatus(herr);
+ if(error == SocketErrorStatus::ConnectionRefused)
{
- return "<closed>";
+ ConnectionRefusedException ex(file, line);
+ ex.error = static_cast<int>(error);
+ throw ex;
}
-
- struct sockaddr_storage localAddr;
- fdToLocalAddress(fd, localAddr);
-
- struct sockaddr_storage remoteAddr;
- bool peerConnected = fdToRemoteAddress(fd, remoteAddr);
-
- return addressesToString(localAddr, remoteAddr, peerConnected);
-};
-
-void
-IceInternal::fdToAddressAndPort(SOCKET fd, string& localAddress, int& localPort, string& remoteAddress, int& remotePort)
-{
- if(fd == INVALID_SOCKET)
+ else if(error == SocketErrorStatus::NetworkDroppedConnectionOnReset ||
+ error == SocketErrorStatus::ConnectionTimedOut ||
+ error == SocketErrorStatus::NetworkIsUnreachable ||
+ error == SocketErrorStatus::UnreachableHost ||
+ error == SocketErrorStatus::ConnectionResetByPeer ||
+ error == SocketErrorStatus::SoftwareCausedConnectionAbort)
{
- localAddress.clear();
- remoteAddress.clear();
- localPort = -1;
- remotePort = -1;
- return;
+ ConnectFailedException ex(file, line);
+ ex.error = static_cast<int>(error);
+ throw ex;
}
-
- struct sockaddr_storage localAddr;
- fdToLocalAddress(fd, localAddr);
- addrToAddressAndPort(localAddr, localAddress, localPort);
-
- struct sockaddr_storage remoteAddr;
- if(fdToRemoteAddress(fd, remoteAddr))
+ else if(error == SocketErrorStatus::HostNotFound)
{
- addrToAddressAndPort(remoteAddr, remoteAddress, remotePort);
+ DNSException ex(file, line);
+ ex.error = static_cast<int>(error);
+ ex.host = IceUtil::wstringToString(host->RawName->Data());
+ throw ex;
}
else
{
- remoteAddress.clear();
- remotePort = -1;
+ SocketException ex(file, line);
+ ex.error = static_cast<int>(error);
+ throw ex;
}
}
void
-IceInternal::addrToAddressAndPort(const struct sockaddr_storage& addr, string& address, int& port)
-{
- address = inetAddrToString(addr);
- port = getPort(addr);
-}
-
-std::string
-IceInternal::addressesToString(const struct sockaddr_storage& localAddr, const struct sockaddr_storage& remoteAddr,
- bool peerConnected)
+IceInternal::checkErrorCode(const char* file, int line, HRESULT herr)
{
- ostringstream s;
- s << "local address = " << addrToString(localAddr);
- if(peerConnected)
+ SocketErrorStatus error = SocketError::GetStatus(herr);
+ if(error == SocketErrorStatus::NetworkDroppedConnectionOnReset ||
+ error == SocketErrorStatus::SoftwareCausedConnectionAbort ||
+ error == SocketErrorStatus::ConnectionResetByPeer)
{
- s << "\nremote address = " << addrToString(remoteAddr);
+ ConnectionLostException ex(file, line);
+ ex.error = static_cast<int>(error);
+ throw ex;
}
- else
+ else if(error == SocketErrorStatus::HostNotFound)
{
- s << "\nremote address = <not connected>";
+ DNSException ex(file, line);
+ ex.error = static_cast<int>(error);
+ throw ex;
}
- return s.str();
-}
-
-void
-IceInternal::fdToLocalAddress(SOCKET fd, struct sockaddr_storage& addr)
-{
- socklen_t len = static_cast<socklen_t>(sizeof(struct sockaddr_storage));
- if(getsockname(fd, reinterpret_cast<struct sockaddr*>(&addr), &len) == SOCKET_ERROR)
+ else
{
- closeSocketNoThrow(fd);
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
+ SocketException ex(file, line);
+ ex.error = static_cast<int>(error);
throw ex;
}
}
-bool
-IceInternal::fdToRemoteAddress(SOCKET fd, struct sockaddr_storage& addr)
-{
- socklen_t len = static_cast<socklen_t>(sizeof(struct sockaddr_storage));
- if(getpeername(fd, reinterpret_cast<struct sockaddr*>(&addr), &len) == SOCKET_ERROR)
- {
- if(notConnected())
- {
- return false;
- }
- else
- {
- closeSocketNoThrow(fd);
- SocketException ex(__FILE__, __LINE__);
- ex.error = getSocketErrno();
- throw ex;
- }
- }
- return true;
-}
+#endif
-string
-IceInternal::inetAddrToString(const struct sockaddr_storage& ss)
+#if defined(ICE_USE_IOCP)
+void
+IceInternal::doConnectAsync(SOCKET fd, const Address& addr, AsyncInfo& info)
{
- int size = 0;
- if(ss.ss_family == AF_INET)
- {
- size = sizeof(sockaddr_in);
- }
- else if(ss.ss_family == AF_INET6)
- {
- size = sizeof(sockaddr_in6);
- }
- else
- {
- return "";
- }
-
- char namebuf[1024];
- namebuf[0] = '\0';
- getnameinfo(reinterpret_cast<const struct sockaddr *>(&ss), size, namebuf, sizeof(namebuf), 0, 0, NI_NUMERICHOST);
- return string(namebuf);
-}
+ //
+ // NOTE: It's the caller's responsability to close the socket upon
+ // failure to connect. The socket isn't closed by this method.
+ //
-string
-IceInternal::addrToString(const struct sockaddr_storage& addr)
-{
- ostringstream s;
- string port;
- s << inetAddrToString(addr) << ':' << getPort(addr);
- return s.str();
-}
+ Address bindAddr;
+ memset(&bindAddr, 0, sizeof(bindAddr));
-bool
-IceInternal::isMulticast(const struct sockaddr_storage& addr)
-{
+ int size;
if(addr.ss_family == AF_INET)
{
- return IN_MULTICAST(ntohl(reinterpret_cast<const struct sockaddr_in*>(&addr)->sin_addr.s_addr));
- }
- else if(addr.ss_family == AF_INET6)
- {
- return IN6_IS_ADDR_MULTICAST(&reinterpret_cast<const struct sockaddr_in6*>(&addr)->sin6_addr);
- }
- else
- {
- return false;
- }
-}
+ size = sizeof(sockaddr_in);
-int
-IceInternal::getPort(const struct sockaddr_storage& addr)
-{
- if(addr.ss_family == AF_INET)
- {
- return ntohs(reinterpret_cast<const sockaddr_in*>(&addr)->sin_port);
+ struct sockaddr_in* addrin = reinterpret_cast<struct sockaddr_in*>(&bindAddr);
+ addrin->sin_family = AF_INET;
+ addrin->sin_port = htons(0);
+ addrin->sin_addr.s_addr = htonl(INADDR_ANY);
}
else if(addr.ss_family == AF_INET6)
{
- return ntohs(reinterpret_cast<const sockaddr_in6*>(&addr)->sin6_port);
+ size = sizeof(sockaddr_in6);
+
+ struct sockaddr_in6* addrin = reinterpret_cast<struct sockaddr_in6*>(&bindAddr);
+ addrin->sin6_family = AF_INET6;
+ addrin->sin6_port = htons(0);
+ addrin->sin6_addr = in6addr_any;
}
else
{
- return -1;
+ assert(false);
+ size = 0; // Keep the compiler happy.
}
-}
-void
-IceInternal::setPort(struct sockaddr_storage& addr, int port)
-{
- if(addr.ss_family == AF_INET)
+ if(bind(fd, reinterpret_cast<const struct sockaddr*>(&bindAddr), size) == SOCKET_ERROR)
{
- reinterpret_cast<sockaddr_in*>(&addr)->sin_port = htons(port);
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
}
- else
+
+ LPFN_CONNECTEX ConnectEx = NULL; // a pointer to the 'ConnectEx()' function
+ GUID GuidConnectEx = WSAID_CONNECTEX; // The Guid
+ DWORD dwBytes;
+ if(WSAIoctl(fd,
+ SIO_GET_EXTENSION_FUNCTION_POINTER,
+ &GuidConnectEx,
+ sizeof(GuidConnectEx),
+ &ConnectEx,
+ sizeof(ConnectEx),
+ &dwBytes,
+ NULL,
+ NULL) == SOCKET_ERROR)
{
- assert(addr.ss_family == AF_INET6);
- reinterpret_cast<sockaddr_in6*>(&addr)->sin6_port = htons(port);
- }
-}
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
-vector<string>
-IceInternal::getHostsForEndpointExpand(const string& host, ProtocolSupport protocolSupport, bool includeLoopback)
-{
- vector<string> hosts;
- if(host.empty() || isWildcard(host, protocolSupport))
+ if(!ConnectEx(fd, reinterpret_cast<const struct sockaddr*>(&addr), size, 0, 0, 0,
+#if defined(_MSC_VER) && (_MSC_VER < 1300) // COMPILER FIX: VC60
+ reinterpret_cast<LPOVERLAPPED>(&info)
+#else
+ &info
+#endif
+ ))
{
- vector<struct sockaddr_storage> addrs = getLocalAddresses(protocolSupport);
- for(vector<struct sockaddr_storage>::const_iterator p = addrs.begin(); p != addrs.end(); ++p)
+ if(!connectInProgress())
{
- //
- // NOTE: We don't publish link-local IPv6 addresses as these addresses can only
- // be accessed in general with a scope-id.
- //
- if(p->ss_family != AF_INET6 ||
- !IN6_IS_ADDR_LINKLOCAL(&reinterpret_cast<const struct sockaddr_in6*>(&(*p))->sin6_addr))
+ if(connectionRefused())
{
- hosts.push_back(inetAddrToString(*p));
+ ConnectionRefusedException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
}
- }
-
- if(hosts.empty() || includeLoopback)
- {
- if(protocolSupport != EnableIPv6)
+ else if(connectFailed())
{
- hosts.push_back("127.0.0.1");
+ ConnectFailedException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
}
- if(protocolSupport != EnableIPv4)
+ else
{
- hosts.push_back("0:0:0:0:0:0:0:1");
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
}
}
}
- return hosts; // An empty host list indicates to just use the given host.
}
void
-IceInternal::setTcpBufSize(SOCKET fd, const Ice::PropertiesPtr& properties, const Ice::LoggerPtr& logger)
+IceInternal::doFinishConnectAsync(SOCKET fd, AsyncInfo& info)
{
- assert(fd != INVALID_SOCKET);
-
//
- // By default, on Windows we use a 128KB buffer size. On Unix
- // platforms, we use the system defaults.
+ // NOTE: It's the caller's responsability to close the socket upon
+ // failure to connect. The socket isn't closed by this method.
//
-#ifdef _WIN32
- const int dfltBufSize = 128 * 1024;
-#else
- const int dfltBufSize = 0;
-#endif
- Int sizeRequested;
- sizeRequested = properties->getPropertyAsIntWithDefault("Ice.TCP.RcvSize", dfltBufSize);
- if(sizeRequested > 0)
+ if(info.count == SOCKET_ERROR)
{
- //
- // Try to set the buffer size. The kernel will silently adjust
- // the size to an acceptable value. Then read the size back to
- // get the size that was actually set.
- //
- setRecvBufferSize(fd, sizeRequested);
- int size = getRecvBufferSize(fd);
- if(size < sizeRequested) // Warn if the size that was set is less than the requested size.
+ WSASetLastError(info.error);
+ if(connectionRefused())
{
- Ice::Warning out(logger);
- out << "TCP receive buffer size: requested size of " << sizeRequested << " adjusted to " << size;
+ ConnectionRefusedException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+ else if(connectFailed())
+ {
+ ConnectFailedException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+ else
+ {
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
}
}
- sizeRequested = properties->getPropertyAsIntWithDefault("Ice.TCP.SndSize", dfltBufSize);
- if(sizeRequested > 0)
+ if(setsockopt(fd, SOL_SOCKET, SO_UPDATE_CONNECT_CONTEXT, NULL, 0) == SOCKET_ERROR)
{
- //
- // Try to set the buffer size. The kernel will silently adjust
- // the size to an acceptable value. Then read the size back to
- // get the size that was actually set.
- //
- setSendBufferSize(fd, sizeRequested);
- int size = getSendBufferSize(fd);
- if(size < sizeRequested) // Warn if the size that was set is less than the requested size.
- {
- Ice::Warning out(logger);
- out << "TCP send buffer size: requested size of " << sizeRequested << " adjusted to " << size;
- }
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
}
}
+#endif
+
diff --git a/cpp/src/Ice/Network.h b/cpp/src/Ice/Network.h
index 8e5ca6eda68..66c700dbf23 100644
--- a/cpp/src/Ice/Network.h
+++ b/cpp/src/Ice/Network.h
@@ -15,11 +15,14 @@
#endif
#include <Ice/Config.h>
+
#include <Ice/PropertiesF.h> // For setTcpBufSize
#include <Ice/LoggerF.h> // For setTcpBufSize
#include <Ice/Protocol.h>
-#ifdef _WIN32
+#ifdef ICE_OS_WINRT
+# include <Ice/EventHandlerF.h>
+#elif defined(_WIN32)
# include <winsock2.h>
# include <ws2tcpip.h>
typedef int ssize_t;
@@ -39,7 +42,8 @@ typedef int ssize_t;
#elif (defined(__APPLE__) || defined(__FreeBSD__)) && !defined(ICE_NO_KQUEUE)
# define ICE_USE_KQUEUE 1
#elif defined(_WIN32)
-# if !defined(ICE_NO_IOCP)
+# if defined(ICE_OS_WINRT)
+# elif !defined(ICE_NO_IOCP)
# define ICE_USE_IOCP 1
# else
# define ICE_USE_SELECT 1
@@ -52,10 +56,14 @@ typedef int ssize_t;
typedef int socklen_t;
#endif
-#ifndef _WIN32
+#if !defined(_WIN32)
# define SOCKET int
-# define SOCKET_ERROR -1
# define INVALID_SOCKET -1
+# define SOCKET_ERROR -1
+#elif defined(ICE_OS_WINRT)
+ typedef Platform::Object^ SOCKET;
+# define INVALID_SOCKET nullptr
+# define SOCKET_ERROR -1
#endif
#ifndef SHUT_RD
@@ -81,6 +89,19 @@ typedef int socklen_t;
namespace IceInternal
{
+//
+// Use Address typedef/struct depending on the platform
+//
+#ifdef ICE_OS_WINRT
+struct ICE_API Address
+{
+ Windows::Networking::HostName^ host;
+ Platform::String^ port;
+};
+#else
+typedef struct sockaddr_storage Address;
+#endif
+
enum SocketOperation
{
SocketOperationNone = 0,
@@ -89,8 +110,11 @@ enum SocketOperation
SocketOperationConnect = 2
};
-#ifdef ICE_USE_IOCP
-
+//
+// AsyncInfo struct for Windows IOCP or WinRT holds the result of
+// asynchronous operations after it completed.
+//
+#if defined(ICE_USE_IOCP)
struct ICE_API AsyncInfo : WSAOVERLAPPED
{
AsyncInfo(SocketOperation);
@@ -101,8 +125,15 @@ struct ICE_API AsyncInfo : WSAOVERLAPPED
DWORD count;
int error;
};
-
-#endif
+#elif defined(ICE_OS_WINRT)
+struct ICE_API AsyncInfo
+{
+ int count;
+ int error;
+};
+
+public delegate void SocketOperationCompletedHandler(int);
+#endif
class ICE_API NativeInfo : virtual public IceUtil::Shared
{
@@ -117,11 +148,13 @@ public:
return _fd;
}
-#ifdef ICE_USE_IOCP
//
// This is implemented by transceiver and acceptor implementations.
//
+#if defined(ICE_USE_IOCP)
virtual AsyncInfo* getAsyncInfo(SocketOperation) = 0;
+#elif defined(ICE_OS_WINRT)
+ virtual void setCompletedHandler(SocketOperationCompletedHandler^) = 0;
#endif
protected:
@@ -130,73 +163,79 @@ protected:
};
typedef IceUtil::Handle<NativeInfo> NativeInfoPtr;
-ICE_API bool interrupted();
-ICE_API bool acceptInterrupted();
-ICE_API bool noBuffers();
-ICE_API bool wouldBlock();
-ICE_API bool connectFailed();
-ICE_API bool connectionRefused();
-ICE_API bool connectInProgress();
-ICE_API bool connectionLost();
-ICE_API bool notConnected();
-ICE_API bool recvTruncated();
ICE_API bool noMoreFds(int);
+ICE_API std::string errorToStringDNS(int);
+ICE_API std::vector<Address> getAddresses(const std::string&, int, ProtocolSupport, bool);
+ICE_API ProtocolSupport getProtocolSupport(const Address&);
+ICE_API Address getAddressForServer(const std::string&, int, ProtocolSupport);
+ICE_API Address getAddress(const std::string&, int, ProtocolSupport);
+ICE_API int compareAddress(const Address&, const Address&);
-ICE_API SOCKET createSocket(bool, int);
-ICE_API void closeSocket(SOCKET);
+ICE_API SOCKET createSocket(bool, const Address&);
ICE_API void closeSocketNoThrow(SOCKET);
-ICE_API void shutdownSocketWrite(SOCKET);
-ICE_API void shutdownSocketReadWrite(SOCKET);
+ICE_API void closeSocket(SOCKET);
+
+ICE_API std::string addrToString(const Address&);
+ICE_API void fdToLocalAddress(SOCKET, Address&);
+ICE_API bool fdToRemoteAddress(SOCKET, Address&);
+ICE_API std::string fdToString(SOCKET);
+ICE_API void fdToAddressAndPort(SOCKET, std::string&, int&, std::string&, int&);
+ICE_API void addrToAddressAndPort(const Address&, std::string&, int&);
+ICE_API std::string addressesToString(const Address&, const Address&, bool);
+ICE_API bool isAddressValid(const Address&);
+
+ICE_API std::vector<std::string> getHostsForEndpointExpand(const std::string&, ProtocolSupport, bool);
+
+ICE_API std::string inetAddrToString(const Address&);
+ICE_API int getPort(const Address&);
+ICE_API void setPort(Address&, int);
+
+ICE_API bool isMulticast(const Address&);
+ICE_API void setTcpBufSize(SOCKET, const Ice::PropertiesPtr&, const Ice::LoggerPtr&);
ICE_API void setBlock(SOCKET, bool);
-ICE_API void setTcpNoDelay(SOCKET);
-ICE_API void setKeepAlive(SOCKET);
ICE_API void setSendBufferSize(SOCKET, int);
ICE_API int getSendBufferSize(SOCKET);
ICE_API void setRecvBufferSize(SOCKET, int);
ICE_API int getRecvBufferSize(SOCKET);
-ICE_API void setMcastGroup(SOCKET, const struct sockaddr_storage&, const std::string&);
-ICE_API void setMcastInterface(SOCKET, const std::string&, bool);
-ICE_API void setMcastTtl(SOCKET, int, bool);
+
+ICE_API void setMcastGroup(SOCKET, const Address&, const std::string&);
+ICE_API void setMcastInterface(SOCKET, const std::string&, const Address&);
+ICE_API void setMcastTtl(SOCKET, int, const Address&);
ICE_API void setReuseAddress(SOCKET, bool);
-ICE_API struct sockaddr_storage doBind(SOCKET, const struct sockaddr_storage&);
+ICE_API Address doBind(SOCKET, const Address&);
+
+#ifndef ICE_OS_WINRT
+ICE_API bool interrupted();
+ICE_API bool acceptInterrupted();
+ICE_API bool noBuffers();
+ICE_API bool wouldBlock();
+ICE_API bool notConnected();
+ICE_API bool recvTruncated();
+
+ICE_API bool connectFailed();
+ICE_API bool connectionRefused();
+ICE_API bool connectInProgress();
+ICE_API bool connectionLost();
+
ICE_API void doListen(SOCKET, int);
-ICE_API bool doConnect(SOCKET, const struct sockaddr_storage&);
+ICE_API bool doConnect(SOCKET, const Address&);
ICE_API void doFinishConnect(SOCKET);
-#ifdef ICE_USE_IOCP
-ICE_API void doConnectAsync(SOCKET, const struct sockaddr_storage&, AsyncInfo&);
-ICE_API void doFinishConnectAsync(SOCKET, AsyncInfo&);
-#endif
ICE_API SOCKET doAccept(SOCKET);
-ICE_API struct sockaddr_storage getAddressForServer(const std::string&, int, ProtocolSupport);
-ICE_API struct sockaddr_storage getAddress(const std::string&, int, ProtocolSupport);
-ICE_API std::vector<struct sockaddr_storage> getAddresses(const std::string&, int, ProtocolSupport, bool);
-
-ICE_API int compareAddress(const struct sockaddr_storage&, const struct sockaddr_storage&);
-
ICE_API void createPipe(SOCKET fds[2]);
-ICE_API std::string errorToStringDNS(int);
-
-ICE_API std::string fdToString(SOCKET);
-ICE_API void fdToAddressAndPort(SOCKET, std::string&, int&, std::string&, int&);
-ICE_API void addrToAddressAndPort(const struct sockaddr_storage&, std::string&, int&);
-ICE_API std::string addressesToString(const struct sockaddr_storage&, const struct sockaddr_storage&, bool);
-ICE_API void fdToLocalAddress(SOCKET, struct sockaddr_storage&);
-ICE_API bool fdToRemoteAddress(SOCKET, struct sockaddr_storage&);
-ICE_API std::string inetAddrToString(const struct sockaddr_storage&);
-ICE_API std::string addrToString(const struct sockaddr_storage&);
-ICE_API bool isMulticast(const struct sockaddr_storage&);
-ICE_API int getPort(const struct sockaddr_storage&);
-ICE_API void setPort(struct sockaddr_storage&, int);
-
-ICE_API std::vector<std::string> getHostsForEndpointExpand(const std::string&, ProtocolSupport, bool);
-ICE_API void setTcpBufSize(SOCKET, const Ice::PropertiesPtr&, const Ice::LoggerPtr&);
-
ICE_API int getSocketErrno();
+#else
+ICE_API void checkConnectErrorCode(const char*, int, HRESULT, Windows::Networking::HostName^);
+ICE_API void checkErrorCode(const char*, int, HRESULT);
+#endif
+#if defined(ICE_USE_IOCP)
+ICE_API void doConnectAsync(SOCKET, const Address&, AsyncInfo&);
+ICE_API void doFinishConnectAsync(SOCKET, AsyncInfo&);
+#endif
}
#endif
diff --git a/cpp/src/Ice/PropertiesI.cpp b/cpp/src/Ice/PropertiesI.cpp
index 271696ff28d..fb2ca88bdb5 100644
--- a/cpp/src/Ice/PropertiesI.cpp
+++ b/cpp/src/Ice/PropertiesI.cpp
@@ -7,10 +7,10 @@
//
// **********************************************************************
+#include <Ice/PropertiesI.h>
#include <IceUtil/DisableWarnings.h>
#include <IceUtil/StringUtil.h>
#include <IceUtil/FileUtil.h>
-#include <Ice/PropertiesI.h>
#include <Ice/Initialize.h>
#include <Ice/LocalException.h>
#include <Ice/PropertyNames.h>
@@ -285,7 +285,10 @@ Ice::PropertiesI::parseIceCommandLineOptions(const StringSeq& options)
void
Ice::PropertiesI::load(const std::string& file)
{
-#ifdef _WIN32
+//
+// Metro style applications cannot access Windows registry.
+//
+#if defined (_WIN32) && !defined(ICE_OS_WINRT)
if(file.find("HKLM\\") == 0)
{
HKEY iceKey;
@@ -700,9 +703,12 @@ void
Ice::PropertiesI::loadConfig()
{
string value = getProperty("Ice.Config");
+#ifndef ICE_OS_WINRT
+ //
+ // WinRT cannot access environment variables
if(value.empty() || value == "1")
{
-#ifdef _WIN32
+# ifdef _WIN32
vector<wchar_t> v(256);
DWORD ret = GetEnvironmentVariableW(L"ICE_CONFIG", &v[0], static_cast<DWORD>(v.size()));
if(ret >= v.size())
@@ -718,14 +724,15 @@ Ice::PropertiesI::loadConfig()
{
value = "";
}
-#else
+# else
const char* s = getenv("ICE_CONFIG");
if(s && *s != '\0')
{
value = s;
}
-#endif
+# endif
}
+#endif
if(!value.empty())
{
diff --git a/cpp/src/Ice/Selector.cpp b/cpp/src/Ice/Selector.cpp
index 340dffdfa1a..aadf85a1114 100644
--- a/cpp/src/Ice/Selector.cpp
+++ b/cpp/src/Ice/Selector.cpp
@@ -12,11 +12,97 @@
#include <Ice/Instance.h>
#include <Ice/LoggerUtil.h>
#include <Ice/LocalException.h>
+#include <IceUtil/Time.h>
using namespace std;
using namespace IceInternal;
-#if defined(ICE_USE_IOCP)
+#ifdef ICE_OS_WINRT
+using namespace Windows::Foundation;
+using namespace Windows::Storage::Streams;
+using namespace Windows::Networking;
+using namespace Windows::Networking::Sockets;
+
+Selector::Selector(const InstancePtr& instance) : _instance(instance)
+{
+}
+
+void
+Selector::destroy()
+{
+}
+
+void
+Selector::initialize(IceInternal::EventHandler* handler)
+{
+ handler->__incRef();
+ handler->getNativeInfo()->setCompletedHandler(
+ ref new SocketOperationCompletedHandler([=](int operation)
+ {
+ completed(handler, static_cast<SocketOperation>(operation));
+ }));
+}
+
+void
+Selector::update(IceInternal::EventHandler* handler, SocketOperation remove, SocketOperation add)
+{
+ handler->_registered = static_cast<SocketOperation>(handler->_registered & ~remove);
+ handler->_registered = static_cast<SocketOperation>(handler->_registered | add);
+ if(add & SocketOperationRead && !(handler->_pending & SocketOperationRead))
+ {
+ handler->_pending = static_cast<SocketOperation>(handler->_pending | SocketOperationRead);
+ completed(handler, SocketOperationRead); // Start an asynchrnous read
+ }
+ else if(add & SocketOperationWrite && !(handler->_pending & SocketOperationWrite))
+ {
+ handler->_pending = static_cast<SocketOperation>(handler->_pending | SocketOperationWrite);
+ completed(handler, SocketOperationWrite); // Start an asynchrnous write
+ }
+}
+
+void
+Selector::finish(IceInternal::EventHandler* handler)
+{
+ handler->_registered = SocketOperationNone;
+ handler->__decRef();
+}
+
+IceInternal::EventHandler*
+Selector::getNextHandler(SocketOperation& status, int timeout)
+{
+ Lock lock(*this);
+ while(_events.empty())
+ {
+ if(timeout > 0)
+ {
+ timedWait(IceUtil::Time::seconds(timeout));
+ if(_events.empty())
+ {
+ throw SelectorTimeoutException();
+ }
+ }
+ else
+ {
+ wait();
+ }
+ }
+ assert(!_events.empty());
+ IceInternal::EventHandler* handler = _events.front().handler;
+ status = _events.front().status;
+ _events.pop_front();
+ return handler;
+}
+
+void
+Selector::completed(IceInternal::EventHandler* handler, SocketOperation op)
+{
+ Lock lock(*this);
+ _events.push_back(SelectEvent(handler, op));
+ notify();
+}
+
+#elif defined(ICE_USE_IOCP)
+
Selector::Selector(const InstancePtr& instance) : _instance(instance)
{
}
@@ -482,6 +568,7 @@ Selector::~Selector()
void
Selector::destroy()
{
+ assert(_events.empty());
}
void
diff --git a/cpp/src/Ice/Selector.h b/cpp/src/Ice/Selector.h
index 4c8b276abac..4ba45a9e4f3 100644
--- a/cpp/src/Ice/Selector.h
+++ b/cpp/src/Ice/Selector.h
@@ -26,6 +26,10 @@
# include <sys/poll.h>
#endif
+#if defined(ICE_OS_WINRT)
+# include <deque>
+#endif
+
namespace IceInternal
{
@@ -36,7 +40,41 @@ class SelectorTimeoutException
{
};
-#ifdef ICE_USE_IOCP
+#if defined(ICE_OS_WINRT)
+
+struct SelectEvent
+{
+ SelectEvent(IceInternal::EventHandler* handler, SocketOperation status) : handler(handler), status(status)
+ {
+ }
+
+ IceInternal::EventHandler* handler;
+ SocketOperation status;
+};
+
+class Selector : IceUtil::Monitor<IceUtil::Mutex>
+{
+public:
+
+ Selector(const InstancePtr&);
+
+ void destroy();
+
+ void initialize(IceInternal::EventHandler*);
+ void update(IceInternal::EventHandler*, SocketOperation, SocketOperation);
+ void finish(IceInternal::EventHandler*);
+
+ IceInternal::EventHandler* getNextHandler(SocketOperation&, int);
+
+ void completed(IceInternal::EventHandler*, SocketOperation);
+
+private:
+
+ const InstancePtr _instance;
+ std::deque<SelectEvent> _events;
+};
+
+#elif defined(ICE_USE_IOCP)
class Selector
{
diff --git a/cpp/src/Ice/TcpAcceptor.cpp b/cpp/src/Ice/TcpAcceptor.cpp
index 27a59ef47ad..0fc4fbc710c 100644
--- a/cpp/src/Ice/TcpAcceptor.cpp
+++ b/cpp/src/Ice/TcpAcceptor.cpp
@@ -12,7 +12,6 @@
#include <Ice/Instance.h>
#include <Ice/TraceLevels.h>
#include <Ice/LoggerUtil.h>
-#include <Ice/Network.h>
#include <Ice/Exception.h>
#include <Ice/Properties.h>
#include <IceUtil/StringUtil.h>
@@ -66,7 +65,7 @@ IceInternal::TcpAcceptor::listen()
_fd = INVALID_SOCKET;
throw;
}
-
+
if(_traceLevels->network >= 1)
{
Trace out(_logger, _traceLevels->networkCat);
@@ -105,7 +104,7 @@ IceInternal::TcpAcceptor::startAccept()
}
assert(_acceptFd == INVALID_SOCKET);
- _acceptFd = createSocket(false, _addr.ss_family);
+ _acceptFd = createSocket(false, _addr);
const int sz = static_cast<int>(_acceptBuf.size() / 2);
if(!AcceptEx(_fd, _acceptFd, &_acceptBuf[0], 0, sz, sz, &_info.count,
#if defined(_MSC_VER) && (_MSC_VER < 1300) // COMPILER FIX: VC60
@@ -134,22 +133,19 @@ IceInternal::TcpAcceptor::finishAccept()
_acceptError = _info.error;
}
}
+
#endif
TransceiverPtr
IceInternal::TcpAcceptor::accept()
{
- SOCKET fd;
-#ifndef ICE_USE_IOCP
- fd = doAccept(_fd);
-#else
+#ifdef ICE_USE_IOCP
if(_acceptFd == INVALID_SOCKET)
{
SocketException ex(__FILE__, __LINE__);
ex.error = _acceptError;
throw ex;
}
-
if(setsockopt(_acceptFd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (char*)&_acceptFd, sizeof(_acceptFd)) ==
SOCKET_ERROR)
{
@@ -160,9 +156,12 @@ IceInternal::TcpAcceptor::accept()
throw ex;
}
- fd = _acceptFd;
+ SOCKET fd = _acceptFd;
_acceptFd = INVALID_SOCKET;
+#else
+ SOCKET fd = doAccept(_fd);
#endif
+
if(_traceLevels->network >= 1)
{
Trace out(_logger, _traceLevels->networkCat);
@@ -183,7 +182,8 @@ IceInternal::TcpAcceptor::effectivePort() const
return getPort(_addr);
}
-IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const string& host, int port, ProtocolSupport protocol) :
+IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const string& host, int port,
+ ProtocolSupport protocol) :
_instance(instance),
_traceLevels(instance->traceLevels()),
_logger(instance->initializationData().logger),
@@ -199,10 +199,13 @@ IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const string&
_backlog = instance->initializationData().properties->getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511);
#endif
- _fd = createSocket(false, _addr.ss_family);
+
+ _fd = createSocket(false, _addr);
+
#ifdef ICE_USE_IOCP
_acceptBuf.resize((sizeof(sockaddr_storage) + 16) * 2);
#endif
+
setBlock(_fd, false);
setTcpBufSize(_fd, _instance->initializationData().properties, _logger);
#ifndef _WIN32
@@ -220,12 +223,13 @@ IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const string&
//
setReuseAddress(_fd, true);
#endif
+
if(_traceLevels->network >= 2)
{
Trace out(_logger, _traceLevels->networkCat);
out << "attempting to bind to tcp socket " << toString();
}
- const_cast<struct sockaddr_storage&>(_addr) = doBind(_fd, _addr);
+ const_cast<Address&>(_addr) = doBind(_fd, _addr);
}
IceInternal::TcpAcceptor::~TcpAcceptor()
@@ -235,3 +239,4 @@ IceInternal::TcpAcceptor::~TcpAcceptor()
assert(_acceptFd == INVALID_SOCKET);
#endif
}
+
diff --git a/cpp/src/Ice/TcpAcceptor.h b/cpp/src/Ice/TcpAcceptor.h
index 6d95d13f208..c54ae4dbb27 100644
--- a/cpp/src/Ice/TcpAcceptor.h
+++ b/cpp/src/Ice/TcpAcceptor.h
@@ -15,10 +15,7 @@
#include <Ice/TraceLevelsF.h>
#include <Ice/LoggerF.h>
#include <Ice/Acceptor.h>
-
-#ifndef _WIN32
-# include <sys/socket.h> // For struct sockaddr_storage
-#endif
+#include <Ice/Network.h>
namespace IceInternal
{
@@ -40,6 +37,7 @@ public:
virtual void startAccept();
virtual void finishAccept();
#endif
+
virtual TransceiverPtr accept();
virtual std::string toString() const;
@@ -54,7 +52,7 @@ private:
const InstancePtr _instance;
const TraceLevelsPtr _traceLevels;
const ::Ice::LoggerPtr _logger;
- const struct sockaddr_storage _addr;
+ const Address _addr;
int _backlog;
#ifdef ICE_USE_IOCP
@@ -66,5 +64,5 @@ private:
};
}
-
#endif
+
diff --git a/cpp/src/Ice/TcpConnector.cpp b/cpp/src/Ice/TcpConnector.cpp
index e349fac992e..673a5d3e1ed 100644
--- a/cpp/src/Ice/TcpConnector.cpp
+++ b/cpp/src/Ice/TcpConnector.cpp
@@ -31,7 +31,7 @@ IceInternal::TcpConnector::connect()
try
{
- TransceiverPtr transceiver = new TcpTransceiver(_instance, createSocket(false, _addr.ss_family), false);
+ TransceiverPtr transceiver = new TcpTransceiver(_instance, createSocket(false, _addr), false);
dynamic_cast<TcpTransceiver*>(transceiver.get())->connect(_addr);
return transceiver;
}
@@ -71,7 +71,7 @@ IceInternal::TcpConnector::operator==(const Connector& r) const
{
return false;
}
-
+
if(_timeout != p->_timeout)
{
return false;
@@ -117,11 +117,11 @@ IceInternal::TcpConnector::operator<(const Connector& r) const
{
return false;
}
- return compareAddress(_addr, p->_addr) == -1;
+ return compareAddress(_addr, p->_addr) < 0;
}
-IceInternal::TcpConnector::TcpConnector(const InstancePtr& instance, const struct sockaddr_storage& addr,
- Ice::Int timeout, const string& connectionId) :
+IceInternal::TcpConnector::TcpConnector(const InstancePtr& instance, const Address& addr, Ice::Int timeout,
+ const string& connectionId) :
_instance(instance),
_traceLevels(instance->traceLevels()),
_logger(instance->initializationData().logger),
diff --git a/cpp/src/Ice/TcpConnector.h b/cpp/src/Ice/TcpConnector.h
index f7039a146b2..3b6862cc13b 100644
--- a/cpp/src/Ice/TcpConnector.h
+++ b/cpp/src/Ice/TcpConnector.h
@@ -15,12 +15,7 @@
#include <Ice/TraceLevelsF.h>
#include <Ice/LoggerF.h>
#include <Ice/Connector.h>
-
-#ifdef _WIN32
-# include <winsock2.h>
-#else
-# include <sys/socket.h>
-#endif
+#include <Ice/Network.h>
namespace IceInternal
{
@@ -39,15 +34,15 @@ public:
virtual bool operator<(const Connector&) const;
private:
-
- TcpConnector(const InstancePtr&, const struct sockaddr_storage&, Ice::Int, const std::string&);
+
+ TcpConnector(const InstancePtr&, const Address&, Ice::Int, const std::string&);
virtual ~TcpConnector();
friend class TcpEndpointI;
const InstancePtr _instance;
const TraceLevelsPtr _traceLevels;
const ::Ice::LoggerPtr _logger;
- const struct sockaddr_storage _addr;
+ const Address _addr;
const Ice::Int _timeout;
const std::string _connectionId;
};
diff --git a/cpp/src/Ice/TcpEndpointI.cpp b/cpp/src/Ice/TcpEndpointI.cpp
index e71f089b4b3..7c8f94c231e 100644
--- a/cpp/src/Ice/TcpEndpointI.cpp
+++ b/cpp/src/Ice/TcpEndpointI.cpp
@@ -526,9 +526,9 @@ IceInternal::TcpEndpointI::hashInit() const
hashAdd(h, _compress);
return h;
}
-
+
vector<ConnectorPtr>
-IceInternal::TcpEndpointI::connectors(const vector<struct sockaddr_storage>& addresses) const
+IceInternal::TcpEndpointI::connectors(const vector<Address>& addresses) const
{
vector<ConnectorPtr> connectors;
for(unsigned int i = 0; i < addresses.size(); ++i)
diff --git a/cpp/src/Ice/TcpEndpointI.h b/cpp/src/Ice/TcpEndpointI.h
index d380e8994fd..96c0e6a94e1 100644
--- a/cpp/src/Ice/TcpEndpointI.h
+++ b/cpp/src/Ice/TcpEndpointI.h
@@ -10,8 +10,10 @@
#ifndef ICE_TCP_ENDPOINT_I_H
#define ICE_TCP_ENDPOINT_I_H
+#include <IceUtil/Config.h>
#include <Ice/EndpointI.h>
#include <Ice/EndpointFactory.h>
+#include <Ice/Network.h> // for IceIternal::Address
namespace IceInternal
{
@@ -48,7 +50,7 @@ public:
private:
virtual ::Ice::Int hashInit() const;
- virtual std::vector<ConnectorPtr> connectors(const std::vector<struct sockaddr_storage>&) const;
+ virtual std::vector<ConnectorPtr> connectors(const std::vector<IceInternal::Address>&) const;
//
// All members are const, because endpoints are immutable.
diff --git a/cpp/src/Ice/TcpTransceiver.cpp b/cpp/src/Ice/TcpTransceiver.cpp
index 6bb2794b7f1..3d59ae68bf1 100644
--- a/cpp/src/Ice/TcpTransceiver.cpp
+++ b/cpp/src/Ice/TcpTransceiver.cpp
@@ -14,7 +14,6 @@
#include <Ice/LoggerUtil.h>
#include <Ice/Stats.h>
#include <Ice/Buffer.h>
-#include <Ice/Network.h>
#include <Ice/LocalException.h>
using namespace std;
@@ -56,10 +55,10 @@ IceInternal::TcpTransceiver::initialize()
{
try
{
-#ifndef ICE_USE_IOCP
- doFinishConnect(_fd);
-#else
+#if defined(ICE_USE_IOCP)
doFinishConnectAsync(_fd, _write);
+#else
+ doFinishConnect(_fd);
#endif
_state = StateConnected;
_desc = fdToString(_fd);
@@ -70,11 +69,11 @@ IceInternal::TcpTransceiver::initialize()
{
Trace out(_logger, _traceLevels->networkCat);
out << "failed to establish tcp connection\n";
-#ifndef _WIN32
+#if !defined(_WIN32)
//
// The local address is only accessible with connected sockets on Windows.
//
- struct sockaddr_storage localAddr;
+ Address localAddr;
fdToLocalAddress(_fd, localAddr);
out << "local address: " << addrToString(localAddr) << "\n";
#else
@@ -122,8 +121,7 @@ IceInternal::TcpTransceiver::write(Buffer& buf)
{
// Its impossible for the packetSize to be more than an Int.
int packetSize = static_cast<int>(buf.b.end() - buf.i);
-
-#ifdef ICE_USE_IOCP
+# ifdef ICE_USE_IOCP
//
// Limit packet size to avoid performance problems on WIN32
//
@@ -131,8 +129,7 @@ IceInternal::TcpTransceiver::write(Buffer& buf)
{
packetSize = _maxSendPacketSize;
}
-#endif
-
+# endif
while(buf.i != buf.b.end())
{
assert(_fd != INVALID_SOCKET);
@@ -195,7 +192,6 @@ IceInternal::TcpTransceiver::write(Buffer& buf)
packetSize = static_cast<int>(buf.b.end() - buf.i);
}
}
-
return true;
}
@@ -204,7 +200,6 @@ IceInternal::TcpTransceiver::read(Buffer& buf)
{
// Its impossible for the packetSize to be more than an Int.
int packetSize = static_cast<int>(buf.b.end() - buf.i);
-
while(buf.i != buf.b.end())
{
assert(_fd != INVALID_SOCKET);
@@ -212,17 +207,6 @@ IceInternal::TcpTransceiver::read(Buffer& buf)
if(ret == 0)
{
- //
- // If the connection is lost when reading data, we shut
- // down the write end of the socket. This helps to unblock
- // threads that are stuck in send() or select() while
- // sending data. Note: I don't really understand why
- // send() or select() sometimes don't detect a connection
- // loss. Therefore this helper to make them detect it.
- //
- //assert(_fd != INVALID_SOCKET);
- //shutdownSocketReadWrite(_fd);
-
ConnectionLostException ex(__FILE__, __LINE__);
ex.error = 0;
throw ex;
@@ -248,14 +232,6 @@ IceInternal::TcpTransceiver::read(Buffer& buf)
if(connectionLost())
{
- //
- // See the commment above about shutting down the
- // socket if the connection is lost while reading
- // data.
- //
- //assert(_fd != INVALID_SOCKET);
- //shutdownSocketReadWrite(_fd);
-
ConnectionLostException ex(__FILE__, __LINE__);
ex.error = getSocketErrno();
throw ex;
@@ -283,11 +259,10 @@ IceInternal::TcpTransceiver::read(Buffer& buf)
packetSize = static_cast<int>(buf.b.end() - buf.i);
}
-
return true;
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
bool
IceInternal::TcpTransceiver::startWrite(Buffer& buf)
{
@@ -297,14 +272,15 @@ IceInternal::TcpTransceiver::startWrite(Buffer& buf)
return false;
}
- assert(!buf.b.empty() && buf.i != buf.b.end());
+ assert(!buf.b.empty());
+ assert(buf.i != buf.b.end());
int packetSize = static_cast<int>(buf.b.end() - buf.i);
if(_maxSendPacketSize > 0 && packetSize > _maxSendPacketSize)
{
packetSize = _maxSendPacketSize;
}
-
+ assert(packetSize > 0);
_write.buf.len = packetSize;
_write.buf.buf = reinterpret_cast<char*>(&*buf.i);
int err = WSASend(_fd, &_write.buf, 1, &_write.count, 0, &_write, NULL);
@@ -362,6 +338,7 @@ IceInternal::TcpTransceiver::finishWrite(Buffer& buf)
packetSize = _maxSendPacketSize;
}
Trace out(_logger, _traceLevels->networkCat);
+
out << "sent " << _write.count << " of " << packetSize << " bytes via tcp\n" << toString();
}
@@ -369,7 +346,6 @@ IceInternal::TcpTransceiver::finishWrite(Buffer& buf)
{
_stats->bytesSent(type(), _write.count);
}
-
buf.i += _write.count;
}
@@ -381,7 +357,6 @@ IceInternal::TcpTransceiver::startRead(Buffer& buf)
{
packetSize = _maxReceivePacketSize;
}
-
assert(!buf.b.empty() && buf.i != buf.b.end());
_read.buf.len = packetSize;
@@ -432,7 +407,7 @@ IceInternal::TcpTransceiver::finishRead(Buffer& buf)
ex.error = 0;
throw ex;
}
-
+
if(_traceLevels->network >= 3)
{
int packetSize = static_cast<int>(buf.b.end() - buf.i);
@@ -496,6 +471,7 @@ IceInternal::TcpTransceiver::TcpTransceiver(const InstancePtr& instance, SOCKET
#endif
{
setBlock(_fd, false);
+
setTcpBufSize(_fd, instance->initializationData().properties, _logger);
#ifdef ICE_USE_IOCP
@@ -524,9 +500,9 @@ IceInternal::TcpTransceiver::~TcpTransceiver()
}
void
-IceInternal::TcpTransceiver::connect(const struct sockaddr_storage& addr)
+IceInternal::TcpTransceiver::connect(const Address& addr)
{
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP)
try
{
if(doConnect(_fd, addr))
diff --git a/cpp/src/Ice/TcpTransceiver.h b/cpp/src/Ice/TcpTransceiver.h
index 47e482d07ec..82099820416 100644
--- a/cpp/src/Ice/TcpTransceiver.h
+++ b/cpp/src/Ice/TcpTransceiver.h
@@ -15,6 +15,7 @@
#include <Ice/LoggerF.h>
#include <Ice/StatsF.h>
#include <Ice/Transceiver.h>
+#include <Ice/Network.h>
namespace IceInternal
{
@@ -37,7 +38,7 @@ public:
#ifdef ICE_USE_IOCP
virtual AsyncInfo* getAsyncInfo(SocketOperation);
#endif
-
+
virtual SocketOperation initialize();
virtual void close();
virtual bool write(Buffer&);
@@ -58,7 +59,7 @@ private:
TcpTransceiver(const InstancePtr&, SOCKET, bool);
virtual ~TcpTransceiver();
- void connect(const struct sockaddr_storage&);
+ void connect(const Address&);
friend class TcpConnector;
friend class TcpAcceptor;
@@ -69,7 +70,8 @@ private:
State _state;
std::string _desc;
- struct sockaddr_storage _connectAddr;
+ Address _connectAddr;
+
#ifdef ICE_USE_IOCP
AsyncInfo _read;
AsyncInfo _write;
diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp
index db412ed06f8..288377987db 100644
--- a/cpp/src/Ice/ThreadPool.cpp
+++ b/cpp/src/Ice/ThreadPool.cpp
@@ -8,14 +8,15 @@
// **********************************************************************
//
-// The following is required for GetThreadIOPendingFlag
+// The following is required to bring in some definitions. Don't
+// define with Metro Style apps.
//
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-# define _WIN32_WINNT 0x0501
+#if defined(_WIN32) && !defined(_WIN32_WINNT) && WINAPI_FAMILY != 0x02
+# define _WIN32_WINNT 0x0501
#endif
-#include <IceUtil/DisableWarnings.h>
#include <Ice/ThreadPool.h>
+#include <IceUtil/DisableWarnings.h>
#include <Ice/EventHandler.h>
#include <Ice/Network.h>
#include <Ice/LocalException.h>
@@ -26,6 +27,10 @@
#include <Ice/Properties.h>
#include <Ice/TraceLevels.h>
+#if defined(ICE_OS_WINRT)
+# include <IceUtil/Unicode.h>
+#endif
+
using namespace std;
using namespace Ice;
using namespace IceInternal;
@@ -157,11 +162,11 @@ IceInternal::ThreadPoolWorkQueue::ThreadPoolWorkQueue(ThreadPool* threadPool,
_instance(instance),
_selector(selector),
_destroyed(false)
-#ifdef ICE_USE_IOCP
+#ifdef ICE_USE_IOCP
, _info(SocketOperationRead)
#endif
{
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
SOCKET fds[2];
createPipe(fds);
_fdIntrRead = fds[0];
@@ -176,7 +181,7 @@ IceInternal::ThreadPoolWorkQueue::~ThreadPoolWorkQueue()
{
assert(_destroyed);
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
try
{
closeSocket(_fdIntrRead);
@@ -217,7 +222,7 @@ IceInternal::ThreadPoolWorkQueue::queue(const ThreadPoolWorkItemPtr& item)
throw CommunicatorDestroyedException(__FILE__, __LINE__);
}
_workItems.push_back(item);
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
if(_workItems.size() == 1)
{
postMessage();
@@ -227,7 +232,7 @@ IceInternal::ThreadPoolWorkQueue::queue(const ThreadPoolWorkItemPtr& item)
#endif
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool
IceInternal::ThreadPoolWorkQueue::startAsync(SocketOperation)
{
@@ -254,18 +259,18 @@ IceInternal::ThreadPoolWorkQueue::message(ThreadPoolCurrent& current)
workItem = _workItems.front();
_workItems.pop_front();
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
if(_workItems.empty())
{
char c;
while(true)
{
ssize_t ret;
-#ifdef _WIN32
+# ifdef _WIN32
ret = ::recv(_fdIntrRead, &c, 1, 0);
-#else
+# else
ret = ::read(_fdIntrRead, &c, 1);
-#endif
+# endif
if(ret == SOCKET_ERROR)
{
if(interrupted())
@@ -285,7 +290,7 @@ IceInternal::ThreadPoolWorkQueue::message(ThreadPoolCurrent& current)
else
{
assert(_destroyed);
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
postMessage();
#endif
}
@@ -317,24 +322,40 @@ IceInternal::ThreadPoolWorkQueue::toString() const
NativeInfoPtr
IceInternal::ThreadPoolWorkQueue::getNativeInfo()
{
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
return new NativeInfo(_fdIntrRead);
-#endif
+#else
return 0;
+#endif
}
void
IceInternal::ThreadPoolWorkQueue::postMessage()
{
-#ifndef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
+ if(!PostQueuedCompletionStatus(_selector.getIOCPHandle(), 0, reinterpret_cast<ULONG_PTR>(this),
+# if defined(_MSC_VER) && (_MSC_VER < 1300) // COMPILER FIX: VC60
+ reinterpret_cast<LPOVERLAPPED>(&_info)
+# else
+ &_info
+# endif
+ ))
+ {
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = GetLastError();
+ throw ex;
+ }
+#elif defined(ICE_OS_WINRT)
+ _selector.completed(this, SocketOperationRead);
+#else
char c = 0;
while(true)
{
-#ifdef _WIN32
+# ifdef _WIN32
if(::send(_fdIntrWrite, &c, 1, 0) == SOCKET_ERROR)
-#else
+# else
if(::write(_fdIntrWrite, &c, 1) == SOCKET_ERROR)
-#endif
+# endif
{
if(interrupted())
{
@@ -347,19 +368,6 @@ IceInternal::ThreadPoolWorkQueue::postMessage()
}
break;
}
-#else
- if(!PostQueuedCompletionStatus(_selector.getIOCPHandle(), 0, reinterpret_cast<ULONG_PTR>(this),
-#if defined(_MSC_VER) && (_MSC_VER < 1300) // COMPILER FIX: VC60
- reinterpret_cast<LPOVERLAPPED>(&_info)
-#else
- &_info
-#endif
- ))
- {
- SocketException ex(__FILE__, __LINE__);
- ex.error = GetLastError();
- throw ex;
- }
#endif
}
@@ -379,21 +387,22 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
_threadIdleTime(0),
_stackSize(0),
_inUse(0),
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
_inUseIO(0),
_nextHandler(_handlers.end()),
#endif
_promote(true)
{
PropertiesPtr properties = _instance->initializationData().properties;
-
-#ifdef _WIN32
+#ifndef ICE_OS_WINRT
+# ifdef _WIN32
SYSTEM_INFO sysInfo;
GetSystemInfo(&sysInfo);
int nProcessors = sysInfo.dwNumberOfProcessors;
-#else
+# else
int nProcessors = static_cast<int>(sysconf(_SC_NPROCESSORS_ONLN));
-#endif
+# endif
+#endif
//
// We use just one thread as the default. This is the fastest
@@ -409,10 +418,12 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
}
int sizeMax = properties->getPropertyAsIntWithDefault(_prefix + ".SizeMax", size);
+#ifndef ICE_OS_WINRT
if(sizeMax == -1)
{
sizeMax = nProcessors;
}
+#endif
if(sizeMax < size)
{
Warning out(_instance->initializationData().logger);
@@ -445,7 +456,11 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
const_cast<int&>(_size) = size;
const_cast<int&>(_sizeMax) = sizeMax;
const_cast<int&>(_sizeWarn) = sizeWarn;
+#ifndef ICE_OS_WINRT
const_cast<int&>(_sizeIO) = min(sizeMax, nProcessors);
+#else
+ const_cast<int&>(_sizeIO) = sizeMax;
+#endif
const_cast<int&>(_threadIdleTime) = threadIdleTime;
#ifdef ICE_USE_IOCP
@@ -460,7 +475,7 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
stackSize = 0;
}
const_cast<size_t&>(_stackSize) = static_cast<size_t>(stackSize);
-
+
const_cast<bool&>(_hasPriority) = properties->getProperty(_prefix + ".ThreadPriority") != "";
const_cast<int&>(_priority) = properties->getPropertyAsInt(_prefix + ".ThreadPriority");
if(!_hasPriority)
@@ -468,7 +483,7 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
const_cast<bool&>(_hasPriority) = properties->getProperty("Ice.ThreadPriority") != "";
const_cast<int&>(_priority) = properties->getPropertyAsInt("Ice.ThreadPriority");
}
-
+
_workQueue = new ThreadPoolWorkQueue(this, _instance, _selector);
if(_instance->traceLevels()->threadPool >= 1)
@@ -550,7 +565,7 @@ IceInternal::ThreadPool::finish(const EventHandlerPtr& handler)
{
Lock sync(*this);
assert(!_destroyed);
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
_selector.finish(handler.get()); // This must be called before!
_workQueue->queue(new FinishedWorkItem(handler));
@@ -596,7 +611,7 @@ IceInternal::ThreadPool::joinWithAllThreads()
(*p)->getThreadControl().join();
}
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
_selector.finish(_workQueue.get());
#endif
_selector.destroy();
@@ -611,7 +626,7 @@ IceInternal::ThreadPool::prefix() const
void
IceInternal::ThreadPool::run(const IceUtil::ThreadPtr& thread)
{
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
ThreadPoolCurrent current(_instance, this);
bool select = false;
vector<pair<EventHandler*, SocketOperation> > handlers;
@@ -633,6 +648,14 @@ IceInternal::ThreadPool::run(const IceUtil::ThreadPtr& thread)
out << "exception in `" << _prefix << "':\n" << ex << "\nevent handler: "
<< current._handler->toString();
}
+#ifdef ICE_OS_WINRT
+ catch(Platform::Exception^ ex)
+ {
+ Error out(_instance->initializationData().logger);
+ out << "exception in `" << _prefix << "':\n" << IceUtil::wstringToString(ex->Message->Data())
+ << "\nevent handler: " << current._handler->toString();
+ }
+#endif
catch(...)
{
Error out(_instance->initializationData().logger);
@@ -767,13 +790,14 @@ IceInternal::ThreadPool::run(const IceUtil::ThreadPtr& thread)
}
else if(_inUse < static_cast<int>(_threads.size() - 1)) // If not the last idle thread, we can exit.
{
+#ifndef ICE_OS_WINRT
BOOL hasIO = false;
GetThreadIOPendingFlag(GetCurrentThread(), &hasIO);
if(hasIO)
{
continue;
}
-
+#endif
if(_instance->traceLevels()->threadPool >= 1)
{
Trace out(_instance->initializationData().logger, _instance->traceLevels()->threadPoolCat);
@@ -782,7 +806,7 @@ IceInternal::ThreadPool::run(const IceUtil::ThreadPtr& thread)
_threads.erase(thread);
_workQueue->queue(new JoinThreadWorkItem(thread));
return;
- }
+ }
else if(_inUse > 0)
{
//
@@ -831,6 +855,14 @@ IceInternal::ThreadPool::run(const IceUtil::ThreadPtr& thread)
Error out(_instance->initializationData().logger);
out << "exception in `" << _prefix << "':\n" << ex << "\nevent handler: " << current._handler->toString();
}
+#ifdef ICE_OS_WINRT
+ catch(Platform::Exception^ ex)
+ {
+ Error out(_instance->initializationData().logger);
+ out << "exception in `" << _prefix << "':\n" << IceUtil::wstringToString(ex->Message->Data())
+ << "\nevent handler: " << current._handler->toString();
+ }
+#endif
catch(...)
{
Error out(_instance->initializationData().logger);
@@ -848,7 +880,7 @@ IceInternal::ThreadPool::ioCompleted(ThreadPoolCurrent& current)
if(_sizeMax > 1)
{
IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
--_inUseIO;
if(_serialize && !_destroyed)
@@ -915,7 +947,7 @@ IceInternal::ThreadPool::ioCompleted(ThreadPoolCurrent& current)
return _serialize;
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool
IceInternal::ThreadPool::startMessage(ThreadPoolCurrent& current)
{
@@ -1133,7 +1165,7 @@ ThreadPoolCurrent::ThreadPoolCurrent(const InstancePtr& instance, const ThreadPo
stream(instance.get()),
_threadPool(threadPool.get()),
_ioCompleted(false)
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
, _leader(false)
#endif
{
diff --git a/cpp/src/Ice/ThreadPool.h b/cpp/src/Ice/ThreadPool.h
index f9e012980d6..3802d3a75e0 100644
--- a/cpp/src/Ice/ThreadPool.h
+++ b/cpp/src/Ice/ThreadPool.h
@@ -68,7 +68,7 @@ private:
bool ioCompleted(ThreadPoolCurrent&);
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool startMessage(ThreadPoolCurrent&);
void finishMessage(ThreadPoolCurrent&);
#else
@@ -110,7 +110,7 @@ private:
std::set<IceUtil::ThreadPtr> _threads; // All threads, running or not.
int _inUse; // Number of threads that are currently in use.
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
int _inUseIO; // Number of threads that are currently performing IO.
std::vector<std::pair<EventHandler*, SocketOperation> > _handlers;
std::vector<std::pair<EventHandler*, SocketOperation> >::const_iterator _nextHandler;
@@ -133,7 +133,7 @@ public:
return _threadPool->ioCompleted(const_cast<ThreadPoolCurrent&>(*this));
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool startMessage()
{
return _threadPool->startMessage(const_cast<ThreadPoolCurrent&>(*this));
@@ -150,7 +150,7 @@ private:
ThreadPool* _threadPool;
EventHandlerPtr _handler;
bool _ioCompleted;
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
bool _leader;
#endif
friend class ThreadPool;
@@ -186,7 +186,7 @@ public:
void destroy();
void queue(const ThreadPoolWorkItemPtr&);
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool startAsync(SocketOperation);
bool finishAsync(SocketOperation);
#endif
@@ -205,7 +205,7 @@ private:
bool _destroyed;
#ifdef ICE_USE_IOCP
AsyncInfo _info;
-#else
+#elif !defined(ICE_OS_WINRT)
SOCKET _fdIntrRead;
SOCKET _fdIntrWrite;
#endif
@@ -222,7 +222,7 @@ private:
// the IOCP implementation and ensures that finishMessage isn't called multiple
// times.
//
-#ifndef ICE_USE_IOCP
+#if !defined(ICE_USE_IOCP) && !defined(ICE_OS_WINRT)
template<class T> class ThreadPoolMessage
{
public:
diff --git a/cpp/src/Ice/Transceiver.h b/cpp/src/Ice/Transceiver.h
index 655a9c42a32..3cf9b9d867a 100644
--- a/cpp/src/Ice/Transceiver.h
+++ b/cpp/src/Ice/Transceiver.h
@@ -29,7 +29,7 @@ public:
virtual void close() = 0;
virtual bool write(Buffer&) = 0;
virtual bool read(Buffer&) = 0;
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
virtual bool startWrite(Buffer&) = 0;
virtual void finishWrite(Buffer&) = 0;
virtual void startRead(Buffer&) = 0;
diff --git a/cpp/src/Ice/UdpConnector.cpp b/cpp/src/Ice/UdpConnector.cpp
index d726af5c285..2bdf87281b2 100644
--- a/cpp/src/Ice/UdpConnector.cpp
+++ b/cpp/src/Ice/UdpConnector.cpp
@@ -8,9 +8,9 @@
// **********************************************************************
#include <Ice/UdpConnector.h>
+
#include <Ice/UdpTransceiver.h>
#include <Ice/UdpEndpointI.h>
-#include <Ice/Network.h>
#include <Ice/LocalException.h>
using namespace std;
@@ -43,12 +43,10 @@ IceInternal::UdpConnector::operator==(const Connector& r) const
{
return false;
}
-
if(compareAddress(_addr, p->_addr) != 0)
{
return false;
}
-
if(_connectionId != p->_connectionId)
{
return false;
@@ -164,15 +162,13 @@ IceInternal::UdpConnector::operator<(const Connector& r) const
{
return false;
}
-
return compareAddress(_addr, p->_addr) == -1;
}
-
-IceInternal::UdpConnector::UdpConnector(const InstancePtr& instance, const struct sockaddr_storage& addr,
+IceInternal::UdpConnector::UdpConnector(const InstancePtr& instance, const Address& addr,
const string& mcastInterface, int mcastTtl, Ice::Byte protocolMajor,
- Ice::Byte protocolMinor, Ice::Byte encodingMajor, Ice::Byte encodingMinor,
- const std::string& connectionId) :
+ Ice::Byte protocolMinor, Ice::Byte encodingMajor,
+ Ice::Byte encodingMinor, const std::string& connectionId) :
_instance(instance),
_addr(addr),
_mcastInterface(mcastInterface),
diff --git a/cpp/src/Ice/UdpConnector.h b/cpp/src/Ice/UdpConnector.h
index cb134616ca0..0055a75638c 100644
--- a/cpp/src/Ice/UdpConnector.h
+++ b/cpp/src/Ice/UdpConnector.h
@@ -14,12 +14,7 @@
#include <Ice/InstanceF.h>
#include <Ice/Connector.h>
#include <Ice/Protocol.h>
-
-#ifdef _WIN32
-# include <winsock2.h>
-#else
-# include <sys/socket.h> // For struct sockaddr_storage
-#endif
+#include <Ice/Network.h>
namespace IceInternal
{
@@ -39,13 +34,13 @@ public:
private:
- UdpConnector(const InstancePtr&, const struct sockaddr_storage&, const std::string&, int, Ice::Byte, Ice::Byte,
- Ice::Byte, Ice::Byte, const std::string&);
+ UdpConnector(const InstancePtr&, const Address&, const std::string&, int, Ice::Byte, Ice::Byte, Ice::Byte,
+ Ice::Byte, const std::string&);
virtual ~UdpConnector();
friend class UdpEndpointI;
const InstancePtr _instance;
- struct sockaddr_storage _addr;
+ const Address _addr;
const std::string _mcastInterface;
const int _mcastTtl;
const Ice::Byte _protocolMajor;
@@ -56,5 +51,4 @@ private:
};
}
-
#endif
diff --git a/cpp/src/Ice/UdpEndpointI.cpp b/cpp/src/Ice/UdpEndpointI.cpp
index c218f61caf9..d99e1c2b435 100644
--- a/cpp/src/Ice/UdpEndpointI.cpp
+++ b/cpp/src/Ice/UdpEndpointI.cpp
@@ -821,7 +821,7 @@ IceInternal::UdpEndpointI::hashInit() const
}
vector<ConnectorPtr>
-IceInternal::UdpEndpointI::connectors(const vector<struct sockaddr_storage>& addresses) const
+IceInternal::UdpEndpointI::connectors(const vector<Address>& addresses) const
{
vector<ConnectorPtr> connectors;
for(unsigned int i = 0; i < addresses.size(); ++i)
@@ -832,6 +832,7 @@ IceInternal::UdpEndpointI::connectors(const vector<struct sockaddr_storage>& add
return connectors;
}
+
IceInternal::UdpEndpointFactory::UdpEndpointFactory(const InstancePtr& instance)
: _instance(instance)
{
diff --git a/cpp/src/Ice/UdpEndpointI.h b/cpp/src/Ice/UdpEndpointI.h
index 2a6ad83c0f9..77cdc2a4827 100644
--- a/cpp/src/Ice/UdpEndpointI.h
+++ b/cpp/src/Ice/UdpEndpointI.h
@@ -10,8 +10,10 @@
#ifndef ICE_UDP_ENDPOINT_I_H
#define ICE_UDP_ENDPOINT_I_H
+#include <IceUtil/Config.h>
#include <Ice/EndpointI.h>
#include <Ice/EndpointFactory.h>
+#include <Ice/Network.h>
namespace IceInternal
{
@@ -49,7 +51,7 @@ public:
private:
virtual ::Ice::Int hashInit() const;
- virtual std::vector<ConnectorPtr> connectors(const std::vector<struct sockaddr_storage>&) const;
+ virtual std::vector<ConnectorPtr> connectors(const std::vector<IceInternal::Address>&) const;
//
// All members are const, because endpoints are immutable.
diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp
index 198a2f7c4f1..855527b144d 100644
--- a/cpp/src/Ice/UdpTransceiver.cpp
+++ b/cpp/src/Ice/UdpTransceiver.cpp
@@ -7,14 +7,6 @@
//
// **********************************************************************
-//
-// The following is required for the Vista PSDK to bring in
-// the definitions of the IN6_IS_ADDR_* macros.
-//
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-# define _WIN32_WINNT 0x0501
-#endif
-
#include <Ice/UdpTransceiver.h>
#include <Ice/Connection.h>
#include <Ice/Instance.h>
@@ -22,14 +14,24 @@
#include <Ice/LoggerUtil.h>
#include <Ice/Stats.h>
#include <Ice/Buffer.h>
-#include <Ice/Network.h>
#include <Ice/LocalException.h>
#include <Ice/Properties.h>
#include <IceUtil/StringUtil.h>
+#ifdef ICE_OS_WINRT
+# include <ppltasks.h> // For Concurrency::task
+#endif
+
using namespace std;
using namespace Ice;
using namespace IceInternal;
+#ifdef ICE_OS_WINRT
+using namespace Platform;
+using namespace Windows::Foundation;
+using namespace Windows::Storage::Streams;
+using namespace Windows::Networking;
+using namespace Windows::Networking::Sockets;
+#endif
NativeInfoPtr
IceInternal::UdpTransceiver::getNativeInfo()
@@ -53,6 +55,26 @@ IceInternal::UdpTransceiver::getAsyncInfo(SocketOperation status)
return 0;
}
}
+#elif defined(ICE_OS_WINRT)
+void
+IceInternal::UdpTransceiver::setCompletedHandler(SocketOperationCompletedHandler^ handler)
+{
+ _completedHandler = handler;
+ _writeOperationCompletedHandler = ref new AsyncOperationCompletedHandler<unsigned int>(
+ [=] (IAsyncOperation<unsigned int>^ operation, Windows::Foundation::AsyncStatus status)
+ {
+ if(status != Windows::Foundation::AsyncStatus::Completed)
+ {
+ _write.count = SOCKET_ERROR;
+ _write.error = operation->ErrorCode.Value;
+ }
+ else
+ {
+ _write.count = static_cast<int>(operation->GetResults());
+ }
+ _completedHandler(SocketOperationWrite);
+ });
+}
#endif
SocketOperation
@@ -67,7 +89,16 @@ IceInternal::UdpTransceiver::initialize()
{
try
{
+#if defined(ICE_USE_IOCP)
+ doFinishConnectAsync(_fd, _write);
+#elif defined(ICE_OS_WINRT)
+ if(_write.count == SOCKET_ERROR)
+ {
+ checkConnectErrorCode(__FILE__, __LINE__, _write.error, _addr.host);
+ }
+#else
doFinishConnect(_fd);
+#endif
_state = StateConnected;
}
catch(const Ice::LocalException& ex)
@@ -102,6 +133,17 @@ IceInternal::UdpTransceiver::close()
out << "closing udp connection\n" << toString();
}
+#ifdef ICE_OS_WINRT
+ IceUtil::Mutex::Lock lock(_mutex);
+ if(_readPending)
+ {
+ assert(_received.empty());
+ _completedHandler(SocketOperationRead);
+ _readPending = false;
+ }
+ _received.clear();
+#endif
+
assert(_fd != INVALID_SOCKET);
closeSocket(_fd);
_fd = INVALID_SOCKET;
@@ -110,6 +152,9 @@ IceInternal::UdpTransceiver::close()
bool
IceInternal::UdpTransceiver::write(Buffer& buf)
{
+#ifdef ICE_OS_WINRT
+ return false;
+#else
assert(buf.i == buf.b.begin());
assert(_fd != INVALID_SOCKET && _state >= StateConnected);
@@ -121,11 +166,11 @@ repeat:
ssize_t ret;
if(_state == StateConnected)
{
-#ifdef _WIN32
+# ifdef _WIN32
ret = ::send(_fd, reinterpret_cast<const char*>(&buf.b[0]), static_cast<int>(buf.b.size()), 0);
-#else
+# else
ret = ::send(_fd, reinterpret_cast<const char*>(&buf.b[0]), buf.b.size(), 0);
-#endif
+# endif
}
else
{
@@ -146,13 +191,13 @@ repeat:
throw ex;
}
-#ifdef _WIN32
+# ifdef _WIN32
ret = ::sendto(_fd, reinterpret_cast<const char*>(&buf.b[0]), static_cast<int>(buf.b.size()), 0,
reinterpret_cast<struct sockaddr*>(&_peerAddr), len);
-#else
+# else
ret = ::sendto(_fd, reinterpret_cast<const char*>(&buf.b[0]), buf.b.size(), 0,
reinterpret_cast<struct sockaddr*>(&_peerAddr), len);
-#endif
+# endif
}
if(ret == SOCKET_ERROR)
@@ -186,11 +231,15 @@ repeat:
assert(ret == static_cast<ssize_t>(buf.b.size()));
buf.i = buf.b.end();
return true;
+#endif
}
bool
IceInternal::UdpTransceiver::read(Buffer& buf)
{
+#ifdef ICE_OS_WINRT
+ return false;
+#else
assert(buf.i == buf.b.begin());
assert(_fd != INVALID_SOCKET);
@@ -265,12 +314,12 @@ repeat:
//
assert(_incoming); // Client connections should always be connected at this point.
-#ifndef NDEBUG
+# ifndef NDEBUG
bool connected = doConnect(_fd, _peerAddr);
assert(connected);
-#else
+# else
doConnect(_fd, _peerAddr);
-#endif
+# endif
_state = StateConnected;
if(_traceLevels->network >= 1)
@@ -294,9 +343,10 @@ repeat:
buf.b.resize(ret);
buf.i = buf.b.end();
return true;
+#endif
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool
IceInternal::UdpTransceiver::startWrite(Buffer& buf)
{
@@ -304,9 +354,138 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
// The caller is supposed to check the send size before by calling checkSendSize
assert(min(_maxPacketSize, _sndSize - _udpOverhead) >= static_cast<int>(buf.b.size()));
-
assert(_fd != INVALID_SOCKET);
+#ifdef ICE_OS_WINRT
+ if(_state < StateConnected)
+ {
+ try
+ {
+ bool multicast = isMulticast(_addr) || isAddressValid(_mcastAddr);
+ if(!multicast)
+ {
+ auto operation = safe_cast<DatagramSocket^>(_fd)->ConnectAsync(_addr.host, _addr.port);
+ if(!checkIfErrorOrCompleted(SocketOperationConnect, operation))
+ {
+ operation->Completed = ref new AsyncActionCompletedHandler(
+ [=] (IAsyncAction^ info, Windows::Foundation::AsyncStatus status)
+ {
+ if(status != Windows::Foundation::AsyncStatus::Completed)
+ {
+ _write.count = SOCKET_ERROR;
+ _write.error = info->ErrorCode.Value;
+ }
+ else
+ {
+ _write.count = 0;
+ _writer = ref new DataWriter(safe_cast<DatagramSocket^>(_fd)->OutputStream);
+ }
+ _completedHandler(SocketOperationConnect);
+ });
+ }
+ else
+ {
+ _write.count = 0;
+ _writer = ref new DataWriter(safe_cast<DatagramSocket^>(_fd)->OutputStream);
+ }
+ }
+ else
+ {
+ auto operation = safe_cast<DatagramSocket^>(_fd)->GetOutputStreamAsync(_addr.host, _addr.port);
+ if(!checkIfErrorOrCompleted(SocketOperationConnect, operation))
+ {
+ operation->Completed = ref new AsyncOperationCompletedHandler<IOutputStream^>(
+ [=] (IAsyncOperation<IOutputStream^>^ info, Windows::Foundation::AsyncStatus status)
+ {
+ if(status != Windows::Foundation::AsyncStatus::Completed)
+ {
+ _write.count = SOCKET_ERROR;
+ _write.error = info->ErrorCode.Value;
+ }
+ else
+ {
+ _write.count = 0;
+ _writer = ref new DataWriter(info->GetResults());
+ }
+ if(_mcastAddr.host != nullptr)
+ {
+ setMcastGroup(_fd, _mcastAddr, "");
+ }
+ _completedHandler(SocketOperationConnect);
+ });
+ }
+ else
+ {
+ _write.count = 0;
+ _writer = ref new DataWriter(operation->GetResults());
+ setMcastGroup(_fd, _mcastAddr, "");
+ }
+ }
+ }
+ catch(Platform::Exception^ ex)
+ {
+ checkConnectErrorCode(__FILE__, __LINE__, ex->HResult, _addr.host);
+ }
+ return false;
+ }
+ else if(_state == StateNotConnected)
+ {
+ try
+ {
+ DatagramSocket^ fd = safe_cast<DatagramSocket^>(_fd);
+ concurrency::create_task(fd->GetOutputStreamAsync(_peerAddr.host, _peerAddr.port)).then(
+ [=,&buf](concurrency::task<IOutputStream^> task)
+ {
+ try
+ {
+ DataWriter^ writer = ref new DataWriter(task.get());
+ writer->WriteBytes(ref new Array<unsigned char>(&*buf.i, static_cast<int>(buf.b.size())));
+ DataWriterStoreOperation^ operation = writer->StoreAsync();
+ if(checkIfErrorOrCompleted(SocketOperationWrite, operation))
+ {
+ _write.count = operation->GetResults();
+ }
+ else
+ {
+ operation->Completed = _writeOperationCompletedHandler;
+ }
+ }
+ catch(Platform::Exception^ pex)
+ {
+ _write.count = SOCKET_ERROR;
+ _write.error = pex->HResult;
+ _completedHandler(SocketOperationWrite);
+ }
+ });
+ }
+ catch(Platform::Exception^ ex)
+ {
+ checkErrorCode(__FILE__, __LINE__, ex->HResult);
+ }
+ return true;
+ }
+ else
+ {
+ try
+ {
+ _writer->WriteBytes(ref new Array<unsigned char>(&*buf.i, static_cast<int>(buf.b.size())));
+ DataWriterStoreOperation^ operation = _writer->StoreAsync();
+ if(checkIfErrorOrCompleted(SocketOperationWrite, operation))
+ {
+ _write.count = operation->GetResults();
+ }
+ else
+ {
+ operation->Completed = _writeOperationCompletedHandler;
+ }
+ }
+ catch(Platform::Exception^ ex)
+ {
+ checkErrorCode(__FILE__, __LINE__, ex->HResult);
+ }
+ return true;
+ }
+#else
_write.buf.len = static_cast<int>(buf.b.size());
_write.buf.buf = reinterpret_cast<char*>(&*buf.i);
int err;
@@ -354,14 +533,21 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
}
}
}
+#endif
return true;
}
void
IceInternal::UdpTransceiver::finishWrite(Buffer& buf)
{
+ if(_state < StateConnected)
+ {
+ return;
+ }
+
if(_write.count == SOCKET_ERROR)
{
+#ifndef ICE_OS_WINRT
WSASetLastError(_write.error);
if(connectionLost())
{
@@ -375,6 +561,9 @@ IceInternal::UdpTransceiver::finishWrite(Buffer& buf)
ex.error = getSocketErrno();
throw ex;
}
+#else
+ checkErrorCode(__FILE__, __LINE__, _write.error);
+#endif
}
if(_traceLevels->network >= 3)
@@ -388,7 +577,7 @@ IceInternal::UdpTransceiver::finishWrite(Buffer& buf)
_stats->bytesSent(type(), static_cast<Int>(_write.count));
}
- assert(_write.count == static_cast<ssize_t>(buf.b.size()));
+ assert(_write.count == buf.b.size());
buf.i = buf.b.end();
}
@@ -398,9 +587,8 @@ IceInternal::UdpTransceiver::startRead(Buffer& buf)
const int packetSize = min(_maxPacketSize, _rcvSize - _udpOverhead);
buf.b.resize(packetSize);
buf.i = buf.b.begin();
-
assert(!buf.b.empty() && buf.i != buf.b.end());
-
+#ifndef ICE_OS_WINRT
_read.buf.len = packetSize;
_read.buf.buf = reinterpret_cast<char*>(&*buf.i);
int err;
@@ -439,11 +627,54 @@ IceInternal::UdpTransceiver::startRead(Buffer& buf)
}
}
}
+#else
+ IceUtil::Mutex::Lock lock(_mutex);
+ assert(!_readPending);
+ if(!_received.empty())
+ {
+ _completedHandler(SocketOperationRead);
+ }
+ else
+ {
+ _readPending = true;
+ }
+#endif
}
void
IceInternal::UdpTransceiver::finishRead(Buffer& buf)
{
+#ifdef ICE_OS_WINRT
+ IceUtil::Mutex::Lock lock(_mutex);
+ assert(!_readPending && (!_received.empty() || _fd == INVALID_SOCKET));
+ if(_fd == INVALID_SOCKET)
+ {
+ return;
+ }
+
+ DatagramSocketMessageReceivedEventArgs^ args = _received.front();
+ _received.pop_front();
+
+ int ret;
+ try
+ {
+ DataReader^ reader = args->GetDataReader();
+ ret = min(static_cast<int>(reader->UnconsumedBufferLength), static_cast<int>(buf.b.size())); // Truncate received data if too large.
+
+ Array<unsigned char>^ data = ref new Array<unsigned char>(ret);
+ reader->ReadBytes(data);
+ memcpy(&*buf.i, data->Data, ret);
+ if(_state == StateNotConnected)
+ {
+ _peerAddr.host = args->RemoteAddress;
+ _peerAddr.port = args->RemotePort;
+ }
+ }
+ catch(Platform::Exception^ ex)
+ {
+ checkErrorCode(__FILE__, __LINE__, ex->HResult);
+ }
+#else
if(_read.count == SOCKET_ERROR)
{
WSASetLastError(_read.error);
@@ -477,18 +708,21 @@ IceInternal::UdpTransceiver::finishRead(Buffer& buf)
_peerAddr = _readAddr;
}
+ int ret = _read.count;
+#endif
+
if(_traceLevels->network >= 3)
{
Trace out(_logger, _traceLevels->networkCat);
- out << "received " << _read.count << " bytes via udp\n" << toString();
+ out << "received " << ret << " bytes via udp\n" << toString();
}
if(_stats)
{
- _stats->bytesReceived(type(), static_cast<Int>(_read.count));
+ _stats->bytesReceived(type(), static_cast<Int>(ret));
}
- buf.b.resize(_read.count);
+ buf.b.resize(ret);
buf.i = buf.b.end();
}
#endif
@@ -510,20 +744,27 @@ IceInternal::UdpTransceiver::toString() const
ostringstream s;
if(_state == StateNotConnected)
{
- struct sockaddr_storage localAddr;
+ Address localAddr;
fdToLocalAddress(_fd, localAddr);
s << "local address = " << addrToString(localAddr);
- if(_peerAddr.ss_family != AF_UNSPEC)
+ if(isAddressValid(_peerAddr))
{
s << "\nremote address = " << addrToString(_peerAddr);
}
}
else
{
+#ifndef ICE_OS_WINRT
s << fdToString(_fd);
+#else
+ Address localAddr;
+ fdToLocalAddress(_fd, localAddr);
+ s << "local address = " << addrToString(localAddr);
+ s << "\nremote address = " << addrToString(_addr);
+#endif
}
- if(_mcastAddr.ss_family != AF_UNSPEC)
+ if(isAddressValid(_mcastAddr))
{
s << "\nmulticast address = " + addrToString(_mcastAddr);
}
@@ -533,14 +774,23 @@ IceInternal::UdpTransceiver::toString() const
Ice::ConnectionInfoPtr
IceInternal::UdpTransceiver::getInfo() const
{
- assert(_fd != INVALID_SOCKET);
Ice::UDPConnectionInfoPtr info = new Ice::UDPConnectionInfo();
+#if defined(ICE_OS_WINRT)
+ if(isMulticast(_addr) || isAddressValid(_mcastAddr))
+ {
+ info->remotePort = 0;
+ info->localPort = 0;
+ info->mcastPort = 0;
+ return info;
+ }
+#endif
+ assert(_fd != INVALID_SOCKET);
if(_state == StateNotConnected)
{
- struct sockaddr_storage localAddr;
+ Address localAddr;
fdToLocalAddress(_fd, localAddr);
addrToAddressAndPort(localAddr, info->localAddress, info->localPort);
- if(_peerAddr.ss_family != AF_UNSPEC)
+ if(isAddressValid(_peerAddr))
{
addrToAddressAndPort(_peerAddr, info->remoteAddress, info->remotePort);
}
@@ -554,7 +804,7 @@ IceInternal::UdpTransceiver::getInfo() const
fdToAddressAndPort(_fd, info->localAddress, info->localPort, info->remoteAddress, info->remotePort);
}
- if(_mcastAddr.ss_family != AF_UNSPEC)
+ if(isAddressValid(_mcastAddr))
{
addrToAddressAndPort(_mcastAddr, info->mcastAddress, info->mcastPort);
}
@@ -590,26 +840,32 @@ IceInternal::UdpTransceiver::effectivePort() const
return getPort(_addr);
}
-IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const struct sockaddr_storage& addr,
- const string& mcastInterface, int mcastTtl) :
+
+IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance,
+ const Address& addr,
+ const string& mcastInterface,
+ int mcastTtl) :
_traceLevels(instance->traceLevels()),
_logger(instance->initializationData().logger),
_stats(instance->initializationData().stats),
_incoming(false),
_addr(addr),
_state(StateNeedConnect)
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
, _read(SocketOperationRead),
_write(SocketOperationWrite)
+#elif defined(ICE_OS_WINRT)
+ , _readPending(false)
#endif
{
- _mcastAddr.ss_family = AF_UNSPEC; // AF_UNSPEC means not multicast.
- _peerAddr.ss_family = AF_UNSPEC; // Not initialized yet.
-
- _fd = createSocket(true, _addr.ss_family);
+ _fd = createSocket(true, _addr);
setBufSize(instance);
setBlock(_fd, false);
-
+
+#ifndef ICE_OS_WINRT
+ _mcastAddr.ss_family = AF_UNSPEC;
+ _peerAddr.ss_family = AF_UNSPEC; // Not initialized yet.
+
//
// In general, connecting a datagram socket should be non-blocking as this just setups
// the default destination address for the socket. However, on some OS, connect sometime
@@ -621,28 +877,36 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s
{
_state = StateConnected;
}
-
-#ifdef ICE_USE_IOCP
- //
- // On Windows when using IOCP, we must make sure that the socket is connected without
- // blocking as there's no way to do a non-blocking datagram socket conection (ConnectEx
- // only supports connection oriented sockets). According to Microsoft documentation of
- // the connect() call, this should always be the case.
- //
- assert(_state == StateConnected);
+#else
+ DatagramSocket^ socket = safe_cast<DatagramSocket^>(_fd);
+ socket->MessageReceived += ref new TypedEventHandler<DatagramSocket^, DatagramSocketMessageReceivedEventArgs^>(
+ [=](DatagramSocket^ fd, DatagramSocketMessageReceivedEventArgs^ args)
+ {
+ this->appendMessage(args);
+ });
#endif
-
+
if(isMulticast(_addr))
{
if(mcastInterface.length() > 0)
{
- setMcastInterface(_fd, mcastInterface, _addr.ss_family == AF_INET);
+ setMcastInterface(_fd, mcastInterface, _addr);
}
if(mcastTtl != -1)
{
- setMcastTtl(_fd, mcastTtl, _addr.ss_family == AF_INET);
+ setMcastTtl(_fd, mcastTtl, _addr);
}
}
+
+#ifdef ICE_USE_IOCP
+ //
+ // On Windows when using IOCP, we must make sure that the socket is connected without
+ // blocking as there's no way to do a non-blocking datagram socket conection (ConnectEx
+ // only supports connection oriented sockets). According to Microsoft documentation of
+ // the connect() call, this should always be the case.
+ //
+ assert(_state == StateConnected);
+#endif
}
IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const string& host, int port,
@@ -653,25 +917,37 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s
_incoming(true),
_addr(getAddressForServer(host, port, instance->protocolSupport())),
_state(connect ? StateNeedConnect : StateNotConnected)
-#ifdef ICE_USE_IOCP
+#ifdef ICE_OS_WINRT
+ , _readPending(false)
+#elif defined(ICE_USE_IOCP)
, _read(SocketOperationRead),
_write(SocketOperationWrite)
#endif
{
+ _fd = createSocket(true, _addr);
+ setBufSize(instance);
+ setBlock(_fd, false);
+
+#ifndef ICE_OS_WINRT
memset(&_mcastAddr, 0, sizeof(_mcastAddr));
memset(&_peerAddr, 0, sizeof(_peerAddr));
+ _peerAddr.ss_family = AF_UNSPEC;
+ _mcastAddr.ss_family = AF_UNSPEC;
+#else
+ DatagramSocket^ socket = safe_cast<DatagramSocket^>(_fd);
+ socket->MessageReceived += ref new TypedEventHandler<DatagramSocket^, DatagramSocketMessageReceivedEventArgs^>(
+ [=](DatagramSocket^ fd, DatagramSocketMessageReceivedEventArgs^ args)
+ {
+ this->appendMessage(args);
+ });
+#endif
- _fd = createSocket(true, _addr.ss_family);
- setBufSize(instance);
- setBlock(_fd, false);
if(_traceLevels->network >= 2)
{
Trace out(_logger, _traceLevels->networkCat);
out << "attempting to bind to udp socket " << addrToString(_addr);
}
- _peerAddr.ss_family = AF_UNSPEC; // Not assigned yet.
-
if(isMulticast(_addr))
{
setReuseAddress(_fd, true);
@@ -685,11 +961,10 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s
// address won't be the multicast address and the client will
// therefore reject the datagram.
//
- const_cast<struct sockaddr_storage&>(_addr) =
- getAddressForServer("", port, _mcastAddr.ss_family == AF_INET ? EnableIPv4 : EnableIPv6);
+ const_cast<Address&>(_addr) = getAddressForServer("", port, getProtocolSupport(_addr));
#endif
- const_cast<struct sockaddr_storage&>(_addr) = doBind(_fd, _addr);
+ const_cast<Address&>(_addr) = doBind(_fd, _addr);
if(getPort(_mcastAddr) == 0)
{
setPort(_mcastAddr, getPort(_addr));
@@ -713,16 +988,14 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s
//
setReuseAddress(_fd, true);
#endif
- const_cast<struct sockaddr_storage&>(_addr) = doBind(_fd, _addr);
-
- _mcastAddr.ss_family = AF_UNSPEC; // AF_UNSPEC means not multicast.
+ const_cast<Address&>(_addr) = doBind(_fd, _addr);
}
if(_traceLevels->network >= 1)
{
Trace out(_logger, _traceLevels->networkCat);
out << "starting to receive udp packets\n" << toString();
-
+
vector<string> interfaces =
getHostsForEndpointExpand(inetAddrToString(_addr), instance->protocolSupport(), true);
if(!interfaces.empty())
@@ -741,7 +1014,6 @@ IceInternal::UdpTransceiver::~UdpTransceiver()
//
// Set UDP receive and send buffer sizes.
//
-
void
IceInternal::UdpTransceiver::setBufSize(const InstancePtr& instance)
{
@@ -759,7 +1031,6 @@ IceInternal::UdpTransceiver::setBufSize(const InstancePtr& instance)
prop = "Ice.UDP.RcvSize";
addr = &_rcvSize;
dfltSize = getRecvBufferSize(_fd);
- _rcvSize = dfltSize;
}
else
{
@@ -767,9 +1038,14 @@ IceInternal::UdpTransceiver::setBufSize(const InstancePtr& instance)
prop = "Ice.UDP.SndSize";
addr = &_sndSize;
dfltSize = getSendBufferSize(_fd);
- _sndSize = dfltSize;
}
+ if(dfltSize <= 0)
+ {
+ dfltSize = _maxPacketSize;
+ }
+ *addr = dfltSize;
+
//
// Get property for buffer size and check for sanity.
//
@@ -802,7 +1078,11 @@ IceInternal::UdpTransceiver::setBufSize(const InstancePtr& instance)
//
// Warn if the size that was set is less than the requested size.
//
- if(*addr < sizeRequested)
+ if(*addr == 0) // set buffer size not supported.
+ {
+ *addr = sizeRequested;
+ }
+ else if(*addr < sizeRequested)
{
Warning out(_logger);
out << "UDP " << direction << " buffer size: requested size of "
@@ -812,6 +1092,68 @@ IceInternal::UdpTransceiver::setBufSize(const InstancePtr& instance)
}
}
+#ifdef ICE_OS_WINRT
+bool
+IceInternal::UdpTransceiver::checkIfErrorOrCompleted(SocketOperation op, IAsyncInfo^ info)
+{
+ //
+ // NOTE: It's important to only check for info->Status once as it
+ // might change during the checks below (the Status can be changed
+ // by the Windows thread pool concurrently).
+ //
+ // We consider that a canceled async status is the same as an
+ // error. A canceled async status can occur if there's a timeout
+ // and the socket is closed.
+ //
+ Windows::Foundation::AsyncStatus status = info->Status;
+ if(status == Windows::Foundation::AsyncStatus::Completed)
+ {
+ _completedHandler(op);
+ return true;
+ }
+ else if(status == Windows::Foundation::AsyncStatus::Started)
+ {
+ return false;
+ }
+ else
+ {
+ if(_state < StateConnected)
+ {
+ checkConnectErrorCode(__FILE__, __LINE__, info->ErrorCode.Value, _addr.host);
+ }
+ else
+ {
+ checkErrorCode(__FILE__, __LINE__, info->ErrorCode.Value);
+ }
+ return true; // Prevent compiler warning.
+ }
+}
+
+void
+IceInternal::UdpTransceiver::appendMessage(DatagramSocketMessageReceivedEventArgs^ args)
+{
+ IceUtil::Mutex::Lock lock(_mutex);
+ if(_fd == INVALID_SOCKET) // Transceiver was closed.
+ {
+ return;
+ }
+ _received.push_back(args);
+
+ //
+ // If the transceiver is waiting to read a message, notify the
+ // selector that the transceiver is ready for read. This will in
+ // turn cause finishRead() to be called. If the transceiver is
+ // ready for read, we just queue the message. It will be picked
+ // up by startRead() when it is invoked.
+ //
+ if(_readPending)
+ {
+ _completedHandler(SocketOperationRead);
+ _readPending = false;
+ }
+}
+#endif
+
//
// The maximum IP datagram size is 65535. Subtract 20 bytes for the IP header and 8 bytes for the UDP header
// to get the maximum payload.
diff --git a/cpp/src/Ice/UdpTransceiver.h b/cpp/src/Ice/UdpTransceiver.h
index df764db8b60..0a1fc7155ba 100644
--- a/cpp/src/Ice/UdpTransceiver.h
+++ b/cpp/src/Ice/UdpTransceiver.h
@@ -10,20 +10,17 @@
#ifndef ICE_UDP_TRANSCEIVER_H
#define ICE_UDP_TRANSCEIVER_H
-#ifdef __hpux
-# define _XOPEN_SOURCE_EXTENDED
-#endif
-
#include <Ice/InstanceF.h>
#include <Ice/TraceLevelsF.h>
#include <Ice/LoggerF.h>
#include <Ice/StatsF.h>
#include <Ice/Transceiver.h>
#include <Ice/Protocol.h>
+#include <Ice/Network.h>
#include <IceUtil/Mutex.h>
-#ifndef _WIN32
-# include <sys/socket.h> // For struct sockaddr_storage
+#ifdef ICE_OS_WINRT
+# include <deque>
#endif
namespace IceInternal
@@ -31,8 +28,6 @@ namespace IceInternal
class UdpEndpoint;
-class SUdpTransceiver;
-
class UdpTransceiver : public Transceiver, public NativeInfo
{
enum State
@@ -46,15 +41,17 @@ class UdpTransceiver : public Transceiver, public NativeInfo
public:
virtual NativeInfoPtr getNativeInfo();
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
virtual AsyncInfo* getAsyncInfo(SocketOperation);
+#elif defined(ICE_OS_WINRT)
+ virtual void setCompletedHandler(SocketOperationCompletedHandler^);
#endif
virtual SocketOperation initialize();
virtual void close();
virtual bool write(Buffer&);
virtual bool read(Buffer&);
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
virtual bool startWrite(Buffer&);
virtual void finishWrite(Buffer&);
virtual void startRead(Buffer&);
@@ -69,12 +66,19 @@ public:
private:
- UdpTransceiver(const InstancePtr&, const struct sockaddr_storage&, const std::string&, int);
+ UdpTransceiver(const InstancePtr&, const Address&, const std::string&, int);
UdpTransceiver(const InstancePtr&, const std::string&, int, const std::string&, bool);
+
virtual ~UdpTransceiver();
void setBufSize(const InstancePtr&);
+#ifdef ICE_OS_WINRT
+ bool checkIfErrorOrCompleted(SocketOperation, Windows::Foundation::IAsyncInfo^);
+ void appendMessage(Windows::Networking::Sockets::DatagramSocketMessageReceivedEventArgs^);
+ Windows::Networking::Sockets::DatagramSocketMessageReceivedEventArgs^ readMessage();
+#endif
+
friend class UdpEndpointI;
friend class UdpConnector;
@@ -82,24 +86,35 @@ private:
const Ice::LoggerPtr _logger;
const Ice::StatsPtr _stats;
const bool _incoming;
- const struct sockaddr_storage _addr;
- struct sockaddr_storage _mcastAddr;
- struct sockaddr_storage _peerAddr;
-
+
+ const Address _addr;
+ Address _mcastAddr;
+ Address _peerAddr;
+
State _state;
int _rcvSize;
int _sndSize;
static const int _udpOverhead;
static const int _maxPacketSize;
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
AsyncInfo _read;
AsyncInfo _write;
- struct sockaddr_storage _readAddr;
+ Address _readAddr;
socklen_t _readAddrLen;
+#elif defined(ICE_OS_WINRT)
+ AsyncInfo _write;
+
+ Windows::Storage::Streams::DataWriter^ _writer;
+
+ SocketOperationCompletedHandler^ _completedHandler;
+ Windows::Foundation::AsyncOperationCompletedHandler<unsigned int>^ _writeOperationCompletedHandler;
+
+ IceUtil::Mutex _mutex;
+ bool _readPending;
+ std::deque<Windows::Networking::Sockets::DatagramSocketMessageReceivedEventArgs^> _received;
#endif
};
}
-
#endif
diff --git a/cpp/src/Ice/winrt/.depend.mak b/cpp/src/Ice/winrt/.depend.mak
new file mode 100644
index 00000000000..0f456b64331
--- /dev/null
+++ b/cpp/src/Ice/winrt/.depend.mak
@@ -0,0 +1,146 @@
+$(ARCH)\$(CONFIG)\Acceptor$(OBJEXT): ..\Acceptor.cpp "..\..\Ice\Acceptor.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\AcceptorF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h"
+$(ARCH)\$(CONFIG)\Base64$(OBJEXT): ..\Base64.cpp "..\..\Ice\Base64.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Config.h"
+$(ARCH)\$(CONFIG)\Buffer$(OBJEXT): ..\Buffer.cpp "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h"
+$(ARCH)\$(CONFIG)\BasicStream$(OBJEXT): ..\BasicStream.cpp "$(includedir)\IceUtil\DisableWarnings.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ProxyFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\ProxyFactory.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\ObjectFactory.h" "..\..\Ice\ObjectFactoryManager.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "..\..\Ice\TraceUtil.h" "..\..\Ice\TraceLevels.h" "$(includedir)\Ice\LoggerUtil.h"
+$(ARCH)\$(CONFIG)\BuiltinSequences$(OBJEXT): ..\BuiltinSequences.cpp "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\CommunicatorI$(OBJEXT): ..\CommunicatorI.cpp "$(includedir)\IceUtil\DisableWarnings.h" "..\..\Ice\CommunicatorI.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\Instance.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "..\..\Ice\ConnectionFactory.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Endpoint.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\Network.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\EndpointI.h" "..\..\Ice\ReferenceFactory.h" "..\..\Ice\Reference.h" "..\..\Ice\SharedContext.h" "..\..\Ice\ProxyFactory.h" "..\..\Ice\ObjectFactoryManager.h" "..\..\Ice\ObjectAdapterFactory.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\DefaultsAndOverrides.h" "..\..\Ice\TraceLevels.h" "..\..\Ice\GC.h" "$(includedir)\Ice\Router.h" "$(includedir)\IceUtil\MutexPtrLock.h" "$(includedir)\IceUtil\UUID.h"
+$(ARCH)\$(CONFIG)\Communicator$(OBJEXT): ..\Communicator.cpp "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ConnectRequestHandler$(OBJEXT): ..\ConnectRequestHandler.cpp "..\..\Ice\ConnectRequestHandler.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\MutexProtocol.h" "..\..\Ice\RequestHandler.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "..\..\Ice\Reference.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\RouterInfo.h" "..\..\Ice\ConnectionRequestHandler.h" "..\..\Ice\Instance.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Endpoint.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\Network.h" "..\..\Ice\ThreadPool.h" "..\..\Ice\Selector.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\ConnectionFactory$(OBJEXT): ..\ConnectionFactory.cpp "..\..\Ice\ConnectionFactory.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\ConnectionI.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\TransceiverF.h" "$(includedir)\Ice\ServantManagerF.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\EndpointI.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\TraceLevels.h" "..\..\Ice\DefaultsAndOverrides.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\Transceiver.h" "..\..\Ice\Connector.h" "..\..\Ice\Acceptor.h" "..\..\Ice\ThreadPool.h" "..\..\Ice\Selector.h" "$(includedir)\IceUtil\StringUtil.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\Reference.h" "$(includedir)\Ice\RouterF.h" "..\..\Ice\SharedContext.h" "..\..\Ice\RouterInfo.h" "$(includedir)\Ice\Functional.h" "$(includedir)\IceUtil\Functional.h" "$(includedir)\IceUtil\Random.h"
+$(ARCH)\$(CONFIG)\ConnectionI$(OBJEXT): ..\ConnectionI.cpp "$(includedir)\IceUtil\DisableWarnings.h" "..\..\Ice\ConnectionI.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\TransceiverF.h" "$(includedir)\Ice\ServantManagerF.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\TraceUtil.h" "..\..\Ice\DefaultsAndOverrides.h" "..\..\Ice\Transceiver.h" "..\..\Ice\ThreadPool.h" "..\..\Ice\Selector.h" "$(includedir)\IceUtil\StringUtil.h" "..\..\Ice\ConnectionMonitor.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\EndpointI.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\ReferenceFactory.h" "..\..\Ice\Reference.h" "$(includedir)\Ice\RouterF.h" "..\..\Ice\SharedContext.h" "..\..\Ice\ProxyFactory.h"
+$(ARCH)\$(CONFIG)\ConnectionMonitor$(OBJEXT): ..\ConnectionMonitor.cpp "..\..\Ice\ConnectionMonitor.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\ConnectionMonitorF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\InstanceF.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\TransceiverF.h" "$(includedir)\Ice\ServantManagerF.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Plugin.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\Direct.h"
+$(ARCH)\$(CONFIG)\Connection$(OBJEXT): ..\Connection.cpp "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Connector$(OBJEXT): ..\Connector.cpp "..\..\Ice\Connector.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "..\..\Ice\TransceiverF.h"
+$(ARCH)\$(CONFIG)\ConnectionRequestHandler$(OBJEXT): ..\ConnectionRequestHandler.cpp "..\..\Ice\ConnectionRequestHandler.h" "..\..\Ice\RequestHandler.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "..\..\Ice\Reference.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "..\..\Ice\RouterInfo.h"
+$(ARCH)\$(CONFIG)\Current$(OBJEXT): ..\Current.cpp "$(includedir)\Ice\Current.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\DefaultsAndOverrides$(OBJEXT): ..\DefaultsAndOverrides.cpp "..\..\Ice\DefaultsAndOverrides.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\DefaultsAndOverridesF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\Network.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\LocalException.h"
+$(ARCH)\$(CONFIG)\Direct$(OBJEXT): ..\Direct.cpp "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ServantManagerF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\ServantManager.h" "$(includedir)\Ice\ServantLocator.h" "..\..\Ice\Reference.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\RouterF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\LocalException.h"
+$(ARCH)\$(CONFIG)\DispatchInterceptor$(OBJEXT): ..\DispatchInterceptor.cpp "$(includedir)\Ice\DispatchInterceptor.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "..\..\Ice\IncomingRequest.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h"
+$(ARCH)\$(CONFIG)\DynamicLibrary$(OBJEXT): ..\DynamicLibrary.cpp "$(includedir)\Ice\DynamicLibrary.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\EndpointFactoryManager$(OBJEXT): ..\EndpointFactoryManager.cpp "..\..\Ice\EndpointFactoryManager.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\EndpointFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\OpaqueEndpointI.h" "..\..\Ice\EndpointI.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\EndpointFactory.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\DefaultsAndOverrides.h"
+$(ARCH)\$(CONFIG)\EndpointFactory$(OBJEXT): ..\EndpointFactory.cpp "$(includedir)\Ice\EndpointFactory.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\EndpointFactoryF.h" "$(includedir)\Ice\Protocol.h"
+$(ARCH)\$(CONFIG)\Endpoint$(OBJEXT): ..\Endpoint.cpp "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\EndpointI$(OBJEXT): ..\EndpointI.cpp "..\..\Ice\EndpointI.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\PropertiesI.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\IceUtil\MutexPtrLock.h"
+$(ARCH)\$(CONFIG)\EndpointTypes$(OBJEXT): ..\EndpointTypes.cpp "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\EventHandler$(OBJEXT): ..\EventHandler.cpp "..\..\Ice\EventHandler.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\InstanceF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h"
+$(ARCH)\$(CONFIG)\Exception$(OBJEXT): ..\Exception.cpp "$(includedir)\Ice\Exception.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\IceUtil\Unicode.h"
+$(ARCH)\$(CONFIG)\FacetMap$(OBJEXT): ..\FacetMap.cpp "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\FactoryTable$(OBJEXT): ..\FactoryTable.cpp "$(includedir)\Ice\FactoryTable.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h"
+$(ARCH)\$(CONFIG)\FactoryTableInit$(OBJEXT): ..\FactoryTableInit.cpp "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\MutexPtrLock.h"
+$(ARCH)\$(CONFIG)\GC$(OBJEXT): ..\GC.cpp "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\MutexPtrLock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\MutexProtocol.h" "..\..\Ice\GC.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h"
+$(ARCH)\$(CONFIG)\Identity$(OBJEXT): ..\Identity.cpp "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ImplicitContextI$(OBJEXT): ..\ImplicitContextI.cpp "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\MutexPtrLock.h"
+$(ARCH)\$(CONFIG)\ImplicitContext$(OBJEXT): ..\ImplicitContext.cpp "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\IncomingAsync$(OBJEXT): ..\IncomingAsync.cpp "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\ServantLocator.h" "..\..\Ice\ConnectionI.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\ReplyStatus.h" "$(includedir)\IceUtil\MutexPtrLock.h"
+$(ARCH)\$(CONFIG)\Incoming$(OBJEXT): ..\Incoming.cpp "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\IncomingAsync.h" "..\..\Ice\IncomingRequest.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ServantLocator.h" "..\..\Ice\ServantManager.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\ReplyStatus.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\Initialize$(OBJEXT): ..\Initialize.cpp "$(includedir)\IceUtil\DisableWarnings.h" "$(includedir)\IceUtil\ArgVector.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\GC.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "..\..\Ice\CommunicatorI.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\PropertiesI.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\StreamI.h" "..\..\Ice\LoggerI.h" "$(includedir)\Ice\Logger.h" "$(includedir)\IceUtil\FileUtil.h" "..\..\Ice\Instance.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\IceUtil\MutexPtrLock.h"
+$(ARCH)\$(CONFIG)\Instance$(OBJEXT): ..\Instance.cpp "$(includedir)\IceUtil\DisableWarnings.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ProxyFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\TraceLevels.h" "..\..\Ice\DefaultsAndOverrides.h" "$(includedir)\Ice\Endpoint.h" "..\..\Ice\RouterInfo.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\Router.h" "..\..\Ice\LocatorInfo.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\Locator.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\ProcessF.h" "..\..\Ice\ReferenceFactory.h" "..\..\Ice\Reference.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\ProxyFactory.h" "..\..\Ice\ThreadPool.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\Network.h" "..\..\Ice\Selector.h" "$(includedir)\IceUtil\StringUtil.h" "..\..\Ice\ConnectionFactory.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\EndpointI.h" "..\..\Ice\ConnectionMonitor.h" "..\..\Ice\ObjectFactoryManager.h" "..\..\Ice\ObjectAdapterFactory.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\Ice\ObjectAdapter.h" "..\..\Ice\PropertiesI.h" "..\..\Ice\LoggerI.h" "$(includedir)\Ice\Logger.h" "$(includedir)\IceUtil\FileUtil.h" "..\..\Ice\EndpointFactoryManager.h" "$(includedir)\Ice\EndpointFactoryF.h" "..\..\Ice\RetryQueue.h" "$(includedir)\Ice\DynamicLibrary.h" "..\..\Ice\PluginManagerI.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\IceUtil\UUID.h" "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\IceUtil\MutexPtrLock.h" "..\..\Ice\UdpEndpointI.h" "$(includedir)\Ice\EndpointFactory.h" "StreamEndpointI.h"
+$(ARCH)\$(CONFIG)\LocalException$(OBJEXT): ..\LocalException.cpp "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\LocalObject$(OBJEXT): ..\LocalObject.cpp "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h"
+$(ARCH)\$(CONFIG)\LocatorInfo$(OBJEXT): ..\LocatorInfo.cpp "..\..\Ice\LocatorInfo.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "..\..\Ice\LocatorInfoF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Locator.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\ProcessF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "..\..\Ice\TraceLevels.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\EndpointI.h" "$(includedir)\Ice\Endpoint.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\Reference.h" "$(includedir)\Ice\RouterF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Functional.h" "$(includedir)\IceUtil\Functional.h"
+$(ARCH)\$(CONFIG)\Locator$(OBJEXT): ..\Locator.cpp "$(includedir)\Ice\Locator.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\ProcessF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\LoggerI$(OBJEXT): ..\LoggerI.cpp "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\LoggerI.h" "$(includedir)\Ice\Logger.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\FileUtil.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\MutexPtrLock.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\LocalException.h"
+$(ARCH)\$(CONFIG)\Logger$(OBJEXT): ..\Logger.cpp "$(includedir)\Ice\Logger.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\LoggerUtil$(OBJEXT): ..\LoggerUtil.cpp "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Logger.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h"
+$(ARCH)\$(CONFIG)\Network$(OBJEXT): ..\Network.cpp "..\..\Ice\Network.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\InputUtil.h"
+$(ARCH)\$(CONFIG)\ObjectAdapterFactory$(OBJEXT): ..\ObjectAdapterFactory.cpp "..\..\Ice\ObjectAdapterFactory.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ServantManagerF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Functional.h" "$(includedir)\IceUtil\Functional.h" "$(includedir)\IceUtil\UUID.h"
+$(ARCH)\$(CONFIG)\ObjectAdapterI$(OBJEXT): ..\ObjectAdapterI.cpp "$(includedir)\IceUtil\UUID.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ServantManagerF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\ObjectAdapterFactory.h" "..\..\Ice\Instance.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\ConnectionMonitor.h" "..\..\Ice\ProxyFactory.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\ReferenceFactory.h" "..\..\Ice\Reference.h" "$(includedir)\Ice\RouterF.h" "..\..\Ice\SharedContext.h" "..\..\Ice\EndpointI.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\EndpointFactoryManager.h" "$(includedir)\Ice\EndpointFactoryF.h" "..\..\Ice\ConnectionFactory.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "..\..\Ice\EventHandler.h" "..\..\Ice\ServantManager.h" "..\..\Ice\RouterInfo.h" "$(includedir)\Ice\Functional.h" "$(includedir)\IceUtil\Functional.h" "..\..\Ice\LocatorInfo.h" "$(includedir)\Ice\Locator.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\ProcessF.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\ThreadPool.h" "..\..\Ice\Selector.h" "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\Router.h" "..\..\Ice\DefaultsAndOverrides.h" "..\..\Ice\TraceLevels.h" "..\..\Ice\PropertyNames.h"
+$(ARCH)\$(CONFIG)\ObjectAdapter$(OBJEXT): ..\ObjectAdapter.cpp "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ObjectFactoryManager$(OBJEXT): ..\ObjectFactoryManager.cpp "..\..\Ice\ObjectFactoryManager.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\Functional.h" "$(includedir)\IceUtil\Functional.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h"
+$(ARCH)\$(CONFIG)\ObjectFactory$(OBJEXT): ..\ObjectFactory.cpp "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Object$(OBJEXT): ..\Object.cpp "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\IncomingAsync.h" "..\..\Ice\IncomingRequest.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h"
+$(ARCH)\$(CONFIG)\OpaqueEndpointI$(OBJEXT): ..\OpaqueEndpointI.cpp "..\..\Ice\OpaqueEndpointI.h" "..\..\Ice\EndpointI.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\EndpointFactory.h" "$(includedir)\Ice\EndpointFactoryF.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\Base64.h" "..\..\Ice\HashUtil.h"
+$(ARCH)\$(CONFIG)\OutgoingAsync$(OBJEXT): ..\OutgoingAsync.cpp "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\StreamF.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\TransceiverF.h" "$(includedir)\Ice\ServantManagerF.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "..\..\Ice\RequestHandler.h" "..\..\Ice\Reference.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\Instance.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\LocatorInfo.h" "..\..\Ice\ProxyFactory.h" "..\..\Ice\RouterInfo.h" "..\..\Ice\ReplyStatus.h" "..\..\Ice\ThreadPool.h" "..\..\Ice\Selector.h" "$(includedir)\IceUtil\StringUtil.h" "..\..\Ice\RetryQueue.h"
+$(ARCH)\$(CONFIG)\Outgoing$(OBJEXT): ..\Outgoing.cpp "$(includedir)\Ice\Outgoing.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\StreamF.h" "..\..\Ice\RequestHandler.h" "$(includedir)\Ice\OutgoingAsyncF.h" "..\..\Ice\ConnectionI.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\TransceiverF.h" "$(includedir)\Ice\ServantManagerF.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "..\..\Ice\Reference.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "..\..\Ice\ReplyStatus.h"
+$(ARCH)\$(CONFIG)\PluginManagerI$(OBJEXT): ..\PluginManagerI.cpp "..\..\Ice\PluginManagerI.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\DynamicLibrary.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h"
+$(ARCH)\$(CONFIG)\Plugin$(OBJEXT): ..\Plugin.cpp "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Process$(OBJEXT): ..\Process.cpp "$(includedir)\Ice\Process.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\PropertiesI$(OBJEXT): ..\PropertiesI.cpp "..\..\Ice\PropertiesI.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\IceUtil\DisableWarnings.h" "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\IceUtil\FileUtil.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\PropertyNames.h" "$(includedir)\Ice\Logger.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\ImplicitContextF.h"
+$(ARCH)\$(CONFIG)\Properties$(OBJEXT): ..\Properties.cpp "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\PropertyNames$(OBJEXT): ..\PropertyNames.cpp "..\..\Ice\PropertyNames.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Config.h"
+$(ARCH)\$(CONFIG)\Protocol$(OBJEXT): ..\Protocol.cpp "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Config.h"
+$(ARCH)\$(CONFIG)\ProtocolPluginFacade$(OBJEXT): ..\ProtocolPluginFacade.cpp "$(includedir)\Ice\ProtocolPluginFacade.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\ProtocolPluginFacadeF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointFactoryF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\Protocol.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ProxyFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\EndpointFactoryManager.h" "..\..\Ice\TraceLevels.h" "..\..\Ice\DefaultsAndOverrides.h" "$(includedir)\Ice\Endpoint.h"
+$(ARCH)\$(CONFIG)\ProxyFactory$(OBJEXT): ..\ProxyFactory.cpp "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "..\..\Ice\ProxyFactory.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "..\..\Ice\ReferenceFactory.h" "..\..\Ice\Reference.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\SharedContext.h" "..\..\Ice\LocatorInfo.h" "..\..\Ice\RouterInfo.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\TraceLevels.h"
+$(ARCH)\$(CONFIG)\Proxy$(OBJEXT): ..\Proxy.cpp "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "..\..\Ice\ProxyFactory.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\ReferenceFactory.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\Reference.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "..\..\Ice\ObjectAdapterFactory.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\ConnectRequestHandler.h" "..\..\Ice\RequestHandler.h" "..\..\Ice\RouterInfo.h" "..\..\Ice\ConnectionRequestHandler.h" "..\..\Ice\EndpointI.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\Instance.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Process.h" "..\..\Ice\LocatorInfo.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "..\..\Ice\EventHandler.h"
+$(ARCH)\$(CONFIG)\ReferenceFactory$(OBJEXT): ..\ReferenceFactory.cpp "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\ReferenceFactory.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\Reference.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "..\..\Ice\ProxyFactory.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "..\..\Ice\EndpointI.h" "$(includedir)\Ice\Endpoint.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EndpointFactoryManager.h" "$(includedir)\Ice\EndpointFactoryF.h" "..\..\Ice\RouterInfo.h" "$(includedir)\Ice\Router.h" "..\..\Ice\LocatorInfo.h" "$(includedir)\Ice\Locator.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\ProcessF.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\DefaultsAndOverrides.h" "..\..\Ice\PropertyNames.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\Reference$(OBJEXT): ..\Reference.cpp "..\..\Ice\Reference.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\ReferenceFactory.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "..\..\Ice\EndpointI.h" "$(includedir)\Ice\Endpoint.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\OpaqueEndpointI.h" "$(includedir)\Ice\EndpointFactory.h" "$(includedir)\Ice\EndpointFactoryF.h" "..\..\Ice\RouterInfo.h" "$(includedir)\Ice\Router.h" "..\..\Ice\LocatorInfo.h" "$(includedir)\Ice\Locator.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\ProcessF.h" "$(includedir)\Ice\Functional.h" "$(includedir)\IceUtil\Functional.h" "..\..\Ice\ConnectionI.h" "$(includedir)\Ice\Connection.h" "..\..\Ice\EventHandler.h" "..\..\Ice\ConnectionFactory.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\TraceLevels.h" "..\..\Ice\HashUtil.h" "..\..\Ice\DefaultsAndOverrides.h" "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\IceUtil\Random.h" "$(includedir)\IceUtil\MutexPtrLock.h"
+$(ARCH)\$(CONFIG)\RetryQueue$(OBJEXT): ..\RetryQueue.cpp "..\..\Ice\RetryQueue.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h"
+$(ARCH)\$(CONFIG)\RequestHandler$(OBJEXT): ..\RequestHandler.cpp "..\..\Ice\RequestHandler.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "..\..\Ice\Reference.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h"
+$(ARCH)\$(CONFIG)\RouterInfo$(OBJEXT): ..\RouterInfo.cpp "..\..\Ice\RouterInfo.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "..\..\Ice\RouterInfoF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Router.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\Functional.h" "$(includedir)\IceUtil\Functional.h" "..\..\Ice\Reference.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\LocatorF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\SharedContext.h" "$(includedir)\Ice\Properties.h"
+$(ARCH)\$(CONFIG)\Router$(OBJEXT): ..\Router.cpp "$(includedir)\Ice\Router.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Selector$(OBJEXT): ..\Selector.cpp "..\..\Ice\Selector.h" "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\Network.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\ThreadPoolF.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LoggerUtil.h"
+$(ARCH)\$(CONFIG)\ServantLocator$(OBJEXT): ..\ServantLocator.cpp "$(includedir)\Ice\ServantLocator.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ServantManager$(OBJEXT): ..\ServantManager.cpp "..\..\Ice\ServantManager.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\ServantLocator.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\Plugin.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\Direct.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\SliceChecksumDict$(OBJEXT): ..\SliceChecksumDict.cpp "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\SliceChecksums$(OBJEXT): ..\SliceChecksums.cpp "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\MutexPtrLock.h"
+$(ARCH)\$(CONFIG)\Stats$(OBJEXT): ..\Stats.cpp "$(includedir)\Ice\Stats.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\StreamI$(OBJEXT): ..\StreamI.cpp "..\..\Ice\StreamI.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\LocalException.h"
+$(ARCH)\$(CONFIG)\Stream$(OBJEXT): ..\Stream.cpp "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Object.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h"
+$(ARCH)\$(CONFIG)\StringConverter$(OBJEXT): ..\StringConverter.cpp "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Config.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\IceUtil\IceUtil.h" "$(includedir)\IceUtil\AbstractMutex.h" "$(includedir)\IceUtil\Cache.h" "$(includedir)\IceUtil\CountDownLatch.h" "$(includedir)\IceUtil\CtrlCHandler.h" "$(includedir)\IceUtil\Functional.h" "$(includedir)\IceUtil\MutexPtrLock.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\UUID.h" "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\Dispatcher.h" "..\..\Ice\Instance.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Communicator.h" "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\Properties.h"
+$(ARCH)\$(CONFIG)\ThreadPool$(OBJEXT): ..\ThreadPool.cpp "..\..\Ice\ThreadPool.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\EventHandler.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\Network.h" "..\..\Ice\Selector.h" "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\IceUtil\DisableWarnings.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\LoggerUtil.h" "..\..\Ice\ObjectAdapterFactory.h" "..\..\Ice\ObjectAdapterI.h" "$(includedir)\Ice\ObjectAdapter.h" "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\Endpoint.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\Properties.h" "..\..\Ice\TraceLevels.h"
+$(ARCH)\$(CONFIG)\TraceLevels$(OBJEXT): ..\TraceLevels.cpp "..\..\Ice\TraceLevels.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\TraceLevelsF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h"
+$(ARCH)\$(CONFIG)\TraceUtil$(OBJEXT): ..\TraceUtil.cpp "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\MutexPtrLock.h" "$(includedir)\IceUtil\StringUtil.h" "..\..\Ice\TraceUtil.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "$(includedir)\Ice\ProxyFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\TraceLevels.h" "$(includedir)\Ice\Logger.h" "..\..\Ice\ReplyStatus.h"
+$(ARCH)\$(CONFIG)\Transceiver$(OBJEXT): ..\Transceiver.cpp "..\..\Ice\Transceiver.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\TransceiverF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h"
+$(ARCH)\$(CONFIG)\UdpConnector$(OBJEXT): ..\UdpConnector.cpp "..\..\Ice\UdpConnector.h" "..\..\Ice\TransceiverF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\InstanceF.h" "..\..\Ice\Connector.h" "..\..\Ice\ConnectorF.h" "$(includedir)\Ice\Protocol.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "..\..\Ice\UdpTransceiver.h" "..\..\Ice\TraceLevelsF.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\Transceiver.h" "..\..\Ice\UdpEndpointI.h" "..\..\Ice\EndpointI.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\AcceptorF.h" "$(includedir)\Ice\EndpointFactory.h" "$(includedir)\Ice\EndpointFactoryF.h" "$(includedir)\Ice\LocalException.h"
+$(ARCH)\$(CONFIG)\UdpEndpointI$(OBJEXT): ..\UdpEndpointI.cpp "..\..\Ice\UdpEndpointI.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\EndpointI.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\EndpointFactory.h" "$(includedir)\Ice\EndpointFactoryF.h" "..\..\Ice\UdpConnector.h" "..\..\Ice\Connector.h" "..\..\Ice\UdpTransceiver.h" "..\..\Ice\TraceLevelsF.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\Transceiver.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\DefaultsAndOverrides.h" "..\..\Ice\HashUtil.h"
+$(ARCH)\$(CONFIG)\UdpTransceiver$(OBJEXT): ..\UdpTransceiver.cpp "..\..\Ice\UdpTransceiver.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "..\..\Ice\TraceLevelsF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\Transceiver.h" "..\..\Ice\TransceiverF.h" "$(includedir)\Ice\ConnectionF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\TraceLevels.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Stats.h" "$(includedir)\Ice\Properties.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\StreamAcceptor$(OBJEXT): .\StreamAcceptor.cpp "StreamAcceptor.h" "..\..\Ice\TransceiverF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\InstanceF.h" "..\..\Ice\TraceLevelsF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "..\..\Ice\Acceptor.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\EventHandlerF.h" "StreamTransceiver.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\Transceiver.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\TraceLevels.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Properties.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\StreamConnector$(OBJEXT): .\StreamConnector.cpp "StreamConnector.h" "..\..\Ice\TransceiverF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\InstanceF.h" "..\..\Ice\TraceLevelsF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "..\..\Ice\Connector.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\EventHandlerF.h" "StreamTransceiver.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\Transceiver.h" "StreamEndpointI.h" "..\..\Ice\EndpointI.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\AcceptorF.h" "$(includedir)\Ice\EndpointFactory.h" "$(includedir)\Ice\EndpointFactoryF.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\TraceLevels.h" "$(includedir)\Ice\LoggerUtil.h"
+$(ARCH)\$(CONFIG)\StreamEndpointI$(OBJEXT): .\StreamEndpointI.cpp "StreamEndpointI.h" "$(includedir)\IceUtil\Config.h" "..\..\Ice\EndpointI.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\TransceiverF.h" "..\..\Ice\ConnectorF.h" "..\..\Ice\AcceptorF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LoggerF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\EndpointFactory.h" "$(includedir)\Ice\EndpointFactoryF.h" "StreamAcceptor.h" "..\..\Ice\TraceLevelsF.h" "..\..\Ice\Acceptor.h" "StreamConnector.h" "..\..\Ice\Connector.h" "StreamTransceiver.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\Transceiver.h" "$(includedir)\Ice\LocalException.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\DefaultsAndOverrides.h" "..\..\Ice\HashUtil.h"
+$(ARCH)\$(CONFIG)\StreamTransceiver$(OBJEXT): .\StreamTransceiver.cpp "StreamTransceiver.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "..\..\Ice\TraceLevelsF.h" "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\StatsF.h" "..\..\Ice\Transceiver.h" "..\..\Ice\TransceiverF.h" "$(includedir)\Ice\ConnectionF.h" "..\..\Ice\Network.h" "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "..\..\Ice\EventHandlerF.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "..\..\Ice\Instance.h" "$(includedir)\IceUtil\RecMutex.h" "..\..\Ice\DefaultsAndOverridesF.h" "..\..\Ice\RouterInfoF.h" "..\..\Ice\LocatorInfoF.h" "..\..\Ice\ReferenceFactoryF.h" "..\..\Ice\ThreadPoolF.h" "$(includedir)\Ice\ConnectionFactoryF.h" "$(includedir)\Ice\ConnectionMonitorF.h" "..\..\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\ObjectAdapterFactoryF.h" "..\..\Ice\EndpointFactoryManagerF.h" "..\..\Ice\RetryQueueF.h" "$(includedir)\Ice\DynamicLibraryF.h" "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\Initialize.h" "$(includedir)\Ice\Dispatcher.h" "$(includedir)\Ice\StringConverter.h" "$(includedir)\Ice\Plugin.h" "$(includedir)\IceUtil\Unicode.h" "..\..\Ice\ImplicitContextI.h" "$(includedir)\Ice\ImplicitContext.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\FacetMap.h" "$(includedir)\Ice\Process.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "..\..\Ice\TraceLevels.h" "$(includedir)\Ice\LoggerUtil.h" "$(includedir)\Ice\Stats.h" "$(includedir)\Ice\Properties.h"
+$(ARCH)\$(CONFIG)\EndpointInfo$(OBJEXT): .\EndpointInfo.cpp "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ConnectionInfo$(OBJEXT): .\ConnectionInfo.cpp "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\CommunicatorF$(OBJEXT): ..\CommunicatorF.cpp "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ConnectionF$(OBJEXT): ..\ConnectionF.cpp "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\EndpointF$(OBJEXT): ..\EndpointF.cpp "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ImplicitContextF$(OBJEXT): ..\ImplicitContextF.cpp "$(includedir)\Ice\ImplicitContextF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\LocatorF$(OBJEXT): ..\LocatorF.cpp "$(includedir)\Ice\LocatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\LoggerF$(OBJEXT): ..\LoggerF.cpp "$(includedir)\Ice\LoggerF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ObjectAdapterF$(OBJEXT): ..\ObjectAdapterF.cpp "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ObjectFactoryF$(OBJEXT): ..\ObjectFactoryF.cpp "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\PluginF$(OBJEXT): ..\PluginF.cpp "$(includedir)\Ice\PluginF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ProcessF$(OBJEXT): ..\ProcessF.cpp "$(includedir)\Ice\ProcessF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\PropertiesF$(OBJEXT): ..\PropertiesF.cpp "$(includedir)\Ice\PropertiesF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\RouterF$(OBJEXT): ..\RouterF.cpp "$(includedir)\Ice\RouterF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\ServantLocatorF$(OBJEXT): ..\ServantLocatorF.cpp "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\StatsF$(OBJEXT): ..\StatsF.cpp "$(includedir)\Ice\StatsF.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+
+$(headerdir)\Ice\BuiltinSequences.h ..\BuiltinSequences.cpp: "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\CommunicatorF.h ..\CommunicatorF.cpp: "$(slicedir)\Ice\CommunicatorF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Communicator.h ..\Communicator.cpp: "$(slicedir)\Ice\Communicator.ice" "$(slicedir)\Ice\LoggerF.ice" "$(slicedir)\Ice\StatsF.ice" "$(slicedir)\Ice\ObjectAdapterF.ice" "$(slicedir)\Ice\ObjectFactoryF.ice" "$(slicedir)\Ice\RouterF.ice" "$(slicedir)\Ice\LocatorF.ice" "$(slicedir)\Ice\PluginF.ice" "$(slicedir)\Ice\ImplicitContextF.ice" "$(slicedir)\Ice\Current.ice" "$(slicedir)\Ice\ConnectionF.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\Properties.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ConnectionF.h ..\ConnectionF.cpp: "$(slicedir)\Ice\ConnectionF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Connection.h ..\Connection.cpp: "$(slicedir)\Ice\Connection.ice" "$(slicedir)\Ice\ObjectAdapterF.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\Endpoint.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\EndpointF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Current.h ..\Current.cpp: "$(slicedir)\Ice\Current.ice" "$(slicedir)\Ice\ObjectAdapterF.ice" "$(slicedir)\Ice\ConnectionF.ice" "$(slicedir)\Ice\Identity.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Endpoint.h ..\Endpoint.cpp: "$(slicedir)\Ice\Endpoint.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\EndpointF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\EndpointF.h ..\EndpointF.cpp: "$(slicedir)\Ice\EndpointF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\EndpointTypes.h ..\EndpointTypes.cpp: "$(slicedir)\Ice\EndpointTypes.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\FacetMap.h ..\FacetMap.cpp: "$(slicedir)\Ice\FacetMap.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Identity.h ..\Identity.cpp: "$(slicedir)\Ice\Identity.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ImplicitContextF.h ..\ImplicitContextF.cpp: "$(slicedir)\Ice\ImplicitContextF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ImplicitContext.h ..\ImplicitContext.cpp: "$(slicedir)\Ice\ImplicitContext.ice" "$(slicedir)\Ice\LocalException.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\Current.ice" "$(slicedir)\Ice\ObjectAdapterF.ice" "$(slicedir)\Ice\ConnectionF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\LocalException.h ..\LocalException.cpp: "$(slicedir)\Ice\LocalException.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\LocatorF.h ..\LocatorF.cpp: "$(slicedir)\Ice\LocatorF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Locator.h ..\Locator.cpp: "$(slicedir)\Ice\Locator.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\ProcessF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\LoggerF.h ..\LoggerF.cpp: "$(slicedir)\Ice\LoggerF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Logger.h ..\Logger.cpp: "$(slicedir)\Ice\Logger.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ObjectAdapterF.h ..\ObjectAdapterF.cpp: "$(slicedir)\Ice\ObjectAdapterF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ObjectAdapter.h ..\ObjectAdapter.cpp: "$(slicedir)\Ice\ObjectAdapter.ice" "$(slicedir)\Ice\CommunicatorF.ice" "$(slicedir)\Ice\ServantLocatorF.ice" "$(slicedir)\Ice\LocatorF.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\FacetMap.ice" "$(slicedir)\Ice\Endpoint.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\EndpointF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ObjectFactoryF.h ..\ObjectFactoryF.cpp: "$(slicedir)\Ice\ObjectFactoryF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ObjectFactory.h ..\ObjectFactory.cpp: "$(slicedir)\Ice\ObjectFactory.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\PluginF.h ..\PluginF.cpp: "$(slicedir)\Ice\PluginF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Plugin.h ..\Plugin.cpp: "$(slicedir)\Ice\Plugin.ice" "$(slicedir)\Ice\LoggerF.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ProcessF.h ..\ProcessF.cpp: "$(slicedir)\Ice\ProcessF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Process.h ..\Process.cpp: "$(slicedir)\Ice\Process.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\PropertiesF.h ..\PropertiesF.cpp: "$(slicedir)\Ice\PropertiesF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Properties.h ..\Properties.cpp: "$(slicedir)\Ice\Properties.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\RouterF.h ..\RouterF.cpp: "$(slicedir)\Ice\RouterF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Router.h ..\Router.cpp: "$(slicedir)\Ice\Router.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ServantLocatorF.h ..\ServantLocatorF.cpp: "$(slicedir)\Ice\ServantLocatorF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\ServantLocator.h ..\ServantLocator.cpp: "$(slicedir)\Ice\ServantLocator.ice" "$(slicedir)\Ice\ObjectAdapterF.ice" "$(slicedir)\Ice\Current.ice" "$(slicedir)\Ice\ConnectionF.ice" "$(slicedir)\Ice\Identity.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\SliceChecksumDict.h ..\SliceChecksumDict.cpp: "$(slicedir)\Ice\SliceChecksumDict.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\StatsF.h ..\StatsF.cpp: "$(slicedir)\Ice\StatsF.ice" "$(SLICE2CPP)"
+$(headerdir)\Ice\Stats.h ..\Stats.cpp: "$(slicedir)\Ice\Stats.ice" "$(SLICE2CPP)"
+
+$(headerdir)\IceSSL\EndpointInfo.h .\EndpointInfo.cpp: "$(slicedir)\IceSSL\EndpointInfo.ice" "$(slicedir)\Ice\Endpoint.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\EndpointF.ice" "$(SLICE2CPP)"
+$(headerdir)\IceSSL\ConnectionInfo.h .\ConnectionInfo.cpp: "$(slicedir)\IceSSL\ConnectionInfo.ice" "$(slicedir)\Ice\Connection.ice" "$(slicedir)\Ice\ObjectAdapterF.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\Endpoint.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\EndpointF.ice" "$(SLICE2CPP)"
+
diff --git a/cpp/src/Ice/winrt/.gitignore b/cpp/src/Ice/winrt/.gitignore
new file mode 100644
index 00000000000..1b4414f868b
--- /dev/null
+++ b/cpp/src/Ice/winrt/.gitignore
@@ -0,0 +1,2 @@
+ConnectionInfo.cpp
+EndpointInfo.cpp \ No newline at end of file
diff --git a/cpp/src/Ice/winrt/Makefile.mak b/cpp/src/Ice/winrt/Makefile.mak
new file mode 100644
index 00000000000..14e374b8710
--- /dev/null
+++ b/cpp/src/Ice/winrt/Makefile.mak
@@ -0,0 +1,272 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2012 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.
+#
+# **********************************************************************
+
+top_srcdir = ..\..\..
+LIBNAME = $(SDK_LIBRARY_PATH)\ice.lib
+TARGETS = $(LIBNAME)
+SOURCE_DIR = ..
+
+OBJS = $(ARCH)\$(CONFIG)\Acceptor.obj \
+ $(ARCH)\$(CONFIG)\Base64.obj \
+ $(ARCH)\$(CONFIG)\Buffer.obj \
+ $(ARCH)\$(CONFIG)\BasicStream.obj \
+ $(ARCH)\$(CONFIG)\BuiltinSequences.obj \
+ $(ARCH)\$(CONFIG)\CommunicatorI.obj \
+ $(ARCH)\$(CONFIG)\Communicator.obj \
+ $(ARCH)\$(CONFIG)\ConnectRequestHandler.obj \
+ $(ARCH)\$(CONFIG)\ConnectionFactory.obj \
+ $(ARCH)\$(CONFIG)\ConnectionI.obj \
+ $(ARCH)\$(CONFIG)\ConnectionMonitor.obj \
+ $(ARCH)\$(CONFIG)\Connection.obj \
+ $(ARCH)\$(CONFIG)\Connector.obj \
+ $(ARCH)\$(CONFIG)\ConnectionRequestHandler.obj \
+ $(ARCH)\$(CONFIG)\Current.obj \
+ $(ARCH)\$(CONFIG)\DefaultsAndOverrides.obj \
+ $(ARCH)\$(CONFIG)\Direct.obj \
+ $(ARCH)\$(CONFIG)\DispatchInterceptor.obj \
+ $(ARCH)\$(CONFIG)\DynamicLibrary.obj \
+ $(ARCH)\$(CONFIG)\EndpointFactoryManager.obj \
+ $(ARCH)\$(CONFIG)\EndpointFactory.obj \
+ $(ARCH)\$(CONFIG)\Endpoint.obj \
+ $(ARCH)\$(CONFIG)\EndpointI.obj \
+ $(ARCH)\$(CONFIG)\EndpointTypes.obj \
+ $(ARCH)\$(CONFIG)\EventHandler.obj \
+ $(ARCH)\$(CONFIG)\Exception.obj \
+ $(ARCH)\$(CONFIG)\FacetMap.obj \
+ $(ARCH)\$(CONFIG)\FactoryTable.obj \
+ $(ARCH)\$(CONFIG)\FactoryTableInit.obj \
+ $(ARCH)\$(CONFIG)\GC.obj \
+ $(ARCH)\$(CONFIG)\Identity.obj \
+ $(ARCH)\$(CONFIG)\ImplicitContextI.obj \
+ $(ARCH)\$(CONFIG)\ImplicitContext.obj \
+ $(ARCH)\$(CONFIG)\IncomingAsync.obj \
+ $(ARCH)\$(CONFIG)\Incoming.obj \
+ $(ARCH)\$(CONFIG)\Initialize.obj \
+ $(ARCH)\$(CONFIG)\Instance.obj \
+ $(ARCH)\$(CONFIG)\LocalException.obj \
+ $(ARCH)\$(CONFIG)\LocalObject.obj \
+ $(ARCH)\$(CONFIG)\LocatorInfo.obj \
+ $(ARCH)\$(CONFIG)\Locator.obj \
+ $(ARCH)\$(CONFIG)\LoggerI.obj \
+ $(ARCH)\$(CONFIG)\Logger.obj \
+ $(ARCH)\$(CONFIG)\LoggerUtil.obj \
+ $(ARCH)\$(CONFIG)\Network.obj \
+ $(ARCH)\$(CONFIG)\ObjectAdapterFactory.obj \
+ $(ARCH)\$(CONFIG)\ObjectAdapterI.obj \
+ $(ARCH)\$(CONFIG)\ObjectAdapter.obj \
+ $(ARCH)\$(CONFIG)\ObjectFactoryManager.obj \
+ $(ARCH)\$(CONFIG)\ObjectFactory.obj \
+ $(ARCH)\$(CONFIG)\Object.obj \
+ $(ARCH)\$(CONFIG)\OpaqueEndpointI.obj \
+ $(ARCH)\$(CONFIG)\OutgoingAsync.obj \
+ $(ARCH)\$(CONFIG)\Outgoing.obj \
+ $(ARCH)\$(CONFIG)\PluginManagerI.obj \
+ $(ARCH)\$(CONFIG)\Plugin.obj \
+ $(ARCH)\$(CONFIG)\Process.obj \
+ $(ARCH)\$(CONFIG)\PropertiesI.obj \
+ $(ARCH)\$(CONFIG)\Properties.obj \
+ $(ARCH)\$(CONFIG)\PropertyNames.obj \
+ $(ARCH)\$(CONFIG)\Protocol.obj \
+ $(ARCH)\$(CONFIG)\ProtocolPluginFacade.obj \
+ $(ARCH)\$(CONFIG)\ProxyFactory.obj \
+ $(ARCH)\$(CONFIG)\Proxy.obj \
+ $(ARCH)\$(CONFIG)\ReferenceFactory.obj \
+ $(ARCH)\$(CONFIG)\Reference.obj \
+ $(ARCH)\$(CONFIG)\RetryQueue.obj \
+ $(ARCH)\$(CONFIG)\RequestHandler.obj \
+ $(ARCH)\$(CONFIG)\RouterInfo.obj \
+ $(ARCH)\$(CONFIG)\Router.obj \
+ $(ARCH)\$(CONFIG)\Selector.obj \
+ $(ARCH)\$(CONFIG)\ServantLocator.obj \
+ $(ARCH)\$(CONFIG)\ServantManager.obj \
+ $(ARCH)\$(CONFIG)\SliceChecksumDict.obj \
+ $(ARCH)\$(CONFIG)\SliceChecksums.obj \
+ $(ARCH)\$(CONFIG)\Stats.obj \
+ $(ARCH)\$(CONFIG)\StreamI.obj \
+ $(ARCH)\$(CONFIG)\Stream.obj \
+ $(ARCH)\$(CONFIG)\StringConverter.obj \
+ $(ARCH)\$(CONFIG)\ThreadPool.obj \
+ $(ARCH)\$(CONFIG)\TraceLevels.obj \
+ $(ARCH)\$(CONFIG)\TraceUtil.obj \
+ $(ARCH)\$(CONFIG)\Transceiver.obj \
+ $(ARCH)\$(CONFIG)\UdpConnector.obj \
+ $(ARCH)\$(CONFIG)\UdpEndpointI.obj \
+ $(ARCH)\$(CONFIG)\UdpTransceiver.obj
+
+LOCAL_OBJS = $(ARCH)\$(CONFIG)\StreamAcceptor.obj \
+ $(ARCH)\$(CONFIG)\StreamConnector.obj \
+ $(ARCH)\$(CONFIG)\StreamEndpointI.obj \
+ $(ARCH)\$(CONFIG)\StreamTransceiver.obj \
+ $(ARCH)\$(CONFIG)\EndpointInfo.obj \
+ $(ARCH)\$(CONFIG)\ConnectionInfo.obj
+
+SLICE_CORE_SRCS = $(slicedir)\Ice\BuiltinSequences.ice \
+ $(slicedir)\Ice\CommunicatorF.ice \
+ $(slicedir)\Ice\Communicator.ice \
+ $(slicedir)\Ice\ConnectionF.ice \
+ $(slicedir)\Ice\Connection.ice \
+ $(slicedir)\Ice\Current.ice \
+ $(slicedir)\Ice\Endpoint.ice \
+ $(slicedir)\Ice\EndpointF.ice \
+ $(slicedir)\Ice\EndpointTypes.ice \
+ $(slicedir)\Ice\FacetMap.ice \
+ $(slicedir)\Ice\Identity.ice \
+ $(slicedir)\Ice\ImplicitContextF.ice \
+ $(slicedir)\Ice\ImplicitContext.ice \
+ $(slicedir)\Ice\LocalException.ice \
+ $(slicedir)\Ice\LocatorF.ice \
+ $(slicedir)\Ice\Locator.ice \
+ $(slicedir)\Ice\LoggerF.ice \
+ $(slicedir)\Ice\Logger.ice \
+ $(slicedir)\Ice\ObjectAdapterF.ice \
+ $(slicedir)\Ice\ObjectAdapter.ice \
+ $(slicedir)\Ice\ObjectFactoryF.ice \
+ $(slicedir)\Ice\ObjectFactory.ice \
+ $(slicedir)\Ice\PluginF.ice \
+ $(slicedir)\Ice\Plugin.ice \
+ $(slicedir)\Ice\ProcessF.ice \
+ $(slicedir)\Ice\Process.ice \
+ $(slicedir)\Ice\PropertiesF.ice \
+ $(slicedir)\Ice\Properties.ice \
+ $(slicedir)\Ice\RouterF.ice \
+ $(slicedir)\Ice\Router.ice \
+ $(slicedir)\Ice\ServantLocatorF.ice \
+ $(slicedir)\Ice\ServantLocator.ice \
+ $(slicedir)\Ice\SliceChecksumDict.ice \
+ $(slicedir)\Ice\StatsF.ice \
+ $(slicedir)\Ice\Stats.ice
+
+SLICE_SSL_SRCS = $(slicedir)\IceSSL\EndpointInfo.ice \
+ $(slicedir)\IceSSL\ConnectionInfo.ice
+
+SRCS = $(OBJS:.obj=.cpp)
+SRCS = $(SRCS:x86\=)
+SRCS = $(SRCS:x64\=)
+SRCS = $(SRCS:Retail\=..\)
+SRCS = $(SRCS:Debug\=..\)
+
+LOCAL_SRCS = $(LOCAL_OBJS:.obj=.cpp)
+LOCAL_SRCS = $(LOCAL_SRCS:x86\=)
+LOCAL_SRCS = $(LOCAL_SRCS:x64\=)
+LOCAL_SRCS = $(LOCAL_SRCS:Retail\=.\)
+LOCAL_SRCS = $(LOCAL_SRCS:Debug\=.\)
+
+SRCS = $(SRCS) \
+ $(LOCAL_SRCS) \
+ ..\CommunicatorF.cpp \
+ ..\ConnectionF.cpp \
+ ..\EndpointF.cpp \
+ ..\ImplicitContextF.cpp \
+ ..\LocatorF.cpp \
+ ..\LoggerF.cpp \
+ ..\ObjectAdapterF.cpp \
+ ..\ObjectFactoryF.cpp \
+ ..\PluginF.cpp \
+ ..\ProcessF.cpp \
+ ..\PropertiesF.cpp \
+ ..\RouterF.cpp \
+ ..\ServantLocatorF.cpp \
+ ..\StatsF.cpp
+
+HDIR = $(headerdir)\Ice
+SDIR = $(slicedir)\Ice
+
+CPPFLAGS = -I..\.. $(CPPFLAGS) -DICE_API_EXPORTS -DWIN32_LEAN_AND_MEAN
+CORE_SLICE2CPPFLAGS = --ice --include-dir Ice --dll-export ICE_API $(SLICE2CPPFLAGS)
+SSL_SLICE2CPPFLAGS = --ice --include-dir IceSSL --dll-export ICE_SSL_API $(SLICE2CPPFLAGS)
+
+!include $(top_srcdir)\config\Make.rules.mak
+
+RES_FILE = $(SOURCE_DIR)\Ice.res
+
+$(LIBNAME): $(LOCAL_OBJS) $(OBJS) $(RES_FILE) sdks
+ $(AR) $(ARFLAGS) $(OBJS) $(LOCAL_OBJS) /out:$(LIBNAME)
+
+$(HDIR)\BuiltinSequences.h ..\BuiltinSequences.cpp: $(slicedir)\Ice\BuiltinSequences.ice $(SLICE2CPP)
+ del /q $(HDIR)\BuiltinSequences.h ..\BuiltinSequences.cpp
+ $(SLICE2CPP) $(CORE_SLICE2CPPFLAGS) --stream $(slicedir)\Ice\BuiltinSequences.ice
+ move BuiltinSequences.cpp ..
+ move BuiltinSequences.h $(HDIR)
+
+Service.obj: $(SOURCE_DIR)\EventLoggerMsg.h
+
+Ice.res: $(SOURCE_DIR)\EventLoggerMsg.rc
+
+.cpp{$(ARCH)\$(CONFIG)\}.obj::
+ @if not exist "$(ARCH)\$(CONFIG)" mkdir $(ARCH)\$(CONFIG)
+ $(CXX) /c /Fo$(ARCH)\$(CONFIG)\ /Fd$(ARCH)\$(CONFIG)\ $(CPPFLAGS) $(CXXFLAGS) $<
+
+{$(slicedir)\Ice}.ice.cpp:
+ @echo c
+ del /q $(headerdir)\Ice\$(*F).h $(*F).cpp
+ "$(SLICE2CPP)" $(CORE_SLICE2CPPFLAGS) $<
+ move $(*F).h $(headerdir)\Ice
+ move $(*F).cpp ..
+
+{$(slicedir)\IceSSL}.ice.cpp:
+ @echo d
+ del /q $(headerdir)\IceSSL\$(*F).h $(*F).cpp
+ "$(SLICE2CPP)" $(SSL_SLICE2CPPFLAGS) $<
+ move $(*F).h $(headerdir)\IceSSL
+
+depend::
+ del /q .depend.mak
+
+.cpp.depend:
+ $(CXX) /Fo$(ARCH)\$(CONFIG)\ /Fd$(ARCH)\$(CONFIG)\ /Zs /showIncludes $(CXXFLAGS) $(CPPFLAGS) $< 2>&1 | python.exe $(ice_dir)/config/makedepend-winrt.py $<
+
+depend:: $(ARCH)\$(CONFIG) $(SLICE_CORE_SRCS) $(SLICE_SSL_SRCS) $(SRCS) $(SRCS_DEPEND)
+ $(SLICE2CPP) --depend $(CORE_SLICE2CPPFLAGS) $(SLICE_CORE_SRCS) | python.exe $(ice_dir)\config\makedepend-winrt.py "$$(headerdir)\Ice"
+ $(SLICE2CPP) --depend $(SSL_SLICE2CPPFLAGS) $(SLICE_SSL_SRCS) | python.exe $(ice_dir)\config\makedepend-winrt.py "$$(headerdir)\IceSSL" "."
+
+# These files are not automatically generated because VC2008 Express doesn't have mc.exe
+#EventLoggerMsg.h EventLoggerMsg.rc: EventLoggerMsg.mc
+# mc EventLoggerMsg.mc
+
+clean::
+ -del /q $(SOURCE_DIR)\BuiltinSequences.cpp $(HDIR)\BuiltinSequences.h
+ -del /q $(SOURCE_DIR)\CommunicatorF.cpp $(HDIR)\CommunicatorF.h
+ -del /q $(SOURCE_DIR)\Communicator.cpp $(HDIR)\Communicator.h
+ -del /q $(SOURCE_DIR)\ConnectionF.cpp $(HDIR)\ConnectionF.h
+ -del /q $(SOURCE_DIR)\Connection.cpp $(HDIR)\Connection.h
+ -del /q $(SOURCE_DIR)\Current.cpp $(HDIR)\Current.h
+ -del /q $(SOURCE_DIR)\Endpoint.cpp $(HDIR)\Endpoint.h
+ -del /q $(SOURCE_DIR)\EndpointF.cpp $(HDIR)\EndpointF.h
+ -del /q $(SOURCE_DIR)\EndpointTypes.cpp $(HDIR)\EndpointTypes.h
+ -del /q $(SOURCE_DIR)\FacetMap.cpp $(HDIR)\FacetMap.h
+ -del /q $(SOURCE_DIR)\ImplicitContextF.cpp $(HDIR)\ImplicitContextF.h
+ -del /q $(SOURCE_DIR)\ImplicitContext.cpp $(HDIR)\ImplicitContext.h
+ -del /q $(SOURCE_DIR)\Identity.cpp $(HDIR)\Identity.h
+ -del /q $(SOURCE_DIR)\LocalException.cpp $(HDIR)\LocalException.h
+ -del /q $(SOURCE_DIR)\LocatorF.cpp $(HDIR)\LocatorF.h
+ -del /q $(SOURCE_DIR)\Locator.cpp $(HDIR)\Locator.h
+ -del /q $(SOURCE_DIR)\LoggerF.cpp $(HDIR)\LoggerF.h
+ -del /q $(SOURCE_DIR)\Logger.cpp $(HDIR)\Logger.h
+ -del /q $(SOURCE_DIR)\ObjectAdapterF.cpp $(HDIR)\ObjectAdapterF.h
+ -del /q $(SOURCE_DIR)\ObjectAdapter.cpp $(HDIR)\ObjectAdapter.h
+ -del /q $(SOURCE_DIR)\ObjectFactoryF.cpp $(HDIR)\ObjectFactoryF.h
+ -del /q $(SOURCE_DIR)\ObjectFactory.cpp $(HDIR)\ObjectFactory.h
+ -del /q $(SOURCE_DIR)\PluginF.cpp $(HDIR)\PluginF.h
+ -del /q $(SOURCE_DIR)\Plugin.cpp $(HDIR)\Plugin.h
+ -del /q $(SOURCE_DIR)\ProcessF.cpp $(HDIR)\ProcessF.h
+ -del /q $(SOURCE_DIR)\Process.cpp $(HDIR)\Process.h
+ -del /q $(SOURCE_DIR)\PropertiesF.cpp $(HDIR)\PropertiesF.h
+ -del /q $(SOURCE_DIR)\Properties.cpp $(HDIR)\Properties.h
+ -del /q $(SOURCE_DIR)\RouterF.cpp $(HDIR)\RouterF.h
+ -del /q $(SOURCE_DIR)\Router.cpp $(HDIR)\Router.h
+ -del /q $(SOURCE_DIR)\ServantLocatorF.cpp $(HDIR)\ServantLocatorF.h
+ -del /q $(SOURCE_DIR)\ServantLocator.cpp $(HDIR)\ServantLocator.h
+ -del /q $(SOURCE_DIR)\SliceChecksumDict.cpp $(HDIR)\SliceChecksumDict.h
+ -del /q $(SOURCE_DIR)\StatsF.cpp $(HDIR)\StatsF.h
+ -del /q $(SOURCE_DIR)\Stats.cpp $(HDIR)\Stats.h
+ -del /q EndpointInfo.cpp $(headerdir)\IceSSL\EndpointInfo.h
+ -del /q ConnectionInfo.cpp $(headerdir)\IceSSL\ConnectionInfo.h
+ -del /q $(RES_FILE)
+
+!include .depend.mak
diff --git a/cpp/src/Ice/winrt/StreamAcceptor.cpp b/cpp/src/Ice/winrt/StreamAcceptor.cpp
new file mode 100644
index 00000000000..dd113e904c9
--- /dev/null
+++ b/cpp/src/Ice/winrt/StreamAcceptor.cpp
@@ -0,0 +1,217 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 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/winrt/StreamAcceptor.h>
+#include <Ice/winrt/StreamTransceiver.h>
+
+#include <Ice/Instance.h>
+#include <Ice/TraceLevels.h>
+#include <Ice/LoggerUtil.h>
+#include <Ice/Exception.h>
+#include <Ice/Properties.h>
+#include <IceUtil/StringUtil.h>
+
+using namespace std;
+using namespace Ice;
+using namespace IceInternal;
+
+using namespace Platform;
+using namespace Windows::Foundation;
+using namespace Windows::Storage::Streams;
+using namespace Windows::Networking;
+using namespace Windows::Networking::Sockets;
+
+NativeInfoPtr
+IceInternal::StreamAcceptor::getNativeInfo()
+{
+ return this;
+}
+
+void
+IceInternal::StreamAcceptor::setCompletedHandler(SocketOperationCompletedHandler^ handler)
+{
+ _completedHandler = handler;
+}
+
+void
+IceInternal::StreamAcceptor::close()
+{
+ if(_traceLevels->network >= 1)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "stopping to accept " << typeToString(_type) << " connections at " << toString();
+ }
+
+
+ IceUtil::Mutex::Lock lock(_mutex);
+ if(_acceptPending)
+ {
+ assert(_accepted.empty());
+ _completedHandler(SocketOperationRead);
+ _acceptPending = false;
+ }
+ else if(!_accepted.empty())
+ {
+ for(deque<StreamSocket^>::const_iterator p = _accepted.begin(); p != _accepted.end(); ++p)
+ {
+ closeSocket(*p);
+ }
+ _accepted.clear();
+ }
+
+ SOCKET fd = _fd;
+ _fd = INVALID_SOCKET;
+ closeSocket(fd);
+}
+
+void
+IceInternal::StreamAcceptor::listen()
+{
+ if(_traceLevels->network >= 1)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "accepting " << typeToString(_type) << " connections at " << toString();
+
+ vector<string> interfaces =
+ getHostsForEndpointExpand(inetAddrToString(_addr), _instance->protocolSupport(), true);
+ if(!interfaces.empty())
+ {
+ out << "\nlocal interfaces: ";
+ out << IceUtilInternal::joinString(interfaces, ", ");
+ }
+ }
+}
+
+void
+IceInternal::StreamAcceptor::startAccept()
+{
+ assert(_fd != INVALID_SOCKET);
+
+ //
+ // If there are already sockets waiting to be accepted, we just
+ // notify the selector that the acceptor is ready for acceting the
+ // new socket. Otherwise, we set the _acceptPending flag, when a
+ // new socket connection event is received, the message handler
+ // will notify the selector.
+ //
+ IceUtil::Mutex::Lock lock(_mutex);
+ assert(!_acceptPending);
+ if(!_accepted.empty())
+ {
+ _completedHandler(SocketOperationRead);
+ }
+ else
+ {
+ _acceptPending = true;
+ }
+}
+
+void
+IceInternal::StreamAcceptor::finishAccept()
+{
+ //
+ // Nothing to do, we just check there's at least one accepted
+ // socket or the acceptor was closed.
+ //
+ IceUtil::Mutex::Lock lock(_mutex);
+ assert(!_acceptPending && (!_accepted.empty() || _fd == INVALID_SOCKET));
+}
+
+TransceiverPtr
+IceInternal::StreamAcceptor::accept()
+{
+ if(_fd == INVALID_SOCKET) // Acceptor closed.
+ {
+ assert(_accepted.empty());
+ throw SocketException(__FILE__, __LINE__);
+ }
+
+ StreamSocket^ fd;
+ {
+ IceUtil::Mutex::Lock lock(_mutex);
+ assert(!_accepted.empty());
+ fd = _accepted.front();
+ _accepted.pop_front();
+ }
+
+ if(_traceLevels->network >= 1)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "accepted " << typeToString(_type) << " connection\n" << fdToString(fd);
+ }
+ return new StreamTransceiver(_instance, _type, fd, true);
+}
+
+string
+IceInternal::StreamAcceptor::toString() const
+{
+ return addrToString(_addr);
+}
+
+int
+IceInternal::StreamAcceptor::effectivePort() const
+{
+ return getPort(_addr);
+}
+
+IceInternal::StreamAcceptor::StreamAcceptor(const InstancePtr& instance, Ice::Short type, const string& host, int port,
+ ProtocolSupport protocol) :
+ _instance(instance),
+ _type(type),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->initializationData().logger),
+ _addr(getAddressForServer(host, port, protocol)),
+ _acceptPending(false)
+{
+ _fd = ref new StreamSocketListener();
+
+ safe_cast<StreamSocketListener^>(_fd)->ConnectionReceived +=
+ ref new TypedEventHandler<StreamSocketListener^, StreamSocketListenerConnectionReceivedEventArgs^>(
+ [=](StreamSocketListener^, StreamSocketListenerConnectionReceivedEventArgs^ args)
+ {
+ queueAcceptedSocket(args->Socket);
+ });
+
+ if(_traceLevels->network >= 2)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "attempting to bind to " << typeToString(_type) << " socket " << toString();
+ }
+ const_cast<Address&>(_addr) = doBind(_fd, _addr);
+}
+
+IceInternal::StreamAcceptor::~StreamAcceptor()
+{
+ assert(_fd == INVALID_SOCKET);
+}
+
+void
+IceInternal::StreamAcceptor::queueAcceptedSocket(StreamSocket^ socket)
+{
+ IceUtil::Mutex::Lock lock(_mutex);
+ if(_fd == INVALID_SOCKET) // Acceptor was closed.
+ {
+ closeSocket(socket);
+ return;
+ }
+ _accepted.push_back(socket);
+
+ //
+ // If the acceptor is waiting for a socket to be accepted, notify
+ // the selector that the acceptor is ready for "read". This will
+ // in turn caused finishAccept() and accept() to be called by the
+ // thread pool. If the acceptor isn't ready to accept the socket,
+ // it is just queued, when startAccept is called it will be dequed.
+ //
+ if(_acceptPending)
+ {
+ _completedHandler(SocketOperationRead);
+ _acceptPending = false;
+ }
+}
diff --git a/cpp/src/Ice/winrt/StreamAcceptor.h b/cpp/src/Ice/winrt/StreamAcceptor.h
new file mode 100644
index 00000000000..d5f84422442
--- /dev/null
+++ b/cpp/src/Ice/winrt/StreamAcceptor.h
@@ -0,0 +1,69 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 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 ICE_STREAM_ACCEPTOR_H
+#define ICE_STREAM_ACCEPTOR_H
+
+#include <Ice/TransceiverF.h>
+#include <Ice/InstanceF.h>
+#include <Ice/TraceLevelsF.h>
+#include <Ice/LoggerF.h>
+#include <Ice/Acceptor.h>
+#include <Ice/Network.h>
+
+#include <IceUtil/Mutex.h>
+
+#include <deque>
+
+namespace IceInternal
+{
+
+class StreamEndpoint;
+
+class StreamAcceptor : public Acceptor, public NativeInfo
+{
+public:
+
+ virtual NativeInfoPtr getNativeInfo();
+ virtual void setCompletedHandler(SocketOperationCompletedHandler^);
+
+ virtual void close();
+ virtual void listen();
+
+ virtual void startAccept();
+ virtual void finishAccept();
+
+ virtual TransceiverPtr accept();
+ virtual std::string toString() const;
+
+ int effectivePort() const;
+
+private:
+
+ StreamAcceptor(const InstancePtr&, Ice::Short, const std::string&, int, ProtocolSupport);
+ virtual ~StreamAcceptor();
+ friend class StreamEndpointI;
+
+ virtual void queueAcceptedSocket(Windows::Networking::Sockets::StreamSocket^);
+
+ const InstancePtr _instance;
+ const Ice::Short _type;
+ const TraceLevelsPtr _traceLevels;
+ const ::Ice::LoggerPtr _logger;
+ const Address _addr;
+
+ IceUtil::Mutex _mutex;
+ bool _acceptPending;
+ SocketOperationCompletedHandler^ _completedHandler;
+ std::deque<Windows::Networking::Sockets::StreamSocket^> _accepted;
+};
+
+}
+#endif
+
diff --git a/cpp/src/Ice/winrt/StreamConnector.cpp b/cpp/src/Ice/winrt/StreamConnector.cpp
new file mode 100644
index 00000000000..88e26aae77b
--- /dev/null
+++ b/cpp/src/Ice/winrt/StreamConnector.cpp
@@ -0,0 +1,152 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 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/winrt/StreamConnector.h>
+#include <Ice/winrt/StreamTransceiver.h>
+#include <Ice/winrt/StreamEndpointI.h>
+
+#include <Ice/Instance.h>
+#include <Ice/TraceLevels.h>
+#include <Ice/LoggerUtil.h>
+#include <Ice/Network.h>
+#include <Ice/Exception.h>
+
+using namespace std;
+using namespace Ice;
+using namespace IceInternal;
+
+TransceiverPtr
+IceInternal::StreamConnector::connect()
+{
+ if(_traceLevels->network >= 2)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "trying to establish " << typeToString(_type) << " connection to " << toString();
+ }
+
+ try
+ {
+ TransceiverPtr transceiver = new StreamTransceiver(_instance, _type, createSocket(false, _addr), false);
+ dynamic_cast<StreamTransceiver*>(transceiver.get())->connect(_addr);
+ return transceiver;
+ }
+ catch(const Ice::LocalException& ex)
+ {
+ if(_traceLevels->network >= 2)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "failed to establish " << typeToString(_type) << " connection to " << toString() << "\n" << ex;
+ }
+ throw;
+ }
+}
+
+Short
+IceInternal::StreamConnector::type() const
+{
+ return _type;
+}
+
+string
+IceInternal::StreamConnector::toString() const
+{
+ return addrToString(_addr);
+}
+
+bool
+IceInternal::StreamConnector::operator==(const Connector& r) const
+{
+ const StreamConnector* p = dynamic_cast<const StreamConnector*>(&r);
+ if(!p)
+ {
+ return false;
+ }
+
+ if(_type != p->_type)
+ {
+ return false;
+ }
+
+ if(compareAddress(_addr, p->_addr) != 0)
+ {
+ return false;
+ }
+
+ if(_timeout != p->_timeout)
+ {
+ return false;
+ }
+
+ if(_connectionId != p->_connectionId)
+ {
+ return false;
+ }
+
+ return true;
+}
+
+bool
+IceInternal::StreamConnector::operator!=(const Connector& r) const
+{
+ return !operator==(r);
+}
+
+bool
+IceInternal::StreamConnector::operator<(const Connector& r) const
+{
+ const StreamConnector* p = dynamic_cast<const StreamConnector*>(&r);
+ if(!p)
+ {
+ return type() < r.type();
+ }
+
+ if(_type < p->_type)
+ {
+ return true;
+ }
+ else if(p->_type < _type)
+ {
+ return false;
+ }
+
+ if(_timeout < p->_timeout)
+ {
+ return true;
+ }
+ else if(p->_timeout < _timeout)
+ {
+ return false;
+ }
+
+ if(_connectionId < p->_connectionId)
+ {
+ return true;
+ }
+ else if(p->_connectionId < _connectionId)
+ {
+ return false;
+ }
+ return compareAddress(_addr, p->_addr) < 0;
+}
+
+IceInternal::StreamConnector::StreamConnector(const InstancePtr& instance, Ice::Short type, const Address& addr,
+ Ice::Int timeout, const string& connectionId) :
+ _instance(instance),
+ _type(type),
+ _traceLevels(instance->traceLevels()),
+ _logger(instance->initializationData().logger),
+ _addr(addr),
+ _timeout(timeout),
+ _connectionId(connectionId)
+{
+}
+
+IceInternal::StreamConnector::~StreamConnector()
+{
+}
diff --git a/cpp/src/Ice/winrt/StreamConnector.h b/cpp/src/Ice/winrt/StreamConnector.h
new file mode 100644
index 00000000000..88f8721083a
--- /dev/null
+++ b/cpp/src/Ice/winrt/StreamConnector.h
@@ -0,0 +1,53 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 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 ICE_TCP_CONNECTOR_H
+#define ICE_TCP_CONNECTOR_H
+
+#include <Ice/TransceiverF.h>
+#include <Ice/InstanceF.h>
+#include <Ice/TraceLevelsF.h>
+#include <Ice/LoggerF.h>
+#include <Ice/Connector.h>
+#include <Ice/Network.h>
+
+namespace IceInternal
+{
+
+class StreamConnector : public Connector
+{
+public:
+
+ virtual TransceiverPtr connect();
+
+ virtual Ice::Short type() const;
+ virtual std::string toString() const;
+
+ virtual bool operator==(const Connector&) const;
+ virtual bool operator!=(const Connector&) const;
+ virtual bool operator<(const Connector&) const;
+
+private:
+
+ StreamConnector(const InstancePtr&, Ice::Short, const Address&, Ice::Int, const std::string&);
+ virtual ~StreamConnector();
+ friend class StreamEndpointI;
+
+ const InstancePtr _instance;
+ const Ice::Short _type;
+ const TraceLevelsPtr _traceLevels;
+ const ::Ice::LoggerPtr _logger;
+ const Address _addr;
+ const Ice::Int _timeout;
+ const std::string _connectionId;
+};
+
+}
+
+#endif
diff --git a/cpp/src/Ice/winrt/StreamEndpointI.cpp b/cpp/src/Ice/winrt/StreamEndpointI.cpp
new file mode 100644
index 00000000000..c32a2308974
--- /dev/null
+++ b/cpp/src/Ice/winrt/StreamEndpointI.cpp
@@ -0,0 +1,623 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 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/winrt/StreamEndpointI.h>
+#include <Ice/winrt/StreamAcceptor.h>
+#include <Ice/winrt/StreamConnector.h>
+#include <Ice/winrt/StreamTransceiver.h>
+
+#include <Ice/Network.h>
+#include <Ice/BasicStream.h>
+#include <Ice/LocalException.h>
+#include <Ice/Instance.h>
+#include <Ice/DefaultsAndOverrides.h>
+#include <Ice/HashUtil.h>
+
+#include <IceSSL/EndpointInfo.h>
+
+using namespace std;
+using namespace Ice;
+using namespace IceInternal;
+
+namespace
+{
+
+template<class T> class InfoI : public T
+{
+public:
+
+ InfoI(Ice::Short type, Ice::Int to, bool comp, const string& host, Ice::Int port) :
+ T(to, comp, host, port), _type(type)
+ {
+ }
+
+ virtual Ice::Short
+ type() const
+ {
+ return _type;
+ }
+
+ virtual bool
+ datagram() const
+ {
+ return false;
+ }
+
+ virtual bool
+ secure() const
+ {
+ return _type == IceSSL::EndpointType;
+ }
+
+private:
+
+ Ice::Short _type;
+};
+
+}
+
+IceInternal::StreamEndpointI::StreamEndpointI(const InstancePtr& instance, Ice::Short type, const string& ho, Int po,
+ Int ti, const string& conId, bool co) :
+ _instance(instance),
+ _type(type),
+ _host(ho),
+ _port(po),
+ _timeout(ti),
+ _connectionId(conId),
+ _compress(co)
+{
+}
+
+IceInternal::StreamEndpointI::StreamEndpointI(const InstancePtr& instance, Ice::Short type, const string& str,
+ bool oaEndpoint) :
+ _instance(instance),
+ _type(type),
+ _port(0),
+ _timeout(-1),
+ _compress(false)
+{
+ const string delim = " \t\n\r";
+
+ string::size_type beg;
+ string::size_type end = 0;
+
+ while(true)
+ {
+ beg = str.find_first_not_of(delim, end);
+ if(beg == string::npos)
+ {
+ break;
+ }
+
+ end = str.find_first_of(delim, beg);
+ if(end == string::npos)
+ {
+ end = str.length();
+ }
+
+ string option = str.substr(beg, end - beg);
+ if(option.length() != 2 || option[0] != '-')
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "expected an endpoint option but found `" + option + "' in endpoint `" + typeToString(_type) +
+ " " + str + "'";
+ throw ex;
+ }
+
+ string argument;
+ string::size_type argumentBeg = str.find_first_not_of(delim, end);
+ if(argumentBeg != string::npos && str[argumentBeg] != '-')
+ {
+ beg = argumentBeg;
+ end = str.find_first_of(delim, beg);
+ if(end == string::npos)
+ {
+ end = str.length();
+ }
+ argument = str.substr(beg, end - beg);
+ if(argument[0] == '\"' && argument[argument.size() - 1] == '\"')
+ {
+ argument = argument.substr(1, argument.size() - 2);
+ }
+ }
+
+ switch(option[1])
+ {
+ case 'h':
+ {
+ if(argument.empty())
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "no argument provided for -h option in endpoint `" + typeToString(_type) + " " +
+ str + "'";
+ throw ex;
+ }
+ const_cast<string&>(_host) = argument;
+ break;
+ }
+
+ case 'p':
+ {
+ if(argument.empty())
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "no argument provided for -p option in endpoint `" + typeToString(_type) + " " + str + "'";
+ throw ex;
+ }
+ istringstream p(argument);
+ if(!(p >> const_cast<Int&>(_port)) || !p.eof())
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "invalid port value `" + argument + "' in endpoint `" + typeToString(_type) + " " +
+ str + "'";
+ throw ex;
+ }
+ else if(_port < 0 || _port > 65535)
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "port value `" + argument + "' out of range in endpoint `" + typeToString(_type) + " " +
+ str + "'";
+ throw ex;
+ }
+ break;
+ }
+
+ case 't':
+ {
+ if(argument.empty())
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "no argument provided for -t option in endpoint `" + typeToString(_type) + " " + str + "'";
+ throw ex;
+ }
+ istringstream t(argument);
+ if(!(t >> const_cast<Int&>(_timeout)) || !t.eof())
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "invalid timeout value `" + argument + "' in endpoint `" + typeToString(_type) + " " +
+ str + "'";
+ throw ex;
+ }
+ break;
+ }
+
+ case 'z':
+ {
+ if(!argument.empty())
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "unexpected argument `" + argument + "' provided for -z option in `" +
+ typeToString(_type) + " " + str + "'";
+ throw ex;
+ }
+ const_cast<bool&>(_compress) = true;
+ break;
+ }
+
+ default:
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "unknown option `" + option + "' in `" + typeToString(_type) + " " + str + "'";
+ throw ex;
+ }
+ }
+ }
+
+ if(_host.empty())
+ {
+ const_cast<string&>(_host) = _instance->defaultsAndOverrides()->defaultHost;
+ }
+ else if(_host == "*")
+ {
+ if(oaEndpoint)
+ {
+ const_cast<string&>(_host) = string();
+ }
+ else
+ {
+ EndpointParseException ex(__FILE__, __LINE__);
+ ex.str = "`-h *' not valid for proxy endpoint `" + typeToString(_type) + " " + str + "'";
+ throw ex;
+ }
+ }
+}
+
+IceInternal::StreamEndpointI::StreamEndpointI(BasicStream* s, Ice::Short type) :
+ _instance(s->instance()),
+ _type(type),
+ _port(0),
+ _timeout(-1),
+ _compress(false)
+{
+ s->startReadEncaps();
+ s->read(const_cast<string&>(_host), false);
+ s->read(const_cast<Int&>(_port));
+ s->read(const_cast<Int&>(_timeout));
+ s->read(const_cast<bool&>(_compress));
+ s->endReadEncaps();
+}
+
+void
+IceInternal::StreamEndpointI::streamWrite(BasicStream* s) const
+{
+ s->write(_type);
+ s->startWriteEncaps();
+ s->write(_host, false);
+ s->write(_port);
+ s->write(_timeout);
+ s->write(_compress);
+ s->endWriteEncaps();
+}
+
+string
+IceInternal::StreamEndpointI::toString() const
+{
+ //
+ // WARNING: Certain features, such as proxy validation in Glacier2,
+ // depend on the format of proxy strings. Changes to toString() and
+ // methods called to generate parts of the reference string could break
+ // these features. Please review for all features that depend on the
+ // format of proxyToString() before changing this and related code.
+ //
+ ostringstream s;
+ s << "" + typeToString(_type) + "";
+
+ if(!_host.empty())
+ {
+ s << " -h ";
+ bool addQuote = _host.find(':') != string::npos;
+ if(addQuote)
+ {
+ s << "\"";
+ }
+ s << _host;
+ if(addQuote)
+ {
+ s << "\"";
+ }
+ }
+
+ s << " -p " << _port;
+ if(_timeout != -1)
+ {
+ s << " -t " << _timeout;
+ }
+ if(_compress)
+ {
+ s << " -z";
+ }
+ return s.str();
+}
+
+EndpointInfoPtr
+IceInternal::StreamEndpointI::getInfo() const
+{
+ switch(_type)
+ {
+ case TCPEndpointType:
+ return new InfoI<Ice::TCPEndpointInfo>(_type, _timeout, _compress, _host, _port);
+ case IceSSL::EndpointType:
+ return new InfoI<IceSSL::EndpointInfo>(_type, _timeout, _compress, _host, _port);
+ default:
+ assert(false);
+ return 0;
+ }
+}
+
+Short
+IceInternal::StreamEndpointI::type() const
+{
+ return _type;
+}
+
+Int
+IceInternal::StreamEndpointI::timeout() const
+{
+ return _timeout;
+}
+
+EndpointIPtr
+IceInternal::StreamEndpointI::timeout(Int timeout) const
+{
+ if(timeout == _timeout)
+ {
+ return const_cast<StreamEndpointI*>(this);
+ }
+ else
+ {
+ return new StreamEndpointI(_instance, _type, _host, _port, timeout, _connectionId, _compress);
+ }
+}
+
+EndpointIPtr
+IceInternal::StreamEndpointI::connectionId(const string& connectionId) const
+{
+ if(connectionId == _connectionId)
+ {
+ return const_cast<StreamEndpointI*>(this);
+ }
+ else
+ {
+ return new StreamEndpointI(_instance, _type, _host, _port, _timeout, connectionId, _compress);
+ }
+}
+
+bool
+IceInternal::StreamEndpointI::compress() const
+{
+ return _compress;
+}
+
+EndpointIPtr
+IceInternal::StreamEndpointI::compress(bool compress) const
+{
+ if(compress == _compress)
+ {
+ return const_cast<StreamEndpointI*>(this);
+ }
+ else
+ {
+ return new StreamEndpointI(_instance, _type, _host, _port, _timeout, _connectionId, compress);
+ }
+}
+
+bool
+IceInternal::StreamEndpointI::datagram() const
+{
+ return false;
+}
+
+bool
+IceInternal::StreamEndpointI::secure() const
+{
+ return _type == IceSSL::EndpointType;
+}
+
+TransceiverPtr
+IceInternal::StreamEndpointI::transceiver(EndpointIPtr& endp) const
+{
+ endp = const_cast<StreamEndpointI*>(this);
+ return 0;
+}
+
+vector<ConnectorPtr>
+IceInternal::StreamEndpointI::connectors() const
+{
+ return connectors(getAddresses(_host, _port, _instance->protocolSupport(), true));
+}
+
+void
+IceInternal::StreamEndpointI::connectors_async(const EndpointI_connectorsPtr& callback) const
+{
+ callback->connectors(connectors());
+}
+
+AcceptorPtr
+IceInternal::StreamEndpointI::acceptor(EndpointIPtr& endp, const string&) const
+{
+ StreamAcceptor* p = new StreamAcceptor(_instance, _type, _host, _port, _instance->protocolSupport());
+ endp = new StreamEndpointI(_instance, _type, _host, p->effectivePort(), _timeout, _connectionId, _compress);
+ return p;
+}
+
+
+vector<EndpointIPtr>
+IceInternal::StreamEndpointI::expand() const
+{
+ vector<EndpointIPtr> endps;
+ vector<string> hosts = getHostsForEndpointExpand(_host, _instance->protocolSupport(), false);
+ if(hosts.empty())
+ {
+ endps.push_back(const_cast<StreamEndpointI*>(this));
+ }
+ else
+ {
+ for(vector<string>::const_iterator p = hosts.begin(); p != hosts.end(); ++p)
+ {
+ endps.push_back(new StreamEndpointI(_instance, _type, *p, _port, _timeout, _connectionId, _compress));
+ }
+ }
+ return endps;
+}
+
+bool
+IceInternal::StreamEndpointI::equivalent(const EndpointIPtr& endpoint) const
+{
+ const StreamEndpointI* streamEndpointI = dynamic_cast<const StreamEndpointI*>(endpoint.get());
+ if(!streamEndpointI)
+ {
+ return false;
+ }
+ return streamEndpointI->_host == _host && streamEndpointI->_port == _port;
+}
+
+bool
+IceInternal::StreamEndpointI::operator==(const LocalObject& r) const
+{
+ const StreamEndpointI* p = dynamic_cast<const StreamEndpointI*>(&r);
+ if(!p)
+ {
+ return false;
+ }
+
+ if(this == p)
+ {
+ return true;
+ }
+
+ if(_type != p->_type)
+ {
+ return false;
+ }
+
+ if(_host != p->_host)
+ {
+ return false;
+ }
+
+ if(_port != p->_port)
+ {
+ return false;
+ }
+
+ if(_timeout != p->_timeout)
+ {
+ return false;
+ }
+
+ if(_connectionId != p->_connectionId)
+ {
+ return false;
+ }
+
+ if(_compress != p->_compress)
+ {
+ return false;
+ }
+
+ return true;
+}
+
+bool
+IceInternal::StreamEndpointI::operator<(const LocalObject& r) const
+{
+ const StreamEndpointI* p = dynamic_cast<const StreamEndpointI*>(&r);
+ if(!p)
+ {
+ const EndpointI* e = dynamic_cast<const EndpointI*>(&r);
+ if(!e)
+ {
+ return false;
+ }
+ return type() < e->type();
+ }
+
+ if(this == p)
+ {
+ return false;
+ }
+
+ if(_type < p->_type)
+ {
+ return true;
+ }
+ else if(p->_type < _type)
+ {
+ return false;
+ }
+
+ if(_host < p->_host)
+ {
+ return true;
+ }
+ else if (p->_host < _host)
+ {
+ return false;
+ }
+
+ if(_port < p->_port)
+ {
+ return true;
+ }
+ else if(p->_port < _port)
+ {
+ return false;
+ }
+
+ if(_timeout < p->_timeout)
+ {
+ return true;
+ }
+ else if(p->_timeout < _timeout)
+ {
+ return false;
+ }
+
+ if(_connectionId < p->_connectionId)
+ {
+ return true;
+ }
+ else if(p->_connectionId < _connectionId)
+ {
+ return false;
+ }
+
+ if(!_compress && p->_compress)
+ {
+ return true;
+ }
+ else if(p->_compress < _compress)
+ {
+ return false;
+ }
+
+ return false;
+}
+
+Ice::Int
+IceInternal::StreamEndpointI::hashInit() const
+{
+ Ice::Int h = 0;
+ hashAdd(h, _host);
+ hashAdd(h, _port);
+ hashAdd(h, _timeout);
+ hashAdd(h, _connectionId);
+ hashAdd(h, _compress);
+ return h;
+}
+
+vector<ConnectorPtr>
+IceInternal::StreamEndpointI::connectors(const vector<Address>& addresses) const
+{
+ vector<ConnectorPtr> connectors;
+ for(unsigned int i = 0; i < addresses.size(); ++i)
+ {
+ connectors.push_back(new StreamConnector(_instance, _type, addresses[i], _timeout, _connectionId));
+ }
+ return connectors;
+}
+
+IceInternal::StreamEndpointFactory::StreamEndpointFactory(const InstancePtr& instance, Ice::Short type)
+ : _instance(instance), _type(type)
+{
+}
+
+IceInternal::StreamEndpointFactory::~StreamEndpointFactory()
+{
+}
+
+Short
+IceInternal::StreamEndpointFactory::type() const
+{
+ return _type;
+}
+
+string
+IceInternal::StreamEndpointFactory::protocol() const
+{
+ return typeToString(_type);
+}
+
+EndpointIPtr
+IceInternal::StreamEndpointFactory::create(const std::string& str, bool oaEndpoint) const
+{
+ return new StreamEndpointI(_instance, _type, str, oaEndpoint);
+}
+
+EndpointIPtr
+IceInternal::StreamEndpointFactory::read(BasicStream* s) const
+{
+ return new StreamEndpointI(s, _type);
+}
+
+void
+IceInternal::StreamEndpointFactory::destroy()
+{
+ _instance = 0;
+}
diff --git a/cpp/src/Ice/winrt/StreamEndpointI.h b/cpp/src/Ice/winrt/StreamEndpointI.h
new file mode 100644
index 00000000000..6d102ff3647
--- /dev/null
+++ b/cpp/src/Ice/winrt/StreamEndpointI.h
@@ -0,0 +1,90 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 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 ICE_TCP_ENDPOINT_I_H
+#define ICE_TCP_ENDPOINT_I_H
+
+#include <IceUtil/Config.h>
+#include <Ice/EndpointI.h>
+#include <Ice/EndpointFactory.h>
+#include <Ice/Network.h> // for IceIternal::Address
+
+namespace IceInternal
+{
+
+class StreamEndpointI : public EndpointI
+{
+public:
+
+ StreamEndpointI(const InstancePtr&, Ice::Short, const std::string&, Ice::Int, Ice::Int, const std::string&, bool);
+ StreamEndpointI(const InstancePtr&, Ice::Short, const std::string&, bool);
+ StreamEndpointI(BasicStream*, Ice::Short);
+
+ virtual void streamWrite(BasicStream*) const;
+ virtual std::string toString() const;
+ virtual Ice::EndpointInfoPtr getInfo() const;
+ virtual Ice::Short type() const;
+ virtual Ice::Int timeout() const;
+ virtual EndpointIPtr timeout(Ice::Int) const;
+ virtual EndpointIPtr connectionId(const ::std::string&) const;
+ virtual bool compress() const;
+ virtual EndpointIPtr compress(bool) const;
+ virtual bool datagram() const;
+ virtual bool secure() const;
+ virtual TransceiverPtr transceiver(EndpointIPtr&) const;
+ virtual std::vector<ConnectorPtr> connectors() const;
+ virtual void connectors_async(const EndpointI_connectorsPtr&) const;
+ virtual AcceptorPtr acceptor(EndpointIPtr&, const std::string&) const;
+ virtual std::vector<EndpointIPtr> expand() const;
+ virtual bool equivalent(const EndpointIPtr&) const;
+
+ virtual bool operator==(const Ice::LocalObject&) const;
+ virtual bool operator<(const Ice::LocalObject&) const;
+
+private:
+
+ virtual ::Ice::Int hashInit() const;
+ virtual std::vector<ConnectorPtr> connectors(const std::vector<IceInternal::Address>&) const;
+
+ //
+ // All members are const, because endpoints are immutable.
+ //
+ const InstancePtr _instance;
+ const Ice::Short _type;
+ const std::string _host;
+ const Ice::Int _port;
+ const Ice::Int _timeout;
+ const std::string _connectionId;
+ const bool _compress;
+};
+
+class StreamEndpointFactory : public EndpointFactory
+{
+public:
+
+ virtual ~StreamEndpointFactory();
+
+ virtual Ice::Short type() const;
+ virtual std::string protocol() const;
+ virtual EndpointIPtr create(const std::string&, bool) const;
+ virtual EndpointIPtr read(BasicStream*) const;
+ virtual void destroy();
+
+private:
+
+ StreamEndpointFactory(const InstancePtr&, Ice::Short);
+ friend class Instance;
+
+ InstancePtr _instance;
+ const Ice::Short _type;
+};
+
+}
+
+#endif
diff --git a/cpp/src/Ice/winrt/StreamTransceiver.cpp b/cpp/src/Ice/winrt/StreamTransceiver.cpp
new file mode 100644
index 00000000000..9d7e47f53fb
--- /dev/null
+++ b/cpp/src/Ice/winrt/StreamTransceiver.cpp
@@ -0,0 +1,444 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 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/winrt/StreamTransceiver.h>
+#include <Ice/Connection.h>
+#include <Ice/Instance.h>
+#include <Ice/TraceLevels.h>
+#include <Ice/LoggerUtil.h>
+#include <Ice/Stats.h>
+#include <Ice/Buffer.h>
+#include <Ice/LocalException.h>
+#include <Ice/Properties.h>
+
+#include <IceSSL/EndpointInfo.h>
+#include <IceSSL/ConnectionInfo.h>
+
+using namespace std;
+using namespace Ice;
+using namespace IceInternal;
+
+using namespace Platform;
+using namespace Windows::Foundation;
+using namespace Windows::Storage::Streams;
+using namespace Windows::Networking;
+using namespace Windows::Networking::Sockets;
+
+namespace
+{
+
+AsyncOperationCompletedHandler<unsigned int>^
+createAsyncOperationCompletedHandler(SocketOperationCompletedHandler^ cb, SocketOperation op, AsyncInfo& info)
+{
+ return ref new AsyncOperationCompletedHandler<unsigned int>(
+ [=,&info] (IAsyncOperation<unsigned int>^ operation, Windows::Foundation::AsyncStatus status)
+ {
+ if(status != Windows::Foundation::AsyncStatus::Completed)
+ {
+ info.count = SOCKET_ERROR;
+ info.error = operation->ErrorCode.Value;
+ }
+ else
+ {
+ info.count = static_cast<int>(operation->GetResults());
+ }
+ cb(op);
+ });
+}
+
+}
+
+string
+IceInternal::typeToString(Ice::Short type)
+{
+ switch(type)
+ {
+ case TCPEndpointType:
+ return "tcp";
+ case IceSSL::EndpointType:
+ return "ssl";
+ default:
+ assert(false);
+ return "";
+ }
+}
+
+NativeInfoPtr
+IceInternal::StreamTransceiver::getNativeInfo()
+{
+ return this;
+}
+
+void
+IceInternal::StreamTransceiver::setCompletedHandler(SocketOperationCompletedHandler^ handler)
+{
+ _completedHandler = handler;
+ _readOperationCompletedHandler = createAsyncOperationCompletedHandler(handler, SocketOperationRead, _read);
+ _writeOperationCompletedHandler = createAsyncOperationCompletedHandler(handler, SocketOperationWrite, _write);
+}
+
+SocketOperation
+IceInternal::StreamTransceiver::initialize()
+{
+ if(_state == StateNeedConnect)
+ {
+ _state = StateConnectPending;
+ return SocketOperationConnect;
+ }
+ else if(_state <= StateConnectPending)
+ {
+ try
+ {
+ if(_write.count == SOCKET_ERROR)
+ {
+ checkConnectErrorCode(__FILE__, __LINE__, _write.error, _connectAddr.host);
+ }
+ _state = StateConnected;
+ _desc = fdToString(_fd);
+ }
+ catch(const Ice::LocalException& ex)
+ {
+ if(_traceLevels->network >= 2)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "failed to establish " << typeToString(_type) << " connection\n";
+ out << "local address: <not available>\n";
+ out << "remote address: " << addrToString(_connectAddr) << "\n" << ex;
+ }
+ throw;
+ }
+
+ if(_traceLevels->network >= 1)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "" << typeToString(_type) << " connection established\n" << _desc;
+ }
+ }
+ assert(_state == StateConnected);
+ return SocketOperationNone;
+}
+
+void
+IceInternal::StreamTransceiver::close()
+{
+ if(_state == StateConnected && _traceLevels->network >= 1)
+ {
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "closing " << typeToString(_type) << " connection\n" << toString();
+ }
+
+ assert(_fd != INVALID_SOCKET);
+ try
+ {
+ closeSocket(_fd);
+ _fd = INVALID_SOCKET;
+ }
+ catch(const SocketException&)
+ {
+ _fd = INVALID_SOCKET;
+ throw;
+ }
+}
+
+bool
+IceInternal::StreamTransceiver::write(Buffer& buf)
+{
+ return false;
+}
+
+bool
+IceInternal::StreamTransceiver::read(Buffer& buf)
+{
+ return false;
+}
+
+bool
+IceInternal::StreamTransceiver::startWrite(Buffer& buf)
+{
+ if(_state < StateConnected)
+ {
+ try
+ {
+ IAsyncAction^ action = safe_cast<StreamSocket^>(_fd)->ConnectAsync(
+ _connectAddr.host,
+ _connectAddr.port,
+ _type == IceSSL::EndpointType ? SocketProtectionLevel::Ssl : SocketProtectionLevel::PlainSocket);
+
+ if(!checkIfErrorOrCompleted(SocketOperationConnect, action))
+ {
+ action->Completed = ref new AsyncActionCompletedHandler(
+ [=] (IAsyncAction^ info, Windows::Foundation::AsyncStatus status)
+ {
+ if(status != Windows::Foundation::AsyncStatus::Completed)
+ {
+ _write.count = SOCKET_ERROR;
+ _write.error = info->ErrorCode.Value;
+ }
+ else
+ {
+ _write.count = 0;
+ }
+ _completedHandler(SocketOperationConnect);
+ });
+ }
+ }
+ catch(Platform::Exception^ ex)
+ {
+ checkConnectErrorCode(__FILE__, __LINE__, ex->HResult, _connectAddr.host);
+ }
+ return false;
+ }
+
+ assert(!buf.b.empty());
+ assert(buf.i != buf.b.end());
+
+ int packetSize = static_cast<int>(buf.b.end() - buf.i);
+ if(_maxSendPacketSize > 0 && packetSize > _maxSendPacketSize)
+ {
+ packetSize = _maxSendPacketSize;
+ }
+ assert(packetSize > 0);
+ _writer->WriteBytes(ref new Array<unsigned char>(&*buf.i, packetSize));
+ try
+ {
+ DataWriterStoreOperation^ operation = _writer->StoreAsync();
+ if(checkIfErrorOrCompleted(SocketOperationWrite, operation))
+ {
+ _write.count = operation->GetResults();
+ }
+ else
+ {
+ operation->Completed = _writeOperationCompletedHandler;
+ }
+ }
+ catch(Platform::Exception^ ex)
+ {
+ checkErrorCode(__FILE__, __LINE__, ex->HResult);
+ }
+ return packetSize == static_cast<int>(buf.b.end() - buf.i);
+}
+
+void
+IceInternal::StreamTransceiver::finishWrite(Buffer& buf)
+{
+ if(_state < StateConnected)
+ {
+ return;
+ }
+
+ if(_write.count == SOCKET_ERROR)
+ {
+ checkErrorCode(__FILE__, __LINE__, _write.error);
+ }
+
+ if(_traceLevels->network >= 3)
+ {
+ int packetSize = static_cast<int>(buf.b.end() - buf.i);
+ if(_maxSendPacketSize > 0 && packetSize > _maxSendPacketSize)
+ {
+ packetSize = _maxSendPacketSize;
+ }
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "sent " << _write.count << " of " << packetSize << " bytes via " << typeToString(_type) << "\n"
+ << toString();
+ }
+
+ if(_stats)
+ {
+ _stats->bytesSent(type(), _write.count);
+ }
+ buf.i += _write.count;
+}
+
+void
+IceInternal::StreamTransceiver::startRead(Buffer& buf)
+{
+ int packetSize = static_cast<int>(buf.b.end() - buf.i);
+ if(_maxReceivePacketSize > 0 && packetSize > _maxReceivePacketSize)
+ {
+ packetSize = _maxReceivePacketSize;
+ }
+ assert(!buf.b.empty() && buf.i != buf.b.end());
+
+ try
+ {
+ DataReaderLoadOperation^ operation = _reader->LoadAsync(packetSize);
+ if(checkIfErrorOrCompleted(SocketOperationRead, operation))
+ {
+ _read.count = operation->GetResults();
+ }
+ else
+ {
+ operation->Completed = _readOperationCompletedHandler;
+ }
+ }
+ catch(Platform::Exception^ ex)
+ {
+ checkErrorCode(__FILE__, __LINE__, ex->HResult);
+ }
+}
+
+void
+IceInternal::StreamTransceiver::finishRead(Buffer& buf)
+{
+ if(_read.count == SOCKET_ERROR)
+ {
+ checkErrorCode(__FILE__, __LINE__, _read.error);
+ }
+ else if(_read.count == 0)
+ {
+ ConnectionLostException ex(__FILE__, __LINE__);
+ ex.error = 0;
+ throw ex;
+ }
+
+ try
+ {
+ auto data = ref new Platform::Array<unsigned char>(_read.count);
+ _reader->ReadBytes(data);
+ memcpy(&*buf.i, data->Data, _read.count);
+ }
+ catch(Platform::Exception^ ex)
+ {
+ checkErrorCode(__FILE__, __LINE__, ex->HResult);
+ }
+
+ if(_traceLevels->network >= 3)
+ {
+ int packetSize = static_cast<int>(buf.b.end() - buf.i);
+ if(_maxReceivePacketSize > 0 && packetSize > _maxReceivePacketSize)
+ {
+ packetSize = _maxReceivePacketSize;
+ }
+ Trace out(_logger, _traceLevels->networkCat);
+ out << "received " << _read.count << " of " << packetSize << " bytes via " << typeToString(_type) << "\n"
+ << toString();
+ }
+
+ if(_stats)
+ {
+ _stats->bytesReceived(type(), static_cast<Int>(_read.count));
+ }
+
+ buf.i += _read.count;
+}
+
+string
+IceInternal::StreamTransceiver::type() const
+{
+ return "tcp";
+}
+
+string
+IceInternal::StreamTransceiver::toString() const
+{
+ return _desc;
+}
+
+Ice::ConnectionInfoPtr
+IceInternal::StreamTransceiver::getInfo() const
+{
+ assert(_fd != INVALID_SOCKET);
+ Ice::IPConnectionInfoPtr info;
+ if(_type == IceSSL::EndpointType)
+ {
+ info = new IceSSL::ConnectionInfo();
+ }
+ else
+ {
+ info = new Ice::TCPConnectionInfo();
+ }
+ fdToAddressAndPort(_fd, info->localAddress, info->localPort, info->remoteAddress, info->remotePort);
+ return info;
+}
+
+void
+IceInternal::StreamTransceiver::checkSendSize(const Buffer& buf, size_t messageSizeMax)
+{
+ if(buf.b.size() > messageSizeMax)
+ {
+ Ex::throwMemoryLimitException(__FILE__, __LINE__, buf.b.size(), messageSizeMax);
+ }
+}
+
+IceInternal::StreamTransceiver::StreamTransceiver(const InstancePtr& instance,
+ Ice::Short type,
+ SOCKET fd,
+ bool connected) :
+ NativeInfo(fd),
+ _traceLevels(instance->traceLevels()),
+ _type(type),
+ _logger(instance->initializationData().logger),
+ _stats(instance->initializationData().stats),
+ _state(connected ? StateConnected : StateNeedConnect),
+ _desc(connected ? fdToString(_fd) : string())
+{
+ StreamSocket^ streamSocket = safe_cast<StreamSocket^>(_fd);
+ _writer = ref new DataWriter(streamSocket->OutputStream);
+ _reader = ref new DataReader(streamSocket->InputStream);
+ _reader->InputStreamOptions = InputStreamOptions::Partial;
+
+ Ice::PropertiesPtr properties = instance->initializationData().properties;
+ setTcpBufSize(_fd, properties, _logger);
+
+ _maxSendPacketSize = streamSocket->Control->OutboundBufferSizeInBytes / 2;
+ if(_maxSendPacketSize < 512)
+ {
+ _maxSendPacketSize = 0;
+ }
+
+ _maxReceivePacketSize = properties->getPropertyAsIntWithDefault("Ice.TCP.RcvSize", 128 * 1024);
+}
+
+IceInternal::StreamTransceiver::~StreamTransceiver()
+{
+ assert(_fd == INVALID_SOCKET);
+}
+
+void
+IceInternal::StreamTransceiver::connect(const Address& addr)
+{
+ _connectAddr = addr;
+}
+
+bool
+IceInternal::StreamTransceiver::checkIfErrorOrCompleted(SocketOperation op, IAsyncInfo^ info)
+{
+ //
+ // NOTE: It's important to only check for info->Status once as it
+ // might change during the checks below (the Status can be changed
+ // by the Windows thread pool concurrently).
+ //
+ // We consider that a canceled async status is the same as an
+ // error. A canceled async status can occur if there's a timeout
+ // and the socket is closed.
+ //
+ Windows::Foundation::AsyncStatus status = info->Status;
+ if(status == Windows::Foundation::AsyncStatus::Completed)
+ {
+ _completedHandler(op);
+ return true;
+ }
+ else if (status == Windows::Foundation::AsyncStatus::Started)
+ {
+ return false;
+ }
+ else
+ {
+ if(_state < StateConnected)
+ {
+ checkConnectErrorCode(__FILE__, __LINE__, info->ErrorCode.Value, _connectAddr.host);
+ }
+ else
+ {
+ checkErrorCode(__FILE__, __LINE__, info->ErrorCode.Value);
+ }
+ return true; // Prevent compiler warning.
+ }
+}
diff --git a/cpp/src/Ice/winrt/StreamTransceiver.h b/cpp/src/Ice/winrt/StreamTransceiver.h
new file mode 100644
index 00000000000..11d27eee6ff
--- /dev/null
+++ b/cpp/src/Ice/winrt/StreamTransceiver.h
@@ -0,0 +1,93 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 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 ICE_STREAM_TRANSCEIVER_H
+#define ICE_STREAM_TRANSCEIVER_H
+
+#include <Ice/InstanceF.h>
+#include <Ice/TraceLevelsF.h>
+#include <Ice/LoggerF.h>
+#include <Ice/StatsF.h>
+#include <Ice/Transceiver.h>
+#include <Ice/Network.h>
+
+namespace IceInternal
+{
+
+class StreamConnector;
+class StreamAcceptor;
+
+std::string typeToString(Ice::Short);
+
+class StreamTransceiver : public Transceiver, public NativeInfo
+{
+ enum State
+ {
+ StateNeedConnect,
+ StateConnectPending,
+ StateConnected
+ };
+
+public:
+
+ virtual NativeInfoPtr getNativeInfo();
+ virtual void setCompletedHandler(SocketOperationCompletedHandler^);
+
+ virtual SocketOperation initialize();
+ virtual void close();
+ virtual bool write(Buffer&);
+ virtual bool read(Buffer&);
+
+ virtual bool startWrite(Buffer&);
+ virtual void finishWrite(Buffer&);
+ virtual void startRead(Buffer&);
+ virtual void finishRead(Buffer&);
+
+ virtual std::string type() const;
+ virtual std::string toString() const;
+ virtual Ice::ConnectionInfoPtr getInfo() const;
+ virtual void checkSendSize(const Buffer&, size_t);
+
+private:
+
+ StreamTransceiver(const InstancePtr&, Ice::Short, SOCKET, bool);
+ virtual ~StreamTransceiver();
+
+ void connect(const Address&);
+
+ bool checkIfErrorOrCompleted(SocketOperation, Windows::Foundation::IAsyncInfo^);
+
+ friend class StreamConnector;
+ friend class StreamAcceptor;
+
+ const TraceLevelsPtr _traceLevels;
+ const Ice::Short _type;
+ const Ice::LoggerPtr _logger;
+ const Ice::StatsPtr _stats;
+
+ State _state;
+ std::string _desc;
+ Address _connectAddr;
+
+ AsyncInfo _read;
+ AsyncInfo _write;
+ int _maxSendPacketSize;
+ int _maxReceivePacketSize;
+
+ Windows::Storage::Streams::DataReader^ _reader;
+ Windows::Storage::Streams::DataWriter^ _writer;
+
+ SocketOperationCompletedHandler^ _completedHandler;
+ Windows::Foundation::AsyncOperationCompletedHandler<unsigned int>^ _readOperationCompletedHandler;
+ Windows::Foundation::AsyncOperationCompletedHandler<unsigned int>^ _writeOperationCompletedHandler;
+};
+
+}
+
+#endif
diff --git a/cpp/src/IceGridLib/winrt/.depend.mak b/cpp/src/IceGridLib/winrt/.depend.mak
new file mode 100644
index 00000000000..0336ab8d60b
--- /dev/null
+++ b/cpp/src/IceGridLib/winrt/.depend.mak
@@ -0,0 +1,21 @@
+$(ARCH)\$(CONFIG)\Admin$(OBJEXT): ..\Admin.cpp "$(includedir)\IceGrid\Admin.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\Glacier2\Session.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\IceGrid\Exception.h" "$(includedir)\IceGrid\Descriptor.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Locator$(OBJEXT): ..\Locator.cpp "$(includedir)\IceGrid\Locator.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\Locator.h" "$(includedir)\Ice\ProcessF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Query$(OBJEXT): ..\Query.cpp "$(includedir)\IceGrid\Query.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceGrid\Exception.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Exception$(OBJEXT): ..\Exception.cpp "$(includedir)\IceGrid\Exception.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Descriptor$(OBJEXT): ..\Descriptor.cpp "$(includedir)\IceGrid\Descriptor.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\FileParser$(OBJEXT): ..\FileParser.cpp "$(includedir)\IceGrid\FileParser.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\IceGrid\Admin.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\Glacier2\Session.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\IceGrid\Exception.h" "$(includedir)\IceGrid\Descriptor.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Observer$(OBJEXT): ..\Observer.cpp "$(includedir)\IceGrid\Observer.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Glacier2\Session.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\IceGrid\Exception.h" "$(includedir)\IceGrid\Descriptor.h" "$(includedir)\IceGrid\Admin.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Session$(OBJEXT): ..\Session.cpp "$(includedir)\IceGrid\Session.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Glacier2\Session.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\IceGrid\Exception.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Registry$(OBJEXT): ..\Registry.cpp "$(includedir)\IceGrid\Registry.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\IncomingAsync.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\IceGrid\Exception.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\IceGrid\Session.h" "$(includedir)\Glacier2\Session.h" "$(includedir)\Glacier2\SSLInfo.h" "$(includedir)\IceGrid\Admin.h" "$(includedir)\Ice\Properties.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\IceGrid\Descriptor.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\UserAccountMapper$(OBJEXT): ..\UserAccountMapper.cpp "$(includedir)\IceGrid\UserAccountMapper.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(HDIR)\Admin.h ..\Admin.cpp: "$(slicedir)\IceGrid\Admin.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\Properties.ice" "$(slicedir)\Ice\SliceChecksumDict.ice" "$(slicedir)\Glacier2\Session.ice" "$(slicedir)\Glacier2\SSLInfo.ice" "$(slicedir)\IceGrid\Exception.ice" "$(slicedir)\IceGrid\Descriptor.ice" "$(SLICE2CPP)"
+$(HDIR)\Exception.h ..\Exception.cpp: "$(slicedir)\IceGrid\Exception.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(HDIR)\FileParser.h ..\FileParser.cpp: "$(slicedir)\IceGrid\FileParser.ice" "$(slicedir)\IceGrid\Admin.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\Properties.ice" "$(slicedir)\Ice\SliceChecksumDict.ice" "$(slicedir)\Glacier2\Session.ice" "$(slicedir)\Glacier2\SSLInfo.ice" "$(slicedir)\IceGrid\Exception.ice" "$(slicedir)\IceGrid\Descriptor.ice" "$(SLICE2CPP)"
+$(HDIR)\Locator.h ..\Locator.cpp: "$(slicedir)\IceGrid\Locator.ice" "$(slicedir)\Ice\Locator.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\ProcessF.ice" "$(SLICE2CPP)"
+$(HDIR)\Query.h ..\Query.cpp: "$(slicedir)\IceGrid\Query.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\IceGrid\Exception.ice" "$(SLICE2CPP)"
+$(HDIR)\Registry.h ..\Registry.cpp: "$(slicedir)\IceGrid\Registry.ice" "$(slicedir)\IceGrid\Exception.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\IceGrid\Session.ice" "$(slicedir)\Glacier2\Session.ice" "$(slicedir)\Glacier2\SSLInfo.ice" "$(slicedir)\IceGrid\Admin.ice" "$(slicedir)\Ice\Properties.ice" "$(slicedir)\Ice\SliceChecksumDict.ice" "$(slicedir)\IceGrid\Descriptor.ice" "$(SLICE2CPP)"
+$(HDIR)\Session.h ..\Session.cpp: "$(slicedir)\IceGrid\Session.ice" "$(slicedir)\Glacier2\Session.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Glacier2\SSLInfo.ice" "$(slicedir)\IceGrid\Exception.ice" "$(SLICE2CPP)"
+$(HDIR)\Observer.h ..\Observer.cpp: "$(slicedir)\IceGrid\Observer.ice" "$(slicedir)\Glacier2\Session.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Glacier2\SSLInfo.ice" "$(slicedir)\IceGrid\Exception.ice" "$(slicedir)\IceGrid\Descriptor.ice" "$(slicedir)\IceGrid\Admin.ice" "$(slicedir)\Ice\Properties.ice" "$(slicedir)\Ice\SliceChecksumDict.ice" "$(SLICE2CPP)"
+$(HDIR)\Descriptor.h ..\Descriptor.cpp: "$(slicedir)\IceGrid\Descriptor.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(SLICE2CPP)"
+$(HDIR)\UserAccountMapper.h ..\UserAccountMapper.cpp: "$(slicedir)\IceGrid\UserAccountMapper.ice" "$(SLICE2CPP)"
+
diff --git a/cpp/src/IceGridLib/winrt/Makefile.mak b/cpp/src/IceGridLib/winrt/Makefile.mak
new file mode 100644
index 00000000000..a839fa32c32
--- /dev/null
+++ b/cpp/src/IceGridLib/winrt/Makefile.mak
@@ -0,0 +1,81 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2012 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.
+#
+# **********************************************************************
+
+top_srcdir = ..\..\..
+LIBNAME = $(SDK_LIBRARY_PATH)\icegrid.lib
+TARGETS = $(LIBNAME)
+SOURCE_DIR = ..
+
+TARGETS = $(LIBNAME)
+
+OBJS = $(ARCH)\$(CONFIG)\Admin.obj \
+ $(ARCH)\$(CONFIG)\Locator.obj \
+ $(ARCH)\$(CONFIG)\Query.obj \
+ $(ARCH)\$(CONFIG)\Exception.obj \
+ $(ARCH)\$(CONFIG)\Descriptor.obj \
+ $(ARCH)\$(CONFIG)\FileParser.obj \
+ $(ARCH)\$(CONFIG)\Observer.obj \
+ $(ARCH)\$(CONFIG)\Session.obj \
+ $(ARCH)\$(CONFIG)\Registry.obj \
+ $(ARCH)\$(CONFIG)\UserAccountMapper.obj
+
+SLICE_SRCS = $(SDIR)/Admin.ice \
+ $(SDIR)/Exception.ice \
+ $(SDIR)/FileParser.ice \
+ $(SDIR)/Locator.ice \
+ $(SDIR)/Query.ice \
+ $(SDIR)/Registry.ice \
+ $(SDIR)/Session.ice \
+ $(SDIR)/Observer.ice \
+ $(SDIR)/Descriptor.ice \
+ $(SDIR)/UserAccountMapper.ice
+
+SRCS = $(OBJS:.obj=.cpp)
+SRCS = $(SRCS:x86\=)
+SRCS = $(SRCS:x64\=)
+SRCS = $(SRCS:Retail\=..\)
+SRCS = $(SRCS:Debug\=..\)
+
+HDIR = $(headerdir)\IceGrid
+SDIR = $(slicedir)\IceGrid
+
+SLICE2CPPFLAGS = --checksum --ice --include-dir IceGrid --dll-export ICE_GRID_API
+CPPFLAGS = -I..\.. $(CPPFLAGS)
+
+!include $(top_srcdir)\config\Make.rules.mak
+
+RES_FILE = $(SOURCE_DIR)\IceGrid.res
+
+$(LIBNAME): $(OBJS) $(RES_FILE) sdks
+ $(AR) $(ARFLAGS) $(OBJS) /out:$(LIBNAME)
+
+depend::
+ del /q .depend.mak
+
+.cpp.depend:
+ $(CXX) /Fo$(ARCH)\$(CONFIG)\ /Fd$(ARCH)\$(CONFIG)\ /Zs /showIncludes $(CXXFLAGS) $(CPPFLAGS) $< 2>&1 | python.exe $(ice_dir)/config/makedepend-winrt.py $<
+
+depend:: $(ARCH)\$(CONFIG) $(SLICE_SRCS) $(SRCS) $(SRCS_DEPEND)
+ @if not "$(SLICE_SRCS)" == "" \
+ $(SLICE2CPP) --depend $(SLICE2CPPFLAGS) $(SLICE_SRCS) | python.exe $(ice_dir)\config\makedepend-winrt.py
+
+clean::
+ -del /q $(SOURCE_DIR)\FileParser.cpp $(HDIR)\FileParser.h
+ -del /q $(SOURCE_DIR)\Admin.cpp $(HDIR)\Admin.h
+ -del /q $(SOURCE_DIR)\Descriptor.cpp $(HDIR)\Descriptor.h
+ -del /q $(SOURCE_DIR)\Exception.cpp $(HDIR)\Exception.h
+ -del /q $(SOURCE_DIR)\Locator.cpp $(HDIR)\Locator.h
+ -del /q $(SOURCE_DIR)\Observer.cpp $(HDIR)\Observer.h
+ -del /q $(SOURCE_DIR)\Query.cpp $(HDIR)\Query.h
+ -del /q $(SOURCE_DIR)\Session.cpp $(HDIR)\Session.h
+ -del /q $(SOURCE_DIR)\Registry.cpp $(HDIR)\Registry.h
+ -del /q $(SOURCE_DIR)\UserAccountMapper.cpp $(HDIR)\UserAccountMapper.h
+ -del /q $(RES_FILE)
+
+!include .depend.mak
diff --git a/cpp/src/IcePatch2Lib/ClientUtil.cpp b/cpp/src/IcePatch2Lib/ClientUtil.cpp
index 87284388e8e..4196200775b 100755
--- a/cpp/src/IcePatch2Lib/ClientUtil.cpp
+++ b/cpp/src/IcePatch2Lib/ClientUtil.cpp
@@ -14,7 +14,6 @@
#define ICE_PATCH2_API_EXPORTS
#include <IcePatch2/ClientUtil.h>
#include <IcePatch2/Util.h>
-#include <IcePatch2/FileServerI.h>
#include <list>
#include <iterator>
diff --git a/cpp/src/IceSSL/AcceptorI.cpp b/cpp/src/IceSSL/AcceptorI.cpp
index 295eb0f8c3c..96fc56f2d19 100644
--- a/cpp/src/IceSSL/AcceptorI.cpp
+++ b/cpp/src/IceSSL/AcceptorI.cpp
@@ -110,7 +110,7 @@ IceSSL::AcceptorI::startAccept()
}
assert(_acceptFd == INVALID_SOCKET);
- _acceptFd = IceInternal::createSocket(false, _addr.ss_family);
+ _acceptFd = IceInternal::createSocket(false, _addr);
const int sz = static_cast<int>(_acceptBuf.size() / 2);
if(!AcceptEx(_fd, _acceptFd, &_acceptBuf[0], 0, sz, sz, &_info.count,
#if defined(_MSC_VER) && (_MSC_VER < 1300) // COMPILER FIX: VC60
@@ -226,7 +226,7 @@ IceSSL::AcceptorI::AcceptorI(const InstancePtr& instance, const string& adapterN
_backlog = instance->communicator()->getProperties()->getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511);
#endif
- _fd = IceInternal::createSocket(false, _addr.ss_family);
+ _fd = IceInternal::createSocket(false, _addr);
#ifdef ICE_USE_IOCP
_acceptBuf.resize((sizeof(sockaddr_storage) + 16) * 2);
#endif
diff --git a/cpp/src/IceSSL/ConnectorI.cpp b/cpp/src/IceSSL/ConnectorI.cpp
index 2a13e5c1353..c881e5574f6 100644
--- a/cpp/src/IceSSL/ConnectorI.cpp
+++ b/cpp/src/IceSSL/ConnectorI.cpp
@@ -42,7 +42,7 @@ IceSSL::ConnectorI::connect()
try
{
- return new TransceiverI(_instance, IceInternal::createSocket(false, _addr.ss_family), _host, _addr);
+ return new TransceiverI(_instance, IceInternal::createSocket(false, _addr), _host, _addr);
}
catch(const Ice::LocalException& ex)
{
diff --git a/cpp/src/IceStormLib/winrt/.depend.mak b/cpp/src/IceStormLib/winrt/.depend.mak
new file mode 100644
index 00000000000..dda5c3c726e
--- /dev/null
+++ b/cpp/src/IceStormLib/winrt/.depend.mak
@@ -0,0 +1,3 @@
+$(ARCH)\$(CONFIG)\IceStorm$(OBJEXT): ..\IceStorm.cpp "$(includedir)\IceStorm\IceStorm.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Handle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyF.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\Proxy.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\Ice\ProxyFactoryF.h" "$(includedir)\Ice\ConnectionIF.h" "$(includedir)\Ice\RequestHandlerF.h" "$(includedir)\Ice\EndpointIF.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\Ice\UndefSysMacros.h" "$(includedir)\Ice\EndpointTypes.h" "$(includedir)\Ice\ObjectAdapterF.h" "$(includedir)\Ice\ReferenceF.h" "$(includedir)\Ice\OutgoingAsync.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\Ice\OutgoingAsyncF.h" "$(includedir)\Ice\InstanceF.h" "$(includedir)\Ice\CommunicatorF.h" "$(includedir)\Ice\Current.h" "$(includedir)\Ice\ConnectionF.h" "$(includedir)\Ice\Identity.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\Outgoing.h" "$(includedir)\Ice\Incoming.h" "$(includedir)\Ice\ServantLocatorF.h" "$(includedir)\Ice\ServantManagerF.h" "$(includedir)\Ice\Direct.h" "$(includedir)\Ice\FactoryTableInit.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\SliceChecksumDict.h" "$(includedir)\Ice\LocalException.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\Stream.h" "$(includedir)\Ice\ObjectFactory.h" "$(includedir)\Ice\SliceChecksums.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(HDIR)\IceStorm.h ..\IceStorm.cpp: "$(slicedir)\IceStorm\IceStorm.ice" "$(slicedir)\Ice\SliceChecksumDict.ice" "$(SLICE2CPP)"
+
diff --git a/cpp/src/IceStormLib/winrt/Makefile.mak b/cpp/src/IceStormLib/winrt/Makefile.mak
new file mode 100644
index 00000000000..f51ea21a99d
--- /dev/null
+++ b/cpp/src/IceStormLib/winrt/Makefile.mak
@@ -0,0 +1,55 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2012 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.
+#
+# **********************************************************************
+
+top_srcdir = ..\..\..
+LIBNAME = $(SDK_LIBRARY_PATH)\icestorm.lib
+TARGETS = $(LIBNAME)
+SOURCE_DIR = ..
+
+TARGETS = $(LIBNAME)
+
+OBJS = $(ARCH)\$(CONFIG)\IceStorm.obj
+
+SLICE_SRCS = $(SDIR)/IceStorm.ice
+
+SRCS = $(OBJS:.obj=.cpp)
+SRCS = $(SRCS:x86\=)
+SRCS = $(SRCS:x64\=)
+SRCS = $(SRCS:Retail\=..\)
+SRCS = $(SRCS:Debug\=..\)
+
+HDIR = $(headerdir)\IceStorm
+SDIR = $(slicedir)\IceStorm
+
+CPPFLAGS = -I..\.. -DWIN32_LEAN_AND_MEAN
+ICECPPFLAGS = -I..
+SLICE2CPPFLAGS = --ice --include-dir IceStorm --checksum --dll-export ICE_STORM_LIB_API
+
+!include $(top_srcdir)\config\Make.rules.mak
+
+RES_FILE = $(SOURCE_DIR)\IceStorm.res
+
+$(LIBNAME): $(OBJS) $(RES_FILE) sdks
+ $(AR) $(ARFLAGS) $(OBJS) /out:$(LIBNAME)
+
+depend::
+ del /q .depend.mak
+
+.cpp.depend:
+ $(CXX) /Fo$(ARCH)\$(CONFIG)\ /Fd$(ARCH)\$(CONFIG)\ /Zs /showIncludes $(CXXFLAGS) $(CPPFLAGS) $< 2>&1 | python.exe $(ice_dir)/config/makedepend-winrt.py $<
+
+depend:: $(ARCH)\$(CONFIG) $(SLICE_SRCS) $(SRCS) $(SRCS_DEPEND)
+ @if not "$(SLICE_SRCS)" == "" \
+ $(SLICE2CPP) --depend $(SLICE2CPPFLAGS) $(SLICE_SRCS) | python.exe $(ice_dir)\config\makedepend-winrt.py
+
+clean::
+ -del /q $(SOURCE_DIR)\IceStorm.cpp $(HDIR)\IceStorm.h
+ -del /q $(RES_FILE)
+
+!include .depend.mak
diff --git a/cpp/src/IceUtil/Cond.cpp b/cpp/src/IceUtil/Cond.cpp
index 22330c25916..a0f71460f1e 100644
--- a/cpp/src/IceUtil/Cond.cpp
+++ b/cpp/src/IceUtil/Cond.cpp
@@ -17,7 +17,11 @@
IceUtilInternal::Semaphore::Semaphore(long initial)
{
+#ifndef ICE_OS_WINRT
_sem = CreateSemaphore(0, initial, 0x7fffffff, 0);
+#else
+ _sem = CreateSemaphoreExW(0, initial, 0x7fffffff, 0, 0, SEMAPHORE_ALL_ACCESS);
+#endif
if(_sem == INVALID_HANDLE_VALUE)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
@@ -32,7 +36,11 @@ IceUtilInternal::Semaphore::~Semaphore()
void
IceUtilInternal::Semaphore::wait() const
{
+#ifndef ICE_OS_WINRT
DWORD rc = WaitForSingleObject(_sem, INFINITE);
+#else
+ DWORD rc = WaitForSingleObjectEx(_sem, INFINITE, true);
+#endif
if(rc != WAIT_OBJECT_0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
@@ -48,7 +56,11 @@ IceUtilInternal::Semaphore::timedWait(const IceUtil::Time& timeout) const
throw IceUtil::InvalidTimeoutException(__FILE__, __LINE__, timeout);
}
+#ifndef ICE_OS_WINRT
DWORD rc = WaitForSingleObject(_sem, static_cast<DWORD>(msTimeout));
+#else
+ DWORD rc = WaitForSingleObjectEx(_sem, static_cast<DWORD>(msTimeout), true);
+#endif
if(rc != WAIT_TIMEOUT && rc != WAIT_OBJECT_0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
diff --git a/cpp/src/IceUtil/CountDownLatch.cpp b/cpp/src/IceUtil/CountDownLatch.cpp
index abc3525f0c9..05e6be3d5df 100644
--- a/cpp/src/IceUtil/CountDownLatch.cpp
+++ b/cpp/src/IceUtil/CountDownLatch.cpp
@@ -19,7 +19,11 @@ IceUtilInternal::CountDownLatch::CountDownLatch(int count) :
}
#ifdef _WIN32
+# ifndef ICE_OS_WINRT
_event = CreateEvent(0, TRUE, FALSE, 0);
+# else
+ _event = CreateEventExW(0, 0, CREATE_EVENT_MANUAL_RESET, SEMAPHORE_ALL_ACCESS);
+# endif
if(_event == 0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
@@ -58,7 +62,11 @@ IceUtilInternal::CountDownLatch::await() const
#ifdef _WIN32
while(InterlockedExchangeAdd(&_count, 0) > 0)
{
+# ifndef ICE_OS_WINRT
DWORD rc = WaitForSingleObject(_event, INFINITE);
+# else
+ DWORD rc = WaitForSingleObjectEx(_event, INFINITE, false);
+# endif
assert(rc == WAIT_OBJECT_0 || rc == WAIT_FAILED);
if(rc == WAIT_FAILED)
diff --git a/cpp/src/IceUtil/FileUtil.cpp b/cpp/src/IceUtil/FileUtil.cpp
index b7fec74f7ea..2ecc670051f 100644
--- a/cpp/src/IceUtil/FileUtil.cpp
+++ b/cpp/src/IceUtil/FileUtil.cpp
@@ -151,6 +151,7 @@ IceUtilInternal::open(const string& path, int flags)
}
}
+#ifndef ICE_OS_WINRT
int
IceUtilInternal::getcwd(string& cwd)
{
@@ -162,6 +163,7 @@ IceUtilInternal::getcwd(string& cwd)
cwd = IceUtil::wstringToString(cwdbuf);
return 0;
}
+#endif
int
IceUtilInternal::unlink(const string& path)
@@ -183,8 +185,15 @@ IceUtilInternal::FileLock::FileLock(const std::string& path) :
_fd(INVALID_HANDLE_VALUE),
_path(path)
{
+#ifndef ICE_OS_WINRT
_fd = ::CreateFileW(IceUtil::stringToWstring(path).c_str(), GENERIC_WRITE, 0, NULL,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+#else
+ CREATEFILE2_EXTENDED_PARAMETERS params;
+ params.dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
+ _fd = ::CreateFile2(IceUtil::stringToWstring(path).c_str(), GENERIC_WRITE, 0,
+ OPEN_ALWAYS, &params);
+#endif
_path = path;
if(_fd == INVALID_HANDLE_VALUE)
@@ -192,7 +201,13 @@ IceUtilInternal::FileLock::FileLock(const std::string& path) :
throw IceUtil::FileLockException(__FILE__, __LINE__, GetLastError(), _path);
}
- if(::LockFile(_fd, 0, 0, 0, 0) == 0)
+ OVERLAPPED overlaped;
+ overlaped.Internal = 0;
+ overlaped.InternalHigh = 0;
+ overlaped.Offset = 0;
+ overlaped.OffsetHigh = 0;
+ overlaped.hEvent = nullptr;
+ if(::LockFileEx(_fd, LOCKFILE_EXCLUSIVE_LOCK | LOCKFILE_FAIL_IMMEDIATELY, 0, 0, 0, &overlaped) == 0)
{
::CloseHandle(_fd);
throw IceUtil::FileLockException(__FILE__, __LINE__, GetLastError(), _path);
diff --git a/cpp/src/IceUtil/RecMutex.cpp b/cpp/src/IceUtil/RecMutex.cpp
index e7d63a374a2..c632f4b7b63 100644
--- a/cpp/src/IceUtil/RecMutex.cpp
+++ b/cpp/src/IceUtil/RecMutex.cpp
@@ -33,7 +33,7 @@ IceUtil::RecMutex::RecMutex(const IceUtil::MutexProtocol protocol) :
void
IceUtil::RecMutex::init(const MutexProtocol)
{
- InitializeCriticalSection(&_mutex);
+ InitializeCriticalSectionEx(&_mutex, 0, 0);
}
IceUtil::RecMutex::~RecMutex()
diff --git a/cpp/src/IceUtil/StringUtil.cpp b/cpp/src/IceUtil/StringUtil.cpp
index 64237c25a41..0be8561f18d 100644
--- a/cpp/src/IceUtil/StringUtil.cpp
+++ b/cpp/src/IceUtil/StringUtil.cpp
@@ -497,31 +497,79 @@ IceUtilInternal::errorToString(int error, LPCVOID source)
{
if(error < WSABASEERR)
{
+#ifndef ICE_OS_WINRT
LPVOID lpMsgBuf = 0;
- DWORD ok = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
+#else
+ int size = 256;
+ auto_ptr<BYTE> lpMsgBuf = auto_ptr<BYTE>(new BYTE[size]);
+#endif
+ DWORD ok = 0;
+#ifdef ICE_OS_WINRT
+ while(true)
+ {
+#endif
+ ok = FormatMessageW(
+#ifndef ICE_OS_WINRT
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
+#endif
+ FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS |
(source != NULL ? FORMAT_MESSAGE_FROM_HMODULE : 0),
source,
error,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
- (LPTSTR)&lpMsgBuf,
+#ifndef ICE_OS_WINRT
+ (LPWSTR)&lpMsgBuf,
+#else
+ (LPWSTR)lpMsgBuf.get(),
+#endif
0,
NULL);
+#ifdef ICE_OS_WINRT
+ if(!ok && size < 65536)
+ {
+ DWORD err = GetLastError();
+ if(err == ERROR_INSUFFICIENT_BUFFER)
+ {
+ size *= 4;
+ size = max(size, 65536);
+ lpMsgBuf = auto_ptr<BYTE>(new BYTE[size]);
+ continue;
+ }
+ }
+ break;
+ }
+#endif
+
if(ok)
{
- LPCTSTR msg = (LPCTSTR)lpMsgBuf;
- assert(msg && strlen((const char*)msg) > 0);
- string result = (const char*)msg;
+#ifndef ICE_OS_WINRT
+ LPWSTR msg = (LPWSTR)lpMsgBuf;
+#else
+ LPWSTR msg = (LPWSTR)lpMsgBuf.get();
+#endif
+ assert(msg && wcslen((const wchar_t*)msg) > 0);
+ wstring result = (const wchar_t*)msg;
if(result[result.length() - 1] == '\n')
{
result = result.substr(0, result.length() - 2);
}
- LocalFree(lpMsgBuf);
- return result;
+#ifndef ICE_OS_WINRT
+ if(lpMsgBuf)
+ {
+ LocalFree(lpMsgBuf);
+ }
+#endif
+ return IceUtil::wstringToString(result);
}
else
{
+#ifndef ICE_OS_WINRT
+ if(lpMsgBuf)
+ {
+ LocalFree(lpMsgBuf);
+ }
+#endif
ostringstream os;
os << "unknown error: " << error;
return os.str();
diff --git a/cpp/src/IceUtil/Thread.cpp b/cpp/src/IceUtil/Thread.cpp
index 8e4fd2303a0..a629586a43b 100644
--- a/cpp/src/IceUtil/Thread.cpp
+++ b/cpp/src/IceUtil/Thread.cpp
@@ -63,7 +63,11 @@ IceUtil::ThreadControl::join()
throw BadThreadControlException(__FILE__, __LINE__);
}
+#ifndef ICE_OS_WINRT
DWORD rc = WaitForSingleObject(_handle, INFINITE);
+#else
+ DWORD rc = WaitForSingleObjectEx(_handle, INFINITE, true);
+#endif
if(rc != WAIT_OBJECT_0)
{
throw ThreadSyscallException(__FILE__, __LINE__, GetLastError());
@@ -95,7 +99,11 @@ IceUtil::ThreadControl::id() const
void
IceUtil::ThreadControl::sleep(const Time& timeout)
{
+#ifndef ICE_OS_WINRT
Sleep(static_cast<long>(timeout.toMilliSeconds()));
+#else
+ WaitForSingleObjectEx(GetCurrentThread(), static_cast<long>(timeout.toMilliSeconds()), true);
+#endif
}
void
@@ -106,7 +114,11 @@ IceUtil::ThreadControl::yield()
// of its time slice to any other thread of equal priority that is
// ready to run.
//
+#ifndef ICE_OS_WINRT
Sleep(0);
+#else
+ WaitForSingleObjectEx(GetCurrentThread(), 0, true);
+#endif
}
IceUtil::Thread::Thread() :
@@ -172,7 +184,7 @@ WINAPI startHook(void* arg)
#if defined(_MSC_VER) && (_MSC_VER < 1300)
terminate();
#else
- std::terminate();
+ std::terminate();
#endif
}
@@ -220,14 +232,21 @@ IceUtil::Thread::start(size_t stackSize, int priority)
reinterpret_cast<HANDLE>(
_beginthreadex(0,
static_cast<unsigned int>(stackSize),
- startHook, this, CREATE_SUSPENDED, &id));
+ startHook, this,
+#ifndef ICE_OS_WINRT
+ CREATE_SUSPENDED,
+#else
+ 0,
+#endif
+ &id));
_id = id;
-
+ assert(_handle != (HANDLE)-1L);
if(_handle == 0)
{
__decRef();
throw ThreadSyscallException(__FILE__, __LINE__, GetLastError());
}
+#ifndef ICE_OS_WINRT
if(SetThreadPriority(_handle, priority) == 0)
{
throw ThreadSyscallException(__FILE__, __LINE__, GetLastError());
@@ -237,6 +256,7 @@ IceUtil::Thread::start(size_t stackSize, int priority)
__decRef();
throw ThreadSyscallException(__FILE__, __LINE__, GetLastError());
}
+#endif
_started = true;
_running = true;
diff --git a/cpp/src/IceUtil/UUID.cpp b/cpp/src/IceUtil/UUID.cpp
index 9fe8f703498..cb2d77a1992 100644
--- a/cpp/src/IceUtil/UUID.cpp
+++ b/cpp/src/IceUtil/UUID.cpp
@@ -14,17 +14,18 @@
// (/dev/random) to generate "version 4" UUIDs, as described in
// http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-00.txt
+#include <IceUtil/Random.h>
+
#ifdef _WIN32
# include <rpc.h>
#else
-# include <IceUtil/Random.h>
# include <sys/types.h>
# include <unistd.h>
#endif
using namespace std;
-#ifndef _WIN32
+#if defined(ICE_OS_WINRT) || !defined(_WIN32)
namespace
{
@@ -45,7 +46,11 @@ public:
PidInitializer()
{
+#ifndef _WIN32
pid_t p = getpid();
+#else
+ int p = GetCurrentProcessId();
+#endif
myPid[0] = (p >> 8) & 0x7F;
myPid[1] = p & 0xFF;
}
@@ -87,15 +92,22 @@ inline void bytesToHex(unsigned char* bytes, size_t len, char*& hexBuffer)
string
IceUtil::generateUUID()
{
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(ICE_OS_WINRT)
UUID uuid;
- UuidCreate(&uuid);
+ RPC_STATUS ret = UuidCreate(&uuid);
+ if(ret != RPC_S_OK && ret != RPC_S_UUID_LOCAL_ONLY && ret != RPC_S_UUID_NO_ADDRESS)
+ {
+ throw new SyscallException(__FILE__, __LINE__, GetLastError());
+ }
unsigned char* str;
- UuidToString(&uuid, &str);
-
+ ret = UuidToString(&uuid, &str);
+ if(ret != RPC_S_OK)
+ {
+ throw new SyscallException(__FILE__, __LINE__, GetLastError());
+ }
string result = reinterpret_cast<char*>(str);
RpcStringFree(&str);
diff --git a/cpp/src/IceUtil/winrt/.depend.mak b/cpp/src/IceUtil/winrt/.depend.mak
new file mode 100644
index 00000000000..eaaf19abe78
--- /dev/null
+++ b/cpp/src/IceUtil/winrt/.depend.mak
@@ -0,0 +1,20 @@
+$(ARCH)\$(CONFIG)\ArgVector$(OBJEXT): ..\ArgVector.cpp "$(includedir)\IceUtil\ArgVector.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\DisableWarnings.h"
+$(ARCH)\$(CONFIG)\Cond$(OBJEXT): ..\Cond.cpp "$(includedir)\IceUtil\Cond.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\MutexProtocol.h"
+$(ARCH)\$(CONFIG)\ConvertUTF$(OBJEXT): ..\ConvertUTF.cpp "..\..\IceUtil\ConvertUTF.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Exception.h"
+$(ARCH)\$(CONFIG)\CountDownLatch$(OBJEXT): ..\CountDownLatch.cpp "$(includedir)\IceUtil\CountDownLatch.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h"
+$(ARCH)\$(CONFIG)\Exception$(OBJEXT): ..\Exception.cpp "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\MutexPtrLock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\FileUtil$(OBJEXT): ..\FileUtil.cpp "$(includedir)\IceUtil\DisableWarnings.h" "$(includedir)\IceUtil\FileUtil.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Unicode.h"
+$(ARCH)\$(CONFIG)\InputUtil$(OBJEXT): ..\InputUtil.cpp "$(includedir)\IceUtil\InputUtil.h" "$(includedir)\IceUtil\Config.h"
+$(ARCH)\$(CONFIG)\Options$(OBJEXT): ..\Options.cpp "$(includedir)\IceUtil\Options.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\StringUtil.h"
+$(ARCH)\$(CONFIG)\OutputUtil$(OBJEXT): ..\OutputUtil.cpp "$(includedir)\IceUtil\OutputUtil.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\FileUtil.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h"
+$(ARCH)\$(CONFIG)\Random$(OBJEXT): ..\Random.cpp "$(includedir)\IceUtil\Random.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\MutexPtrLock.h"
+$(ARCH)\$(CONFIG)\RecMutex$(OBJEXT): ..\RecMutex.cpp "$(includedir)\IceUtil\RecMutex.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h"
+$(ARCH)\$(CONFIG)\Shared$(OBJEXT): ..\Shared.cpp "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h"
+$(ARCH)\$(CONFIG)\StringUtil$(OBJEXT): ..\StringUtil.cpp "$(includedir)\IceUtil\StringUtil.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\IceUtil\Exception.h"
+$(ARCH)\$(CONFIG)\Thread$(OBJEXT): ..\Thread.cpp "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h"
+$(ARCH)\$(CONFIG)\ThreadException$(OBJEXT): ..\ThreadException.cpp "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Time.h"
+$(ARCH)\$(CONFIG)\Time$(OBJEXT): ..\Time.cpp "$(includedir)\IceUtil\DisableWarnings.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Time.h"
+$(ARCH)\$(CONFIG)\Timer$(OBJEXT): ..\Timer.cpp "$(includedir)\IceUtil\Timer.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Thread.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\IceUtil\Mutex.h" "$(includedir)\IceUtil\Lock.h" "$(includedir)\IceUtil\ThreadException.h" "$(includedir)\IceUtil\Time.h" "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Monitor.h" "$(includedir)\IceUtil\Cond.h"
+$(ARCH)\$(CONFIG)\UUID$(OBJEXT): ..\UUID.cpp "$(includedir)\IceUtil\UUID.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Random.h" "$(includedir)\IceUtil\Exception.h"
+$(ARCH)\$(CONFIG)\Unicode$(OBJEXT): ..\Unicode.cpp "$(includedir)\IceUtil\Unicode.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\IceUtil\Exception.h" "..\..\IceUtil\ConvertUTF.h"
+$(ARCH)\$(CONFIG)\MutexProtocol$(OBJEXT): ..\MutexProtocol.cpp "$(includedir)\IceUtil\MutexProtocol.h" "$(includedir)\IceUtil\Config.h"
diff --git a/cpp/src/IceUtil/winrt/Makefile.mak b/cpp/src/IceUtil/winrt/Makefile.mak
new file mode 100644
index 00000000000..abfbd31bcbc
--- /dev/null
+++ b/cpp/src/IceUtil/winrt/Makefile.mak
@@ -0,0 +1,66 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2012 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.
+#
+# **********************************************************************
+
+top_srcdir = ..\..\..
+LIBNAME = $(SDK_LIBRARY_PATH)\iceutil.lib
+TARGETS = $(LIBNAME)
+SOURCE_DIR = ..
+
+TARGETS = $(LIBNAME)
+
+OBJS = $(ARCH)\$(CONFIG)\ArgVector.obj \
+ $(ARCH)\$(CONFIG)\Cond.obj \
+ $(ARCH)\$(CONFIG)\ConvertUTF.obj \
+ $(ARCH)\$(CONFIG)\CountDownLatch.obj \
+ $(ARCH)\$(CONFIG)\Exception.obj \
+ $(ARCH)\$(CONFIG)\FileUtil.obj \
+ $(ARCH)\$(CONFIG)\InputUtil.obj \
+ $(ARCH)\$(CONFIG)\Options.obj \
+ $(ARCH)\$(CONFIG)\OutputUtil.obj \
+ $(ARCH)\$(CONFIG)\Random.obj \
+ $(ARCH)\$(CONFIG)\RecMutex.obj \
+ $(ARCH)\$(CONFIG)\Shared.obj \
+ $(ARCH)\$(CONFIG)\StringUtil.obj \
+ $(ARCH)\$(CONFIG)\Thread.obj \
+ $(ARCH)\$(CONFIG)\ThreadException.obj \
+ $(ARCH)\$(CONFIG)\Time.obj \
+ $(ARCH)\$(CONFIG)\Timer.obj \
+ $(ARCH)\$(CONFIG)\UUID.obj \
+ $(ARCH)\$(CONFIG)\Unicode.obj \
+ $(ARCH)\$(CONFIG)\MutexProtocol.obj
+
+SRCS = $(OBJS:.obj=.cpp)
+SRCS = $(SRCS:x86\=)
+SRCS = $(SRCS:x64\=)
+SRCS = $(SRCS:Retail\=..\)
+SRCS = $(SRCS:Debug\=..\)
+
+CPPFLAGS = $(CPPFLAGS) -DICE_UTIL_API_EXPORTS -I..\.. -DWIN32_LEAN_AND_MEAN
+
+!include $(top_srcdir)/config/Make.rules.mak
+
+depend::
+ del /q .depend.mak
+
+.cpp.depend:
+ $(CXX) /Fo$(ARCH)\$(CONFIG)\ /Fd$(ARCH)\$(CONFIG)\ /Zs /showIncludes $(CXXFLAGS) $(CPPFLAGS) $< 2>&1 | python.exe $(ice_dir)/config/makedepend-winrt.py $<
+
+depend:: $(ARCH)\$(CONFIG) $(SRCS_DEPEND)
+
+RES_FILE = $(SOURCE_DIR)\IceUtil.res
+
+$(LIBNAME): $(OBJS) $(RES_FILE) sdks
+ $(AR) $(ARFLAGS) $(OBJS) /out:$(LIBNAME)
+
+clean::
+ -del /q $(ARCH)\$(CONFIG)\*.obj
+ -del /q $(ARCH)\$(CONFIG)\*.pdb
+ -del /q $(RES_FILE)
+
+!include .depend.mak
diff --git a/cpp/src/Makefile.mak b/cpp/src/Makefile.mak
index f05958d22c2..0679c275d92 100644
--- a/cpp/src/Makefile.mak
+++ b/cpp/src/Makefile.mak
@@ -11,6 +11,14 @@ top_srcdir = ..
!include $(top_srcdir)/config/Make.rules.mak
+!if "$(WINRT)" == "yes"
+SUBDIRS = IceUtil\winrt \
+ Ice\winrt \
+ Glacier2Lib\winrt \
+ IceStormLib\winrt \
+ IceGridLib\winrt
+
+!else
SUBDIRS = IceUtil \
Slice \
slice2cpp
@@ -65,6 +73,8 @@ SUBDIRS = $(SUBDIRS) \
!endif
+!endif
+
$(EVERYTHING)::
@for %i in ( $(SUBDIRS) ) do \
@if exist %i \
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp
index ab17e941fa8..18006779d94 100644
--- a/cpp/src/Slice/CPlusPlusUtil.cpp
+++ b/cpp/src/Slice/CPlusPlusUtil.cpp
@@ -10,6 +10,7 @@
#include <Slice/CPlusPlusUtil.h>
#include <Slice/Util.h>
#include <cstring>
+#include <functional>
#ifndef _WIN32
# include <fcntl.h>
diff --git a/cpp/src/Slice/PHPUtil.cpp b/cpp/src/Slice/PHPUtil.cpp
index 09b47cc03d9..64106ad98a2 100644
--- a/cpp/src/Slice/PHPUtil.cpp
+++ b/cpp/src/Slice/PHPUtil.cpp
@@ -8,6 +8,7 @@
// **********************************************************************
#include <Slice/PHPUtil.h>
+#include <functional>
using namespace std;
using namespace Slice;