diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/StreamI.cpp | 16 | ||||
-rw-r--r-- | cpp/src/Ice/StreamI.h | 8 | ||||
-rw-r--r-- | cpp/src/Ice/StringConverter.cpp | 128 | ||||
-rw-r--r-- | cpp/src/IceGrid/DescriptorBuilder.cpp | 25 | ||||
-rw-r--r-- | cpp/src/IceGrid/DescriptorBuilder.h | 2 | ||||
-rw-r--r-- | cpp/src/IceGrid/NodeCache.cpp | 23 | ||||
-rw-r--r-- | cpp/src/IceGrid/Util.cpp | 9 | ||||
-rw-r--r-- | cpp/src/IceGrid/Util.h | 2 | ||||
-rw-r--r-- | cpp/src/IceStringConverter/.depend | 1 | ||||
-rw-r--r-- | cpp/src/IceStringConverter/IceStringConverter.rc | 39 | ||||
-rw-r--r-- | cpp/src/IceStringConverter/Makefile | 42 | ||||
-rw-r--r-- | cpp/src/IceStringConverter/Makefile.mak | 74 | ||||
-rw-r--r-- | cpp/src/IceStringConverter/Plugin.cpp | 131 | ||||
-rw-r--r-- | cpp/src/Makefile | 1 | ||||
-rw-r--r-- | cpp/src/Makefile.mak | 1 |
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 \
|