summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-05-12 19:03:58 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-05-12 19:03:58 +0200
commitef5846e612d315e89b3101ef280f7ef0a7e3556e (patch)
tree211f449c0b245917b7e5306be0141b017203d6dc /cpp/src
parentMinor build system fixes (diff)
downloadice-ef5846e612d315e89b3101ef280f7ef0a7e3556e.tar.bz2
ice-ef5846e612d315e89b3101ef280f7ef0a7e3556e.tar.xz
ice-ef5846e612d315e89b3101ef280f7ef0a7e3556e.zip
Added IceWS support to WinRT
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/CommunicatorI.cpp8
-rw-r--r--cpp/src/Ice/Instance.cpp12
-rw-r--r--cpp/src/Ice/LoggerI.cpp2
-rw-r--r--cpp/src/Ice/LoggerI.h2
-rw-r--r--cpp/src/Ice/Network.cpp7
-rw-r--r--cpp/src/Ice/Network.h3
-rw-r--r--cpp/src/Ice/winrt/Makefile.mak27
-rw-r--r--cpp/src/Ice/winrt/StreamTransceiver.h1
-rw-r--r--cpp/src/IceWS/AcceptorI.cpp10
-rw-r--r--cpp/src/IceWS/AcceptorI.h6
-rw-r--r--cpp/src/IceWS/EndpointI.h4
-rw-r--r--cpp/src/IceWS/TransceiverI.cpp55
-rw-r--r--cpp/src/IceWS/TransceiverI.h6
-rw-r--r--cpp/src/IceWS/Util.cpp19
-rw-r--r--cpp/src/IceWS/winrt/.depend.mak5
-rw-r--r--cpp/src/IceWS/winrt/Makefile.mak70
-rw-r--r--cpp/src/Makefile.mak1
17 files changed, 136 insertions, 102 deletions
diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp
index 25fc6841fb3..fbac019a293 100644
--- a/cpp/src/Ice/CommunicatorI.cpp
+++ b/cpp/src/Ice/CommunicatorI.cpp
@@ -26,6 +26,10 @@
#include <IceUtil/MutexPtrLock.h>
#include <IceUtil/UUID.h>
+#ifdef ICE_OS_WINRT
+# include <IceWS/PluginI.h>
+#endif
+
using namespace std;
using namespace Ice;
using namespace IceInternal;
@@ -458,6 +462,10 @@ Ice::CommunicatorI::~CommunicatorI()
void
Ice::CommunicatorI::finishSetup(int& argc, char* argv[])
{
+#if defined(ICE_OS_WINRT)
+ Ice::PluginPtr plugin(new IceWS::PluginI(this)); // Initialize the IceWS transport.
+#endif
+
try
{
_instance->finishSetup(argc, argv);
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index 39668b5340e..20744535880 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -1105,13 +1105,13 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
EndpointFactoryPtr tcpEndpointFactory = new TcpEndpointFactory(tcpProtocolInstance);
_endpointFactoryManager->add(tcpEndpointFactory);
#else
- ProtocolInstancePtr tcpProtocolInstance = new ProtocolInstance(this, TCPEndpointType, "tcp");
- EndpointFactoryPtr tcpStreamEndpointFactory = new StreamEndpointFactory(tcpProtocolInstance);
- _endpointFactoryManager->add(tcpStreamEndpointFactory);
+ ProtocolInstancePtr tcpInstance = new ProtocolInstance(this, TCPEndpointType, "tcp");
+ EndpointFactoryPtr tcpFactory = new StreamEndpointFactory(tcpInstance);
+ _endpointFactoryManager->add(tcpFactory);
- ProtocolInstancePtr sslProtocolInstance = new ProtocolInstance(this, IceSSL::EndpointType, "ssl");
- EndpointFactoryPtr sslStreamEndpointFactory = new StreamEndpointFactory(sslProtocolInstance);
- _endpointFactoryManager->add(sslStreamEndpointFactory);
+ ProtocolInstancePtr sslInstance = new ProtocolInstance(this, IceSSL::EndpointType, "ssl");
+ EndpointFactoryPtr sslFactory = new StreamEndpointFactory(sslInstance);
+ _endpointFactoryManager->add(sslFactory);
#endif
ProtocolInstancePtr udpProtocolInstance = new ProtocolInstance(this, UDPEndpointType, "udp");
EndpointFactoryPtr udpEndpointFactory = new UdpEndpointFactory(udpProtocolInstance);
diff --git a/cpp/src/Ice/LoggerI.cpp b/cpp/src/Ice/LoggerI.cpp
index bfd602d0a5f..f0215401657 100644
--- a/cpp/src/Ice/LoggerI.cpp
+++ b/cpp/src/Ice/LoggerI.cpp
@@ -52,7 +52,7 @@ Ice::LoggerI::LoggerI(const string& prefix, const string& file,
bool convert, const IceUtil::StringConverterPtr& converter) :
_convert(convert),
_converter(converter)
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(ICE_OS_WINRT)
, _consoleConverter(new IceUtil::WindowsStringConverter(GetConsoleOutputCP()))
#endif
diff --git a/cpp/src/Ice/LoggerI.h b/cpp/src/Ice/LoggerI.h
index 4e26f338a84..1ae72c9445b 100644
--- a/cpp/src/Ice/LoggerI.h
+++ b/cpp/src/Ice/LoggerI.h
@@ -42,7 +42,7 @@ private:
std::string _file;
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(ICE_OS_WINRT)
const IceUtil::StringConverterPtr _consoleConverter;
#endif
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index 564c9c20b62..4108dd23053 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -722,6 +722,13 @@ IceInternal::NativeInfo::completed(SocketOperation operation)
throw ex;
}
}
+#elif defined(ICE_OS_WINRT)
+void
+IceInternal::NativeInfo::completed(SocketOperation operation)
+{
+ assert(_completedHandler);
+ _completedHandler(operation);
+}
#endif
IceUtil::Shared* IceInternal::upCast(NetworkProxy* p) { return p; }
diff --git a/cpp/src/Ice/Network.h b/cpp/src/Ice/Network.h
index 7576f48ca30..f8928c11f7b 100644
--- a/cpp/src/Ice/Network.h
+++ b/cpp/src/Ice/Network.h
@@ -182,6 +182,7 @@ public:
void completed(SocketOperation operation);
#elif defined(ICE_OS_WINRT)
virtual void setCompletedHandler(SocketOperationCompletedHandler^) = 0;
+ void completed(SocketOperation operation);
#endif
protected:
@@ -191,6 +192,8 @@ protected:
#if defined(ICE_USE_IOCP)
HANDLE _handle;
ULONG_PTR _key;
+#elif defined(ICE_OS_WINRT)
+ SocketOperationCompletedHandler^ _completedHandler;
#endif
};
typedef IceUtil::Handle<NativeInfo> NativeInfoPtr;
diff --git a/cpp/src/Ice/winrt/Makefile.mak b/cpp/src/Ice/winrt/Makefile.mak
index a48b50a46d9..70766253b5f 100644
--- a/cpp/src/Ice/winrt/Makefile.mak
+++ b/cpp/src/Ice/winrt/Makefile.mak
@@ -117,6 +117,16 @@ LOCAL_OBJS = $(ARCH)\$(CONFIG)\StreamAcceptor.obj \
$(ARCH)\$(CONFIG)\EndpointInfo.obj \
$(ARCH)\$(CONFIG)\ConnectionInfo.obj \
+WS_OBJS = $(ARCH)\$(CONFIG)\IceWS\AcceptorI.obj \
+ $(ARCH)\$(CONFIG)\IceWS\ConnectorI.obj \
+ $(ARCH)\$(CONFIG)\IceWS\ConnectionInfo.obj \
+ $(ARCH)\$(CONFIG)\IceWS\EndpointInfo.obj \
+ $(ARCH)\$(CONFIG)\IceWS\EndpointI.obj \
+ $(ARCH)\$(CONFIG)\IceWS\PluginI.obj \
+ $(ARCH)\$(CONFIG)\IceWS\Instance.obj \
+ $(ARCH)\$(CONFIG)\IceWS\TransceiverI.obj \
+ $(ARCH)\$(CONFIG)\IceWS\Util.obj
+
SLICE_CORE_SRCS = $(slicedir)\Ice\BuiltinSequences.ice \
$(slicedir)\Ice\CommunicatorF.ice \
$(slicedir)\Ice\Communicator.ice \
@@ -172,8 +182,16 @@ LOCAL_SRCS = $(LOCAL_SRCS:arm\=)
LOCAL_SRCS = $(LOCAL_SRCS:Retail\=.\)
LOCAL_SRCS = $(LOCAL_SRCS:Debug\=.\)
+WS_SRCS = $(WS_OBJS:.obj=.cpp)
+WS_SRCS = $(WS_SRCS:x86\=)
+WS_SRCS = $(WS_SRCS:x64\=)
+WS_SRCS = $(WS_SRCS:arm\=)
+WS_SRCS = $(WS_SRCS:Retail\=..\..\)
+WS_SRCS = $(WS_SRCS:Debug\=..\..\)
+
SRCS = $(SRCS) \
$(LOCAL_SRCS) \
+ $(WS_SRCS) \
..\CommunicatorF.cpp \
..\ConnectionF.cpp \
..\EndpointF.cpp \
@@ -198,8 +216,8 @@ SSL_SLICE2CPPFLAGS = --ice --include-dir IceSSL --dll-export ICE_SSL_API $(SLIC
!include $(top_srcdir)\config\Make.rules.mak
-$(LIBNAME): $(LOCAL_OBJS) $(OBJS) sdks
- $(AR) $(ARFLAGS) $(OBJS) $(LOCAL_OBJS) /out:$(LIBNAME)
+$(LIBNAME): $(LOCAL_OBJS) $(OBJS) $(WS_OBJS) sdks
+ $(AR) $(ARFLAGS) $(OBJS) $(LOCAL_OBJS) $(WS_OBJS) /out:$(LIBNAME)
Service.obj: $(SOURCE_DIR)\EventLoggerMsg.h
@@ -209,6 +227,10 @@ Ice.res: $(SOURCE_DIR)\EventLoggerMsg.rc
@if not exist "$(ARCH)\$(CONFIG)" mkdir $(ARCH)\$(CONFIG)
$(CXX) /c /Fo$(ARCH)\$(CONFIG)\ $(CPPFLAGS) $(CXXFLAGS) $<
+{..\..\IceWS\}.cpp{$(ARCH)\$(CONFIG)\IceWS\}.obj::
+ @if not exist "$(ARCH)\$(CONFIG)\IceWS" mkdir $(ARCH)\$(CONFIG)\IceWS
+ $(CXX) /c /Fo$(ARCH)\$(CONFIG)\IceWS\ $(CPPFLAGS) $(CXXFLAGS) $<
+
{$(slicedir)\Ice}.ice.cpp:
@echo c
del /q $(headerdir)\Ice\$(*F).h $(*F).cpp
@@ -276,6 +298,7 @@ clean::
-del /q EndpointInfo.cpp $(headerdir)\IceSSL\EndpointInfo.h
-del /q ConnectionInfo.cpp $(headerdir)\IceSSL\ConnectionInfo.h
-del /q $(ARCH)\$(CONFIG)\*.obj
+ -del /q $(ARCH)\$(CONFIG)\IceWS\*.obj
-del /q $(PDBNAME)
install:: all
diff --git a/cpp/src/Ice/winrt/StreamTransceiver.h b/cpp/src/Ice/winrt/StreamTransceiver.h
index 46354c62352..160f7c0122e 100644
--- a/cpp/src/Ice/winrt/StreamTransceiver.h
+++ b/cpp/src/Ice/winrt/StreamTransceiver.h
@@ -76,7 +76,6 @@ private:
Windows::Storage::Streams::DataReader^ _reader;
Windows::Storage::Streams::DataWriter^ _writer;
- SocketOperationCompletedHandler^ _completedHandler;
Windows::Foundation::AsyncOperationCompletedHandler<unsigned int>^ _readOperationCompletedHandler;
Windows::Foundation::AsyncOperationCompletedHandler<unsigned int>^ _writeOperationCompletedHandler;
};
diff --git a/cpp/src/IceWS/AcceptorI.cpp b/cpp/src/IceWS/AcceptorI.cpp
index c3f536c733b..eadeb3b2ebd 100644
--- a/cpp/src/IceWS/AcceptorI.cpp
+++ b/cpp/src/IceWS/AcceptorI.cpp
@@ -21,12 +21,18 @@ IceWS::AcceptorI::getNativeInfo()
return _delegate->getNativeInfo();
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
IceInternal::AsyncInfo*
IceWS::AcceptorI::getAsyncInfo(IceInternal::SocketOperation status)
{
return _delegate->getNativeInfo()->getAsyncInfo(status);
}
+#elif defined(ICE_OS_WINRT)
+void
+IceWS::AcceptorI::setCompletedHandler(IceInternal::SocketOperationCompletedHandler^ handler)
+{
+ _delegate->getNativeInfo()->setCompletedHandler(handler);
+}
#endif
void
@@ -41,7 +47,7 @@ IceWS::AcceptorI::listen()
_delegate->listen();
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
void
IceWS::AcceptorI::startAccept()
{
diff --git a/cpp/src/IceWS/AcceptorI.h b/cpp/src/IceWS/AcceptorI.h
index 90a156c33ce..110532f89e2 100644
--- a/cpp/src/IceWS/AcceptorI.h
+++ b/cpp/src/IceWS/AcceptorI.h
@@ -26,13 +26,15 @@ class AcceptorI : public IceInternal::Acceptor, public IceInternal::NativeInfo
public:
virtual IceInternal::NativeInfoPtr getNativeInfo();
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
virtual IceInternal::AsyncInfo* getAsyncInfo(IceInternal::SocketOperation);
+#elif defined(ICE_OS_WINRT)
+ virtual void setCompletedHandler(IceInternal::SocketOperationCompletedHandler^);
#endif
virtual void close();
virtual void listen();
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
virtual void startAccept();
virtual void finishAccept();
#endif
diff --git a/cpp/src/IceWS/EndpointI.h b/cpp/src/IceWS/EndpointI.h
index 119a937b051..35ed4883e3c 100644
--- a/cpp/src/IceWS/EndpointI.h
+++ b/cpp/src/IceWS/EndpointI.h
@@ -71,6 +71,7 @@ class EndpointFactoryI : public IceInternal::EndpointFactory
{
public:
+ EndpointFactoryI(const InstancePtr&, const IceInternal::EndpointFactoryPtr&);
virtual ~EndpointFactoryI();
virtual Ice::Short type() const;
@@ -83,9 +84,6 @@ public:
private:
- EndpointFactoryI(const InstancePtr&, const IceInternal::EndpointFactoryPtr&);
- friend class PluginI;
-
InstancePtr _instance;
const IceInternal::EndpointFactoryPtr _delegate;
};
diff --git a/cpp/src/IceWS/TransceiverI.cpp b/cpp/src/IceWS/TransceiverI.cpp
index ad3bb210d59..597e432b19b 100644
--- a/cpp/src/IceWS/TransceiverI.cpp
+++ b/cpp/src/IceWS/TransceiverI.cpp
@@ -19,7 +19,7 @@
#include <Ice/Base64.h>
#include <IceUtil/Random.h>
#include <IceUtil/StringUtil.h>
-
+
#include <IceUtil/DisableWarnings.h>
#include <stdint.h>
@@ -123,6 +123,47 @@ Long nlltoh(const Byte* src)
return v;
}
+Short htons(Short v)
+{
+ Short result;
+ Byte* dest = reinterpret_cast<Byte*>(&result);
+
+ //
+ // Transfer a short in network (big-endian) order.
+ //
+#ifdef ICE_BIG_ENDIAN
+ const Byte* src = reinterpret_cast<const Byte*>(&v);
+ *dest++ = *src++;
+ *dest = *src;
+#else
+ const Byte* src = reinterpret_cast<const Byte*>(&v) + sizeof(Short) - 1;
+ *dest++ = *src--;
+ *dest = *src;
+#endif
+ return result;
+}
+
+Short ntohs(Short value)
+{
+ const Byte* src = reinterpret_cast<Byte*>(&value);
+ Short v;
+
+ //
+ // Extract a 64-bit integer in network (big-endian) order.
+ //
+#ifdef ICE_BIG_ENDIAN
+ Byte* dest = reinterpret_cast<Byte*>(&v);
+ *dest++ = *src++;
+ *dest = *src;
+#else
+ Byte* dest = reinterpret_cast<Byte*>(&v) + sizeof(Short) - 1;
+ *dest-- = *src++;
+ *dest = *src;
+#endif
+
+ return v;
+}
+
}
NativeInfoPtr
@@ -131,12 +172,18 @@ IceWS::TransceiverI::getNativeInfo()
return _delegate->getNativeInfo();
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
AsyncInfo*
IceWS::TransceiverI::getAsyncInfo(SocketOperation status)
{
return _delegate->getNativeInfo()->getAsyncInfo(status);
}
+#elif defined(ICE_OS_WINRT)
+void
+IceWS::TransceiverI::setCompletedHandler(IceInternal::SocketOperationCompletedHandler^ handler)
+{
+ _delegate->getNativeInfo()->setCompletedHandler(handler);
+}
#endif
SocketOperation
@@ -539,7 +586,7 @@ IceWS::TransceiverI::read(Buffer& buf, bool& hasMoreData)
return s;
}
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
bool
IceWS::TransceiverI::startWrite(Buffer& buf)
{
@@ -552,7 +599,7 @@ IceWS::TransceiverI::startWrite(Buffer& buf)
}
else
{
- return _delegate->startWrite(buf);
+ return _delegate->startWrite(_writeBuffer);
}
}
diff --git a/cpp/src/IceWS/TransceiverI.h b/cpp/src/IceWS/TransceiverI.h
index c07ff0acd43..cba5439b8b5 100644
--- a/cpp/src/IceWS/TransceiverI.h
+++ b/cpp/src/IceWS/TransceiverI.h
@@ -30,8 +30,10 @@ class TransceiverI : public IceInternal::Transceiver
public:
virtual IceInternal::NativeInfoPtr getNativeInfo();
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP)
virtual IceInternal::AsyncInfo* getAsyncInfo(IceInternal::SocketOperation);
+#elif defined(ICE_OS_WINRT)
+ virtual void setCompletedHandler(IceInternal::SocketOperationCompletedHandler^);
#endif
virtual IceInternal::SocketOperation initialize(IceInternal::Buffer&, IceInternal::Buffer&, bool&);
@@ -39,7 +41,7 @@ public:
virtual void close();
virtual IceInternal::SocketOperation write(IceInternal::Buffer&);
virtual IceInternal::SocketOperation read(IceInternal::Buffer&, bool&);
-#ifdef ICE_USE_IOCP
+#if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
virtual bool startWrite(IceInternal::Buffer&);
virtual void finishWrite(IceInternal::Buffer&);
virtual void startRead(IceInternal::Buffer&);
diff --git a/cpp/src/IceWS/Util.cpp b/cpp/src/IceWS/Util.cpp
index 417acc68cb2..b4ee81fc485 100644
--- a/cpp/src/IceWS/Util.cpp
+++ b/cpp/src/IceWS/Util.cpp
@@ -12,8 +12,10 @@
#include <Ice/LocalException.h>
#include <IceUtil/StringUtil.h>
-#include <openssl/err.h>
-#include <openssl/sha.h>
+#ifndef ICE_OS_WINRT
+# include <openssl/err.h>
+# include <openssl/sha.h>
+#endif
#include <IceUtil/DisableWarnings.h>
@@ -24,9 +26,22 @@ using namespace IceWS;
vector<unsigned char>
IceWS::calcSHA1(const vector<unsigned char>& data)
{
+#ifndef ICE_OS_WINRT
vector<unsigned char> hash(SHA_DIGEST_LENGTH);
::SHA1(&data[0], static_cast<unsigned long>(data.size()), &hash[0]);
return hash;
+#else
+ auto dataA = ref new Platform::Array<unsigned char>(const_cast<unsigned char*>(&data[0]), data.size());
+ auto hasher = Windows::Security::Cryptography::Core::HashAlgorithmProvider::OpenAlgorithm("SHA1");
+ auto hashed = hasher->HashData(Windows::Security::Cryptography::CryptographicBuffer::CreateFromByteArray(dataA));
+ auto reader = ::Windows::Storage::Streams::DataReader::FromBuffer(hashed);
+ std::vector<unsigned char> result(reader->UnconsumedBufferLength);
+ if(!result.empty())
+ {
+ reader->ReadBytes(::Platform::ArrayReference<unsigned char>(&result[0], result.size()));
+ }
+ return result;
+#endif
}
WebSocketException::WebSocketException(const string& r) :
diff --git a/cpp/src/IceWS/winrt/.depend.mak b/cpp/src/IceWS/winrt/.depend.mak
deleted file mode 100644
index 3d037292037..00000000000
--- a/cpp/src/IceWS/winrt/.depend.mak
+++ /dev/null
@@ -1,5 +0,0 @@
-$(ARCH)\$(CONFIG)\EndpointInfo$(OBJEXT): ..\EndpointInfo.cpp "$(includedir)\Ice\ProxyF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\Format.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\StreamHelpers.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\IceUtil\Iterator.h" "$(includedir)\IceUtil\Optional.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\Version.h" "$(includedir)\IceUtil\UndefSysMacros.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\Ice\EndpointF.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\IceUtil\StringConverter.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\InstanceF.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\ObjectFactoryF.h" "$(includedir)\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\SlicedDataF.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\IceUtil\DisableWarnings.h"
-$(ARCH)\$(CONFIG)\ConnectionInfo$(OBJEXT): ..\ConnectionInfo.cpp "$(includedir)\Ice\ProxyF.h" "$(includedir)\IceUtil\Shared.h" "$(includedir)\IceUtil\Config.h" "$(includedir)\Ice\Config.h" "$(includedir)\Ice\ProxyHandle.h" "$(includedir)\IceUtil\Handle.h" "$(includedir)\IceUtil\Exception.h" "$(includedir)\Ice\ObjectF.h" "$(includedir)\Ice\Handle.h" "$(includedir)\Ice\Exception.h" "$(includedir)\Ice\Format.h" "$(includedir)\Ice\StreamF.h" "$(includedir)\Ice\LocalObject.h" "$(includedir)\Ice\LocalObjectF.h" "$(includedir)\Ice\StreamHelpers.h" "$(includedir)\IceUtil\ScopedArray.h" "$(includedir)\IceUtil\Iterator.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\EndpointF.h" "$(includedir)\IceUtil\Optional.h" "$(includedir)\IceUtil\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)\IceUtil\UniquePtr.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\Version.h" "$(includedir)\Ice\BasicStream.h" "$(includedir)\IceUtil\StringConverter.h" "$(includedir)\IceUtil\Unicode.h" "$(includedir)\Ice\Object.h" "$(includedir)\Ice\GCShared.h" "$(includedir)\Ice\GCCountMap.h" "$(includedir)\Ice\IncomingAsyncF.h" "$(includedir)\Ice\ObjectFactoryF.h" "$(includedir)\Ice\ObjectFactoryManagerF.h" "$(includedir)\Ice\Buffer.h" "$(includedir)\Ice\Protocol.h" "$(includedir)\Ice\SlicedDataF.h" "$(includedir)\Ice\UserExceptionFactory.h" "$(includedir)\Ice\FactoryTable.h" "$(includedir)\Ice\ObserverHelper.h" "$(includedir)\Ice\Instrumentation.h" "$(includedir)\Ice\Connection.h" "$(includedir)\Ice\Endpoint.h" "$(includedir)\Ice\BuiltinSequences.h" "$(includedir)\IceUtil\DisableWarnings.h"
-$(HDIR)\EndpointInfo.h ..\EndpointInfo.cpp: "$(slicedir)\IceWS\EndpointInfo.ice" "$(slicedir)\Ice\Endpoint.ice" "$(slicedir)\Ice\Version.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\EndpointF.ice" "$(SLICE2CPP)"
-$(HDIR)\ConnectionInfo.h ..\ConnectionInfo.cpp: "$(slicedir)\IceWS\ConnectionInfo.ice" "$(slicedir)\Ice\Connection.ice" "$(slicedir)\Ice\ObjectAdapterF.ice" "$(slicedir)\Ice\Identity.ice" "$(slicedir)\Ice\Endpoint.ice" "$(slicedir)\Ice\Version.ice" "$(slicedir)\Ice\BuiltinSequences.ice" "$(slicedir)\Ice\EndpointF.ice" "$(SLICE2CPP)"
-
diff --git a/cpp/src/IceWS/winrt/Makefile.mak b/cpp/src/IceWS/winrt/Makefile.mak
deleted file mode 100644
index 44de6843cc4..00000000000
--- a/cpp/src/IceWS/winrt/Makefile.mak
+++ /dev/null
@@ -1,70 +0,0 @@
-# **********************************************************************
-#
-# Copyright (c) 2003-2014 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)\icews.lib
-TARGETS = $(LIBNAME)
-SOURCE_DIR = ..
-
-TARGETS = $(LIBNAME)
-
-OBJS = $(ARCH)\$(CONFIG)\EndpointInfo.obj \
- $(ARCH)\$(CONFIG)\ConnectionInfo.obj
-
-# OBJS = $(ARCH)\$(CONFIG)\AcceptorI.obj \
-# $(ARCH)\$(CONFIG)\ConnectorI.obj \
-# $(ARCH)\$(CONFIG)\ConnectionInfo.obj \
-# $(ARCH)\$(CONFIG)\EndpointInfo.obj \
-# $(ARCH)\$(CONFIG)\EndpointI.obj \
-# $(ARCH)\$(CONFIG)\Instance.obj \
-# $(ARCH)\$(CONFIG)\PluginI.obj \
-# $(ARCH)\$(CONFIG)\TransceiverI.obj \
-# $(ARCH)\$(CONFIG)\Util.obj
-
-SLICE_SRCS = $(SDIR)/EndpointInfo.ice \
- $(SDIR)/ConnectionInfo.ice
-
-SRCS = $(OBJS:.obj=.cpp)
-SRCS = $(SRCS:x86\=)
-SRCS = $(SRCS:x64\=)
-SRCS = $(SRCS:arm\=)
-SRCS = $(SRCS:Retail\=..\)
-SRCS = $(SRCS:Debug\=..\)
-
-HDIR = $(headerdir)\IceWS
-SDIR = $(slicedir)\IceWS
-
-PDBNAME = $(LIBNAME:.lib=.pdb)
-CPPFLAGS = /Fd$(PDBNAME) -I..\.. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN
-SLICE2CPPFLAGS = --checksum --ice --include-dir IceWS --dll-export ICE_WS_API
-
-!include $(top_srcdir)\config\Make.rules.mak
-
-$(LIBNAME): $(OBJS) 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)\EndpointInfo.cpp $(HDIR)\EndpointInfo.h
- -del /q $(SOURCE_DIR)\ConnectionInfo.cpp $(HDIR)\ConnectionInfo.h
- -del /q $(ARCH)\$(CONFIG)\*.obj
- -del /q $(PDBNAME)
-
-install:: all
-
-!include .depend.mak
diff --git a/cpp/src/Makefile.mak b/cpp/src/Makefile.mak
index fa3500376d3..b4f49ead099 100644
--- a/cpp/src/Makefile.mak
+++ b/cpp/src/Makefile.mak
@@ -14,7 +14,6 @@ top_srcdir = ..
!if "$(WINRT)" == "yes"
SUBDIRS = IceUtil\winrt \
Ice\winrt \
- IceWS\winrt \
Glacier2Lib\winrt \
IceStormLib\winrt \
IceGridLib\winrt