summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Instance.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2016-10-20 21:03:44 -0400
committerBernard Normier <bernard@zeroc.com>2016-10-20 21:03:44 -0400
commit3cb9c15995b828c52dba34d0a222f572d5bbc41b (patch)
tree87bad249c2ee04972be5f3c7635880cb0c556128 /cpp/src/Ice/Instance.cpp
parentupdating IceBT to BlueZ 5 (diff)
downloadice-3cb9c15995b828c52dba34d0a222f572d5bbc41b.tar.bz2
ice-3cb9c15995b828c52dba34d0a222f572d5bbc41b.tar.xz
ice-3cb9c15995b828c52dba34d0a222f572d5bbc41b.zip
Added support for non-ASCII characters and universal character names
to stringified identities and proxies. This includes a new Ice.ToStringMode property.
Diffstat (limited to 'cpp/src/Ice/Instance.cpp')
-rw-r--r--cpp/src/Ice/Instance.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index d99567e09f9..304036dec90 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -948,6 +948,7 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
_messageSizeMax(0),
_batchAutoFlushSize(0),
_collectObjects(false),
+ _toStringMode(ICE_ENUM(ToStringMode, Unicode)),
_implicitContext(0),
_stringConverter(Ice::getProcessStringConverter()),
_wstringConverter(Ice::getProcessWstringConverter()),
@@ -1189,6 +1190,21 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
const_cast<bool&>(_collectObjects) = _initData.properties->getPropertyAsInt("Ice.CollectObjects") > 0;
+ string toStringModeStr = _initData.properties->getPropertyWithDefault("Ice.ToStringMode", "Unicode");
+ if(toStringModeStr == "ASCII")
+ {
+ const_cast<ToStringMode&>(_toStringMode) = ICE_ENUM(ToStringMode, ASCII);
+ }
+ else if(toStringModeStr == "Compat")
+ {
+ const_cast<ToStringMode&>(_toStringMode) = ICE_ENUM(ToStringMode, Compat);
+ }
+ else if(toStringModeStr != "Unicode")
+ {
+ throw InitializationException(__FILE__, __LINE__, "The value for Ice.ToStringMode must be Unicode, ASCII or Compat");
+ }
+
+
//
// Client ACM enabled by default. Server ACM disabled by default.
//