summaryrefslogtreecommitdiff
path: root/qpid/cpp/include
diff options
context:
space:
mode:
authorDarryl L. Pierce <mcpierce@apache.org>2013-08-09 20:28:59 +0000
committerDarryl L. Pierce <mcpierce@apache.org>2013-08-09 20:28:59 +0000
commit2e92126c01de68430443f93108e18657f1352d72 (patch)
tree65b75848654d0f1ae6c9f6c1a967f9c2b38c0925 /qpid/cpp/include
parente449378c5c50d751cbc34f485709f1a0de371546 (diff)
downloadqpid-python-2e92126c01de68430443f93108e18657f1352d72.tar.gz
QPID-5067: Changed language bindings to use UTF-8 encoding on strings.
Now, by default, all strings will come out of the dynamic languages and be encoded using UTF-8. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1512482 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/include')
-rw-r--r--qpid/cpp/include/qpid/swig_perl_typemaps.i12
-rw-r--r--qpid/cpp/include/qpid/swig_python_typemaps.i6
-rw-r--r--qpid/cpp/include/qpid/swig_ruby_typemaps.i9
3 files changed, 19 insertions, 8 deletions
diff --git a/qpid/cpp/include/qpid/swig_perl_typemaps.i b/qpid/cpp/include/qpid/swig_perl_typemaps.i
index da24bfe402..da949a9498 100644
--- a/qpid/cpp/include/qpid/swig_perl_typemaps.i
+++ b/qpid/cpp/include/qpid/swig_perl_typemaps.i
@@ -51,9 +51,9 @@
STRLEN len;
char *ptr = SvPV(value, len);
qpid::types::Variant v = qpid::types::Variant(std::string(ptr,len));
- if (SvUTF8(value)) {
- v.setEncoding("utf8");
- }
+ // if (SvUTF8(value)) {
+ v.setEncoding("utf8");
+ // }
return v;
}
}
@@ -103,9 +103,9 @@
case qpid::types::VAR_STRING : {
const std::string val(v->asString());
result = newSVpvn(val.c_str(), val.size());
- if( v->getEncoding() == "utf8" ) {
- SvUTF8_on(result);
- }
+ // if( v->getEncoding() == "utf8" ) {
+ SvUTF8_on(result);
+ // }
break;
}
case qpid::types::VAR_MAP : {
diff --git a/qpid/cpp/include/qpid/swig_python_typemaps.i b/qpid/cpp/include/qpid/swig_python_typemaps.i
index 25a4e46b18..d6f112bdf7 100644
--- a/qpid/cpp/include/qpid/swig_python_typemaps.i
+++ b/qpid/cpp/include/qpid/swig_python_typemaps.i
@@ -60,7 +60,11 @@ typedef int Py_ssize_t;
if (PyFloat_Check(value)) return qpid::types::Variant(PyFloat_AS_DOUBLE(value));
if (PyInt_Check(value)) return qpid::types::Variant(int64_t(PyInt_AS_LONG(value)));
if (PyLong_Check(value)) return qpid::types::Variant(int64_t(PyLong_AsLongLong(value)));
- if (PyString_Check(value)) return qpid::types::Variant(std::string(PyString_AS_STRING(value)));
+ if (PyString_Check(value)) {
+ qpid::types::Variant v = qpid::types::Variant(std::string(PyString_AS_STRING(value)));
+ v.setEncoding("utf8");
+ return v;
+ }
if (PyDict_Check(value)) {
qpid::types::Variant::Map map;
PyToMap(value, &map);
diff --git a/qpid/cpp/include/qpid/swig_ruby_typemaps.i b/qpid/cpp/include/qpid/swig_ruby_typemaps.i
index 1a07cc86b0..b7befb7291 100644
--- a/qpid/cpp/include/qpid/swig_ruby_typemaps.i
+++ b/qpid/cpp/include/qpid/swig_ruby_typemaps.i
@@ -27,9 +27,16 @@
void RbToList(VALUE, qpid::types::Variant::List*);
qpid::types::Variant RbToVariant(VALUE value) {
+ printf("RbToVariant is of type %d\n", TYPE(value));
switch (TYPE(value)) {
case T_FLOAT: return qpid::types::Variant(NUM2DBL(value));
- case T_STRING: return qpid::types::Variant(StringValuePtr(value));
+ case T_STRING: {
+ qpid::types::Variant v = qpid::types::Variant();
+ v = StringValuePtr(value));
+ v.setEncoding("utf8");
+ return v;
+ }
+ break;
case T_FIXNUM: return qpid::types::Variant((int64_t) FIX2LONG(value));
case T_BIGNUM: return qpid::types::Variant((int64_t) NUM2LL(value));
case T_TRUE: return qpid::types::Variant(true);