summaryrefslogtreecommitdiff
path: root/cppe/src/IceE/Unicode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cppe/src/IceE/Unicode.cpp')
-rw-r--r--cppe/src/IceE/Unicode.cpp276
1 files changed, 0 insertions, 276 deletions
diff --git a/cppe/src/IceE/Unicode.cpp b/cppe/src/IceE/Unicode.cpp
deleted file mode 100644
index 356986c7100..00000000000
--- a/cppe/src/IceE/Unicode.cpp
+++ /dev/null
@@ -1,276 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice-E is licensed to you under the terms described in the
-// ICEE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include <IceE/Config.h>
-
-#if defined(ICEE_HAS_WSTRING)
-
-#include <IceE/Unicode.h>
-#include <IceE/ConvertUTF.h>
-
-using namespace std;
-using namespace IceUtil;
-
-namespace
-{
-//
-// Helper class, base never defined
-// Usage: WstringHelper<sizeof(wchar_t)>::toUTF8 and fromUTF8.
-//
-template<size_t wcharSize>
-struct WstringHelper
-{
- static ConversionResult toUTF8(
- const wchar_t*& sourceStart, const wchar_t* sourceEnd,
- Byte*& targetStart, Byte* targetEnd, ConversionFlags flags);
-
- static ConversionResult fromUTF8(
- const Byte*& sourceStart, const Byte* sourceEnd,
- wchar_t*& targetStart, wchar_t* targetEnd, ConversionFlags flags);
-};
-
-template<>
-struct WstringHelper<2>
-{
- static ConversionResult toUTF8(
- const wchar_t*& sourceStart, const wchar_t* sourceEnd,
- Byte*& targetStart, Byte* targetEnd, ConversionFlags flags)
- {
- return ConvertUTF16toUTF8(
- reinterpret_cast<const UTF16**>(&sourceStart),
- reinterpret_cast<const UTF16*>(sourceEnd),
- &targetStart, targetEnd, flags);
- }
-
- static ConversionResult fromUTF8(
- const Byte*& sourceStart, const Byte* sourceEnd,
- wchar_t*& targetStart, wchar_t* targetEnd, ConversionFlags flags)
- {
- return ConvertUTF8toUTF16(
- &sourceStart, sourceEnd,
- reinterpret_cast<UTF16**>(&targetStart),
- reinterpret_cast<UTF16*>(targetEnd), flags);
- }
-};
-
-template<>
-struct WstringHelper<4>
-{
- static ConversionResult toUTF8(
- const wchar_t*& sourceStart, const wchar_t* sourceEnd,
- Byte*& targetStart, Byte* targetEnd, ConversionFlags flags)
- {
- return ConvertUTF32toUTF8(
- reinterpret_cast<const UTF32**>(&sourceStart),
- reinterpret_cast<const UTF32*>(sourceEnd),
- &targetStart, targetEnd, flags);
- }
-
- static ConversionResult fromUTF8(
- const Byte*& sourceStart, const Byte* sourceEnd,
- wchar_t*& targetStart, wchar_t* targetEnd, ConversionFlags flags)
- {
- return ConvertUTF8toUTF32(
- &sourceStart, sourceEnd,
- reinterpret_cast<UTF32**>(&targetStart),
- reinterpret_cast<UTF32*>(targetEnd), flags);
- }
-};
-}
-
-//
-// convertXXX functions
-//
-
-ConversionResult
-IceUtil::convertUTFWstringToUTF8(
- const wchar_t*& sourceStart, const wchar_t* sourceEnd,
- Byte*& targetStart, Byte* targetEnd, ConversionFlags flags)
-{
- return WstringHelper<sizeof(wchar_t)>::toUTF8(
- sourceStart, sourceEnd, targetStart, targetEnd, flags);
-}
-
-ConversionResult
-IceUtil::convertUTF8ToUTFWstring(
- const Byte*& sourceStart, const Byte* sourceEnd,
- wchar_t*& targetStart, wchar_t* targetEnd, ConversionFlags flags)
-{
- return WstringHelper<sizeof(wchar_t)>::fromUTF8(
- sourceStart, sourceEnd, targetStart, targetEnd, flags);
-}
-
-ConversionResult
-IceUtil::convertUTF8ToUTFWstring(const Byte*& sourceStart, const Byte* sourceEnd,
- std::wstring& target, ConversionFlags flags)
-{
- //
- // Could be reimplemented without this temporary wchar_t buffer
- //
- size_t size = static_cast<size_t>(sourceEnd - sourceStart);
- wchar_t* outBuf = new wchar_t[size];
- wchar_t* targetStart = outBuf;
- wchar_t* targetEnd = targetStart + size;
-
- ConversionResult result =
- convertUTF8ToUTFWstring(sourceStart, sourceEnd, targetStart,
- targetEnd, flags);
-
- if(result == conversionOK)
- {
- std::wstring s(outBuf, static_cast<size_t>(targetStart - outBuf));
- s.swap(target);
- }
- delete[] outBuf;
- return result;
-}
-
-
-//
-// wstringToString and stringToWstring
-//
-
-const char* IceUtil::UTFConversionException::_name = "IceUtil::UTFConversionException";
-
-IceUtil::UTFConversionException::UTFConversionException(const char* file, int line,
- ConversionResult cr):
- Exception(file, line),
- _conversionResult(cr)
-{}
-
-string
-IceUtil::UTFConversionException::ice_name() const
-{
- return _name;
-}
-
-string
-IceUtil::UTFConversionException::toString() const
-{
- string str = Exception::toString();
- switch(_conversionResult)
- {
- case sourceExhausted:
- str += ": source exhausted";
- break;
- case targetExhausted:
- str += ": target exhausted";
- break;
- case sourceIllegal:
- str += ": illegal source";
- break;
- default:
- assert(0);
- break;
- };
- return str;
-}
-
-IceUtil::Exception*
-IceUtil::UTFConversionException::ice_clone() const
-{
- return new UTFConversionException(*this);
-}
-
-void
-IceUtil::UTFConversionException::ice_throw() const
-{
- throw *this;
-}
-
-IceUtil::ConversionResult
-IceUtil::UTFConversionException::conversionResult() const
-{
- return _conversionResult;
-}
-
-
-string
-IceUtil::wstringToString(const wstring& wstr)
-{
- string target;
-
- size_t size = wstr.size() * 3 * (sizeof(wchar_t) / 2);
-
- Byte* outBuf = new Byte[size];
- Byte* targetStart = outBuf;
- Byte* targetEnd = outBuf + size;
-
- const wchar_t* sourceStart = wstr.data();
-
- ConversionResult cr =
- convertUTFWstringToUTF8(
- sourceStart, sourceStart + wstr.size(),
- targetStart, targetEnd, lenientConversion);
-
- if(cr != conversionOK)
- {
- delete[] outBuf;
- throw UTFConversionException(__FILE__, __LINE__, cr);
- }
-
- string s(reinterpret_cast<char*>(outBuf),
- static_cast<size_t>(targetStart - outBuf));
- s.swap(target);
- delete[] outBuf;
- return target;
-}
-
-wstring
-IceUtil::stringToWstring(const string& str)
-{
- wstring result;
- const Byte* sourceStart = reinterpret_cast<const Byte*>(str.data());
-
- ConversionResult cr
- = convertUTF8ToUTFWstring(sourceStart, sourceStart + str.size(),
- result, lenientConversion);
-
- if(cr != conversionOK)
- {
- throw UTFConversionException(__FILE__, __LINE__, cr);
- }
- return result;
-}
-
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1300)
-//
-// See comments in IceUtil/Unicode.h
-//
-
-# if _MSC_VER < 1400
-string
-IceUtil::wstringToString(const basic_string<__wchar_t>& str)
-{
- return wstringToString(*reinterpret_cast<const wstring*>(&str));
-}
-
-basic_string<__wchar_t>
-IceUtil::stringToNativeWstring(const string& str)
-{
- return reinterpret_cast<basic_string<__wchar_t>& >(stringToWstring(str));
-}
-# else
-string
-IceUtil::wstringToString(const basic_string<unsigned short>& str)
-{
- return wstringToString(*reinterpret_cast<const wstring*>(&str));
-}
-
-basic_string<unsigned short>
-IceUtil::stringToTypedefWstring(const string& str)
-{
- return reinterpret_cast<basic_string<unsigned short>& >(stringToWstring(str));
-}
-
-# endif
-#endif
-
-#endif