summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/StreamI.cpp16
-rw-r--r--cpp/src/Ice/StreamI.h8
-rw-r--r--cpp/src/Ice/StringConverter.cpp128
-rw-r--r--cpp/src/IceGrid/DescriptorBuilder.cpp25
-rw-r--r--cpp/src/IceGrid/DescriptorBuilder.h2
-rw-r--r--cpp/src/IceGrid/NodeCache.cpp23
-rw-r--r--cpp/src/IceGrid/Util.cpp9
-rw-r--r--cpp/src/IceGrid/Util.h2
-rw-r--r--cpp/src/IceStringConverter/.depend1
-rw-r--r--cpp/src/IceStringConverter/IceStringConverter.rc39
-rw-r--r--cpp/src/IceStringConverter/Makefile42
-rw-r--r--cpp/src/IceStringConverter/Makefile.mak74
-rw-r--r--cpp/src/IceStringConverter/Plugin.cpp131
-rw-r--r--cpp/src/Makefile1
-rw-r--r--cpp/src/Makefile.mak1
15 files changed, 163 insertions, 339 deletions
diff --git a/cpp/src/Ice/StreamI.cpp b/cpp/src/Ice/StreamI.cpp
index 48cc7ce9497..26ecc8acb19 100644
--- a/cpp/src/Ice/StreamI.cpp
+++ b/cpp/src/Ice/StreamI.cpp
@@ -208,18 +208,18 @@ Ice::InputStreamI::readDoubleSeq(pair<const Double*, const Double*>& p)
}
string
-Ice::InputStreamI::readString()
+Ice::InputStreamI::readString(bool convert)
{
string v;
- _is->read(v);
+ _is->read(v, convert);
return v;
}
vector<string>
-Ice::InputStreamI::readStringSeq()
+Ice::InputStreamI::readStringSeq(bool convert)
{
vector<string> v;
- _is->read(v);
+ _is->read(v, convert);
return v;
}
@@ -522,13 +522,13 @@ Ice::OutputStreamI::writeDoubleSeq(const Double* begin, const Double* end)
}
void
-Ice::OutputStreamI::writeString(const string& v)
+Ice::OutputStreamI::writeString(const string& v, bool convert)
{
- _os->write(v);
+ _os->write(v, convert);
}
void
-Ice::OutputStreamI::writeStringSeq(const vector<string>& v)
+Ice::OutputStreamI::writeStringSeq(const vector<string>& v, bool convert)
{
if(v.size() == 0)
{
@@ -536,7 +536,7 @@ Ice::OutputStreamI::writeStringSeq(const vector<string>& v)
}
else
{
- _os->write(&v[0], &v[0] + v.size());
+ _os->write(&v[0], &v[0] + v.size(), convert);
}
}
diff --git a/cpp/src/Ice/StreamI.h b/cpp/src/Ice/StreamI.h
index 584d9f941fe..9941b216c06 100644
--- a/cpp/src/Ice/StreamI.h
+++ b/cpp/src/Ice/StreamI.h
@@ -59,8 +59,8 @@ public:
virtual std::vector< Ice::Double > readDoubleSeq();
virtual Ice::Double* readDoubleSeq(std::pair<const Ice::Double*, const Ice::Double*>&);
- virtual std::string readString();
- virtual std::vector< std::string > readStringSeq();
+ virtual std::string readString(bool = true);
+ virtual std::vector< std::string > readStringSeq(bool = true);
virtual std::wstring readWstring();
virtual std::vector< std::wstring > readWstringSeq();
@@ -132,8 +132,8 @@ public:
virtual void writeDoubleSeq(const std::vector< Ice::Double >&);
virtual void writeDoubleSeq(const Ice::Double*, const Ice::Double*);
- virtual void writeString(const std::string&);
- virtual void writeStringSeq(const std::vector< std::string >&);
+ virtual void writeString(const std::string&, bool = true);
+ virtual void writeStringSeq(const std::vector< std::string >&, bool = true);
virtual void writeWstring(const std::wstring&);
virtual void writeWstringSeq(const std::vector< std::wstring >&);
diff --git a/cpp/src/Ice/StringConverter.cpp b/cpp/src/Ice/StringConverter.cpp
index f73c2680eb6..cd781075d76 100644
--- a/cpp/src/Ice/StringConverter.cpp
+++ b/cpp/src/Ice/StringConverter.cpp
@@ -14,6 +14,11 @@
#include <Ice/Initialize.h>
#include <Ice/Instance.h>
#include <Ice/LocalException.h>
+#include <Ice/LoggerUtil.h>
+#include <Ice/Communicator.h>
+#ifndef _WIN32
+#include <Ice/IconvStringConverter.h>
+#endif
using namespace IceUtil;
using namespace IceUtilInternal;
@@ -214,3 +219,126 @@ StringConverterPlugin::destroy()
}
}
+
+//
+// The entry point for the "string converter" plugin built-in the Ice library
+//
+extern "C"
+{
+
+using namespace Ice;
+
+ICE_DECLSPEC_EXPORT Plugin*
+createStringConverter(const CommunicatorPtr& communicator, const string& name, const StringSeq& args)
+{
+ StringConverterPtr stringConverter;
+ WstringConverterPtr wstringConverter;
+
+ if(args.size() > 2)
+ {
+ Error out(communicator->getLogger());
+ out << "Plugin " << name << ": too many arguments";
+ return 0;
+ }
+
+ try
+ {
+
+#ifdef _WIN32
+
+ int cp = -1;
+
+ for(size_t i = 0; i < args.size(); ++i)
+ {
+ if(args[i].find("windows=") == 0)
+ {
+ cp = atoi(args[i].substr(strlen("windows=")).c_str());
+ }
+ else if(args[i].find("iconv=") != 0)
+ {
+ Error out(communicator->getLogger());
+ out << "Plugin " << name << ": invalid \"" << args[i] << "\" argument";
+ return 0;
+ }
+ }
+
+ if(cp == -1)
+ {
+ Error out(communicator->getLogger());
+ out << "Plugin " << name << ": missing windows=<code page> argument";
+ return 0;
+ }
+
+ if(cp == 0 || cp == INT_MAX || cp < 0)
+ {
+ Error out(communicator->getLogger());
+ out << "Plugin " << name << ": invalid Windows code page";
+ return 0;
+ }
+
+ stringConverter = new WindowsStringConverter(static_cast<unsigned int>(cp));
+#else
+ StringSeq iconvArgs;
+
+ for(size_t i = 0; i < args.size(); ++i)
+ {
+ if(args[i].find("iconv=") == 0)
+ {
+ if(!IceUtilInternal::splitString(args[i].substr(strlen("iconv=")), ", \t\r\n", iconvArgs))
+ {
+ Error out(communicator->getLogger());
+ out << "Plugin " << name << ": invalid iconv argument";
+ return 0;
+ }
+ }
+ else if(args[i].find("windows=") != 0)
+ {
+ Error out(communicator->getLogger());
+ out << "Plugin " << name << ": invalid \"" << args[i] << "\" argument";
+ return 0;
+ }
+ }
+
+ switch(iconvArgs.size())
+ {
+ case 0:
+ {
+ stringConverter = new IconvStringConverter<char>;
+ break;
+ }
+ case 1:
+ {
+ stringConverter = new IconvStringConverter<char>(iconvArgs[0].c_str());
+ break;
+ }
+ case 2:
+ {
+ stringConverter = new IconvStringConverter<char>(iconvArgs[0].c_str());
+ wstringConverter = new IconvStringConverter<wchar_t>(iconvArgs[1].c_str());
+ break;
+ }
+ default:
+ {
+ assert(0);
+ }
+ }
+
+#endif
+
+ return new StringConverterPlugin(communicator, stringConverter, wstringConverter);
+ }
+ catch(const std::exception& ex)
+ {
+ Error out(communicator->getLogger());
+ out << "Plugin " << name << ": creation failed with " << ex.what();
+ return 0;
+ }
+ catch(...)
+ {
+ Error out(communicator->getLogger());
+ out << "Plugin " << name << ": creation failed with unknown exception";
+ return 0;
+ }
+}
+}
+
diff --git a/cpp/src/IceGrid/DescriptorBuilder.cpp b/cpp/src/IceGrid/DescriptorBuilder.cpp
index c27b233fa94..67438840742 100644
--- a/cpp/src/IceGrid/DescriptorBuilder.cpp
+++ b/cpp/src/IceGrid/DescriptorBuilder.cpp
@@ -841,16 +841,6 @@ ServerDescriptorBuilder::init(const ServerDescriptorPtr& desc, const XmlAttribut
_descriptor->iceVersion = attrs("ice-version", "");
}
-void
-ServerDescriptorBuilder::finish()
-{
- if(!isSet(_descriptor->propertySet.properties, "Ice.Admin.Endpoints"))
- {
- _hiddenProperties.push_back(createProperty("Ice.Admin.Endpoints", "tcp -h 127.0.0.1"));
- }
- CommunicatorDescriptorBuilder::finish();
-}
-
ServiceDescriptorBuilder*
ServerDescriptorBuilder::createService(const XmlAttributesHelper& attrs)
{
@@ -915,21 +905,6 @@ IceBoxDescriptorBuilder::init(const IceBoxDescriptorPtr& desc, const XmlAttribut
_descriptor = desc;
}
-void
-IceBoxDescriptorBuilder::finish()
-{
- if(!isSet(_descriptor->propertySet.properties, "IceBox.InstanceName"))
- {
- _hiddenProperties.push_back(createProperty("IceBox.InstanceName", "${server}"));
- }
-
- //
- // The NodeCache takes care of setting Endpoints and RegisterProcess for old IceBox servers
- //
-
- ServerDescriptorBuilder::finish();
-}
-
ServiceDescriptorBuilder*
IceBoxDescriptorBuilder::createService(const XmlAttributesHelper& attrs)
{
diff --git a/cpp/src/IceGrid/DescriptorBuilder.h b/cpp/src/IceGrid/DescriptorBuilder.h
index e6f23e573d4..f7c72393e39 100644
--- a/cpp/src/IceGrid/DescriptorBuilder.h
+++ b/cpp/src/IceGrid/DescriptorBuilder.h
@@ -257,7 +257,6 @@ public:
ServerDescriptorBuilder(const Ice::CommunicatorPtr&);
void init(const ServerDescriptorPtr&, const XmlAttributesHelper&);
- virtual void finish();
virtual ServiceDescriptorBuilder* createService(const XmlAttributesHelper&);
virtual ServiceInstanceDescriptorBuilder* createServiceInstance(const XmlAttributesHelper&);
@@ -283,7 +282,6 @@ public:
IceBoxDescriptorBuilder(const Ice::CommunicatorPtr&, const XmlAttributesHelper&);
void init(const IceBoxDescriptorPtr&, const XmlAttributesHelper&);
- virtual void finish();
virtual ServiceDescriptorBuilder* createService(const XmlAttributesHelper&);
virtual ServiceInstanceDescriptorBuilder* createServiceInstance(const XmlAttributesHelper&);
diff --git a/cpp/src/IceGrid/NodeCache.cpp b/cpp/src/IceGrid/NodeCache.cpp
index 7e193f1f601..5bdb1e12b75 100644
--- a/cpp/src/IceGrid/NodeCache.cpp
+++ b/cpp/src/IceGrid/NodeCache.cpp
@@ -897,15 +897,26 @@ NodeEntry::getInternalServerDescriptor(const ServerInfo& info) const
iceVersion = getMMVersion(info.descriptor->iceVersion);
}
+ server->processRegistered = false;
if(iceVersion == 0 || iceVersion >= 30300)
{
props.push_back(createProperty("Ice.Admin.ServerId", info.descriptor->id));
- server->processRegistered = getProperty(info.descriptor->propertySet.properties, "Ice.Admin.Endpoints") != "";
+ if(hasProperty(info.descriptor->propertySet.properties, "Ice.Admin.Endpoints"))
+ {
+ if(getProperty(info.descriptor->propertySet.properties, "Ice.Admin.Endpoints") != "")
+ {
+ server->processRegistered = true;
+ }
+ }
+ else
+ {
+ props.push_back(createProperty("Ice.Admin.Endpoints", "tcp -h 127.0.0.1"));
+ server->processRegistered = true;
+ }
}
else
{
props.push_back(createProperty("Ice.ServerId", info.descriptor->id));
- server->processRegistered = false; // Assigned for each communicator (see below)
}
props.push_back(createProperty("Ice.ProgramName", info.descriptor->id));
@@ -924,11 +935,15 @@ NodeEntry::getInternalServerDescriptor(const ServerInfo& info) const
props.push_back(createProperty("IceBox.Service." + s->name, s->entry + " --Ice.Config=\"" + path + "\""));
servicesStr += s->name + " ";
}
+ if(!hasProperty(info.descriptor->propertySet.properties, "IceBox.InstanceName"))
+ {
+ props.push_back(createProperty("IceBox.InstanceName", server->id));
+ }
props.push_back(createProperty("IceBox.LoadOrder", servicesStr));
if(iceVersion != 0 && iceVersion < 30300)
{
- if(isSet(iceBox->propertySet.properties, "IceBox.ServiceManager.RegisterProcess"))
+ if(hasProperty(iceBox->propertySet.properties, "IceBox.ServiceManager.RegisterProcess"))
{
if(getProperty(iceBox->propertySet.properties, "IceBox.ServiceManager.RegisterProcess") != "0")
{
@@ -940,7 +955,7 @@ NodeEntry::getInternalServerDescriptor(const ServerInfo& info) const
props.push_back(createProperty("IceBox.ServiceManager.RegisterProcess", "1"));
server->processRegistered = true;
}
- if(!isSet(iceBox->propertySet.properties, "IceBox.ServiceManager.Endpoints"))
+ if(!hasProperty(iceBox->propertySet.properties, "IceBox.ServiceManager.Endpoints"))
{
props.push_back(createProperty("IceBox.ServiceManager.Endpoints", "tcp -h 127.0.0.1"));
}
diff --git a/cpp/src/IceGrid/Util.cpp b/cpp/src/IceGrid/Util.cpp
index 3525eb7ba92..81675c30696 100644
--- a/cpp/src/IceGrid/Util.cpp
+++ b/cpp/src/IceGrid/Util.cpp
@@ -76,18 +76,16 @@ IceGrid::getProperty(const PropertyDescriptorSeq& properties, const string& name
}
bool
-IceGrid::isSet(const PropertyDescriptorSeq& properties, const string& name)
+IceGrid::hasProperty(const PropertyDescriptorSeq& properties, const string& name)
{
- bool result = false;
-
for(PropertyDescriptorSeq::const_iterator q = properties.begin(); q != properties.end(); ++q)
{
if(q->name == name)
{
- result = (q->value != "");
+ return true;
}
}
- return result;
+ return false;
}
PropertyDescriptor
@@ -99,7 +97,6 @@ IceGrid::createProperty(const string& name, const string& value)
return prop;
}
-
int
IceGrid::getMMVersion(const string& o)
{
diff --git a/cpp/src/IceGrid/Util.h b/cpp/src/IceGrid/Util.h
index b6405185e0e..805f870dc69 100644
--- a/cpp/src/IceGrid/Util.h
+++ b/cpp/src/IceGrid/Util.h
@@ -42,7 +42,7 @@ std::string toString(const std::vector<std::string>&, const std::string& = std::
std::string toString(const Ice::Exception&);
std::string getProperty(const PropertyDescriptorSeq&, const std::string&, const std::string& = std::string());
-bool isSet(const PropertyDescriptorSeq&, const std::string&);
+bool hasProperty(const PropertyDescriptorSeq&, const std::string&);
PropertyDescriptor createProperty(const std::string&, const std::string& = std::string());
diff --git a/cpp/src/IceStringConverter/.depend b/cpp/src/IceStringConverter/.depend
deleted file mode 100644
index ad10e36b6d3..00000000000
--- a/cpp/src/IceStringConverter/.depend
+++ /dev/null
@@ -1 +0,0 @@
-Plugin$(OBJEXT): Plugin.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(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/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.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)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.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/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h
diff --git a/cpp/src/IceStringConverter/IceStringConverter.rc b/cpp/src/IceStringConverter/IceStringConverter.rc
deleted file mode 100644
index 4cb3c3416e0..00000000000
--- a/cpp/src/IceStringConverter/IceStringConverter.rc
+++ /dev/null
@@ -1,39 +0,0 @@
-#include "winver.h"
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,3,0,0
- PRODUCTVERSION 3,3,0,0
- FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
-#ifdef _DEBUG
- FILEFLAGS VS_FF_DEBUG
- #define INTERNALNAME "icestringconverter33d\0"
- #define ORIGINALFILENAME "icestringconverter33d.dll\0"
-#else
- FILEFLAGS 0x0L
- #define INTERNALNAME "icestringconverter33\0"
- #define ORIGINALFILENAME "icestringconverter33.dll\0"
-#endif
- FILEOS 0x4L
- FILETYPE VFT_DLL
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904e4"
- BEGIN
- VALUE "CompanyName", "ZeroC, Inc.\0"
- VALUE "FileDescription", "IceStringConverter DLL\0"
- VALUE "FileVersion", "3.3.0\0"
- VALUE "InternalName", INTERNALNAME
- VALUE "LegalCopyright", "Copyright (c) 2003 - 2008 ZeroC, Inc. All rights reserved.\0"
- VALUE "OriginalFilename", ORIGINALFILENAME
- VALUE "ProductName", "Ice\0"
- VALUE "ProductVersion", "3.3.0\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1252
- END
-END
-
diff --git a/cpp/src/IceStringConverter/Makefile b/cpp/src/IceStringConverter/Makefile
deleted file mode 100644
index 7b5a72a138e..00000000000
--- a/cpp/src/IceStringConverter/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# **********************************************************************
-#
-# Copyright (c) 2003-2008 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 = ../..
-
-LIBFILENAME = $(call mklibfilename,IceStringConverter,$(VERSION))
-SONAME = $(call mksoname,IceStringConverter,$(SOVERSION))
-LIBNAME = $(call mklibname,IceStringConverter)
-
-TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
-
-OBJS = Plugin.o
-
-SRCS = $(OBJS:.o=.cpp)
-
-
-include $(top_srcdir)/config/Make.rules
-
-LINKWITH := -lIce -lIceUtil $(ICONV_LIB) $(CXXLIBS)
-
-$(libdir)/$(LIBFILENAME): $(OBJS)
- rm -f $@
- $(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
-
-$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
- rm -f $@
- ln -s $(LIBFILENAME) $@
-
-$(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
- rm -f $@
- ln -s $(SONAME) $@
-
-install:: all
- $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME))
-
-include .depend
diff --git a/cpp/src/IceStringConverter/Makefile.mak b/cpp/src/IceStringConverter/Makefile.mak
deleted file mode 100644
index a9fafafd0f2..00000000000
--- a/cpp/src/IceStringConverter/Makefile.mak
+++ /dev/null
@@ -1,74 +0,0 @@
-# **********************************************************************
-#
-# Copyright (c) 2003-2008 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 = $(top_srcdir)\lib\icestringconverter$(LIBSUFFIX).lib
-DLLNAME = $(top_srcdir)\bin\icestringconverter$(SOVERSION)$(LIBSUFFIX).dll
-
-TARGETS = $(LIBNAME) $(DLLNAME)
-
-OBJS = Plugin.obj
-
-SRCS = $(OBJS:.obj=.cpp)
-
-
-!include $(top_srcdir)/config/Make.rules.mak
-
-CPPFLAGS = $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN
-
-LINKWITH = $(LIBS)
-
-!if "$(GENERATE_PDB)" == "yes"
-PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb)
-!endif
-
-!if "$(CPP_COMPILER)" == "BCC2007"
-RES_FILE = ,, IceStringConverter.res
-!else
-RES_FILE = IceStringConverter.res
-!endif
-
-$(LIBNAME): $(DLLNAME)
-
-$(DLLNAME): $(OBJS) IceStringConverter.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE)
- move $(DLLNAME:.dll=.lib) $(LIBNAME)
- @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
- $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
- @if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp)
-
-IceStringConverter.res: IceStringConverter.rc
- rc.exe $(RCFLAGS) IceStringConverter.rc
-
-clean::
- del /q $(DLLNAME:.dll=.*)
- del /q IceStringConverter.res
-
-install:: all
- copy $(LIBNAME) $(install_libdir)
- copy $(DLLNAME) $(install_bindir)
-
-!if "$(OPTIMIZE)" != "yes"
-
-!if "$(CPP_COMPILER)" == "BCC2007"
-
-install:: all
- copy $(DLLNAME:.dll=.tds) $(install_bindir)
-
-!else
-
-install:: all
- copy $(DLLNAME:.dll=.pdb) $(install_bindir)
-
-!endif
-
-!endif
-
-!include .depend
diff --git a/cpp/src/IceStringConverter/Plugin.cpp b/cpp/src/IceStringConverter/Plugin.cpp
deleted file mode 100644
index bdf34dfe75f..00000000000
--- a/cpp/src/IceStringConverter/Plugin.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2008 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/Ice.h>
-#include <IceUtil/StringUtil.h>
-#include <cstdlib>
-
-using namespace Ice;
-using namespace std;
-
-extern "C"
-{
-ICE_DECLSPEC_EXPORT Plugin*
-createStringConverter(const CommunicatorPtr& communicator, const string& name, const StringSeq& args)
-{
- StringConverterPtr stringConverter;
- WstringConverterPtr wstringConverter;
-
- if(args.size() > 2)
- {
- Error out(communicator->getLogger());
- out << "Plugin " << name << ": too many arguments";
- return 0;
- }
-
- try
- {
-
-#ifdef _WIN32
-
- int cp = -1;
-
- for(size_t i = 0; i < args.size(); ++i)
- {
- if(args[i].find("windows=") == 0)
- {
- cp = atoi(args[i].substr(strlen("windows=")).c_str());
- }
- else if(args[i].find("iconv=") != 0)
- {
- Error out(communicator->getLogger());
- out << "Plugin " << name << ": invalid \"" << args[i] << "\" argument";
- return 0;
- }
- }
-
- if(cp == -1)
- {
- Error out(communicator->getLogger());
- out << "Plugin " << name << ": missing windows=<code page> argument";
- return 0;
- }
-
- if(cp == 0 || cp == INT_MAX || cp < 0)
- {
- Error out(communicator->getLogger());
- out << "Plugin " << name << ": invalid Windows code page";
- return 0;
- }
-
- stringConverter = new WindowsStringConverter(static_cast<unsigned int>(cp));
-#else
- StringSeq iconvArgs;
-
- for(size_t i = 0; i < args.size(); ++i)
- {
- if(args[i].find("iconv=") == 0)
- {
- if(!IceUtilInternal::splitString(args[i].substr(strlen("iconv=")), ", \t\r\n", iconvArgs))
- {
- Error out(communicator->getLogger());
- out << "Plugin " << name << ": invalid iconv argument";
- return 0;
- }
- }
- else if(args[i].find("windows=") != 0)
- {
- Error out(communicator->getLogger());
- out << "Plugin " << name << ": invalid \"" << args[i] << "\" argument";
- return 0;
- }
- }
-
- switch(iconvArgs.size())
- {
- case 0:
- {
- stringConverter = new IconvStringConverter<char>;
- break;
- }
- case 1:
- {
- stringConverter = new IconvStringConverter<char>(iconvArgs[0].c_str());
- break;
- }
- case 2:
- {
- stringConverter = new IconvStringConverter<char>(iconvArgs[0].c_str());
- wstringConverter = new IconvStringConverter<wchar_t>(iconvArgs[1].c_str());
- break;
- }
- default:
- {
- assert(0);
- }
- }
-
-#endif
-
- return new StringConverterPlugin(communicator, stringConverter, wstringConverter);
- }
- catch(const std::exception& ex)
- {
- Error out(communicator->getLogger());
- out << "Plugin " << name << ": creation failed with " << ex.what();
- return 0;
- }
- catch(...)
- {
- Error out(communicator->getLogger());
- out << "Plugin " << name << ": creation failed with unknown exception";
- return 0;
- }
-}
-}
diff --git a/cpp/src/Makefile b/cpp/src/Makefile
index 594a33ca59a..16082b85747 100644
--- a/cpp/src/Makefile
+++ b/cpp/src/Makefile
@@ -26,7 +26,6 @@ SUBDIRS = IceUtil \
slice2sl \
slice2html \
Ice \
- IceStringConverter \
IceXML \
IceSSL \
Freeze \
diff --git a/cpp/src/Makefile.mak b/cpp/src/Makefile.mak
index 843551faf47..41db6d40970 100644
--- a/cpp/src/Makefile.mak
+++ b/cpp/src/Makefile.mak
@@ -26,7 +26,6 @@ SUBDIRS = IceUtil \
slice2sl \
slice2html \
Ice \
- IceStringConverter \
IceXML \
IceSSL \
IceBox \