diff options
Diffstat (limited to 'cpp/include/Ice/StringConverter.h')
-rwxr-xr-x | cpp/include/Ice/StringConverter.h | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/cpp/include/Ice/StringConverter.h b/cpp/include/Ice/StringConverter.h index d2aa1dffa7a..2b59c622e8b 100755 --- a/cpp/include/Ice/StringConverter.h +++ b/cpp/include/Ice/StringConverter.h @@ -70,11 +70,32 @@ class ICE_API UnicodeWstringConverter : public WstringConverter { public: - virtual Byte* toUTF8(const wchar_t* sourceStart, const wchar_t* sourceEnd, - UTF8Buffer&) const; + virtual Byte* toUTF8(const wchar_t*, const wchar_t*, UTF8Buffer&) const; - virtual void fromUTF8(const Byte* sourceStart, const Byte* sourceEnd, - std::wstring& target) const; + virtual void fromUTF8(const Byte*, const Byte*, std::wstring&) const; }; + +#ifdef _WIN32 + +// +// Converts to/from UTF-8 using MultiByteToWideChar and WideCharToMultiByte +// + +class ICE_API WindowsStringConverter : public StringConverter +{ +public: + + explicit WindowsStringConverter(unsigned int); + + virtual Byte* toUTF8(const char*, const char*, UTF8Buffer&) const; + + virtual void fromUTF8(const Byte*, const Byte*, std::string& target) const; + +private: + unsigned int _cp; + UnicodeWstringConverter _unicodeWstringConverter; +}; +#endif + } #endif |