summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/StringConverterPlugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/StringConverterPlugin.cpp')
-rw-r--r--cpp/src/Ice/StringConverterPlugin.cpp63
1 files changed, 47 insertions, 16 deletions
diff --git a/cpp/src/Ice/StringConverterPlugin.cpp b/cpp/src/Ice/StringConverterPlugin.cpp
index c16bce99c34..16125c7bda6 100644
--- a/cpp/src/Ice/StringConverterPlugin.cpp
+++ b/cpp/src/Ice/StringConverterPlugin.cpp
@@ -9,22 +9,53 @@
#include <Ice/Config.h>
-// For deprecated StringConverterPlugin
-#include <IceUtil/DisableWarnings.h>
-#include <Ice/DeprecatedStringConverter.h>
-
-#include <IceUtil/IceUtil.h>
-#include <IceUtil/StringUtil.h>
-
-#include <Ice/Communicator.h>
+#include <Ice/StringConverter.h>
+#include <Ice/IconvStringConverter.h>
#include <Ice/Initialize.h>
-#include <Ice/LocalException.h>
+#include <Ice/Communicator.h>
#include <Ice/LoggerUtil.h>
+#include <IceUtil/StringUtil.h>
-using namespace IceUtilInternal;
using namespace Ice;
using namespace std;
+namespace
+{
+
+class StringConverterPlugin : public Plugin
+{
+public:
+
+ StringConverterPlugin(const CommunicatorPtr&,
+ const StringConverterPtr&, const WstringConverterPtr&);
+
+ virtual void initialize();
+
+ virtual void destroy();
+};
+
+StringConverterPlugin::StringConverterPlugin(const CommunicatorPtr& /*notused*/,
+ const StringConverterPtr& stringConverter,
+ const WstringConverterPtr& wstringConverter)
+{
+ setProcessStringConverter(stringConverter);
+ setProcessWstringConverter(wstringConverter);
+}
+
+void
+StringConverterPlugin::initialize()
+{
+ // no op
+}
+
+void
+StringConverterPlugin::destroy()
+{
+ // no op
+}
+
+}
+
//
// The entry point for the string converter plugin built-in the Ice library
//
@@ -78,7 +109,7 @@ createStringConverter(const CommunicatorPtr& communicator, const string& name, c
return 0;
}
- stringConverter = new IceUtil::WindowsStringConverter(static_cast<unsigned int>(cp));
+ stringConverter = createWindowsStringConverter(static_cast<unsigned int>(cp));
#else
StringSeq iconvArgs;
@@ -105,18 +136,18 @@ createStringConverter(const CommunicatorPtr& communicator, const string& name, c
{
case 0:
{
- stringConverter = new IceUtil::IconvStringConverter<char>;
+ stringConverter = createIconvStringConverter<char>();
break;
}
case 1:
{
- stringConverter = new IceUtil::IconvStringConverter<char>(iconvArgs[0].c_str());
+ stringConverter = createIconvStringConverter<char>(iconvArgs[0]);
break;
}
case 2:
{
- stringConverter = new IceUtil::IconvStringConverter<char>(iconvArgs[0].c_str());
- wstringConverter = new IceUtil::IconvStringConverter<wchar_t>(iconvArgs[1].c_str());
+ stringConverter = createIconvStringConverter<char>(iconvArgs[0]);
+ wstringConverter = createIconvStringConverter<wchar_t>(iconvArgs[1]);
break;
}
default:
@@ -151,7 +182,7 @@ namespace Ice
ICE_API void
registerIceStringConverter(bool loadOnInitialize)
{
- Ice::registerPluginFactory("IceStringConverter", createStringConverter, loadOnInitialize);
+ registerPluginFactory("IceStringConverter", createStringConverter, loadOnInitialize);
}
}