summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/StringConverter.cpp128
-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
8 files changed, 128 insertions, 289 deletions
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/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 \