summaryrefslogtreecommitdiff
path: root/cpp/bindings
diff options
context:
space:
mode:
authorDarryl L. Pierce <mcpierce@apache.org>2013-02-19 19:19:02 +0000
committerDarryl L. Pierce <mcpierce@apache.org>2013-02-19 19:19:02 +0000
commit984f5280168625326fdc74225c0f891b0e43bd9b (patch)
tree576783a83303e7bba4d68f7fe972ffd49953e49b /cpp/bindings
parenta134ab99d953d9db39c2c499c4c08e4962a73077 (diff)
downloadqpid-python-984f5280168625326fdc74225c0f891b0e43bd9b.tar.gz
QPID-4588: Moved the swig descriptors to the include/qpid directory.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1447877 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/bindings')
-rw-r--r--cpp/bindings/swig_perl_typemaps.i335
-rw-r--r--cpp/bindings/swig_python_typemaps.i446
-rw-r--r--cpp/bindings/swig_ruby_typemaps.i368
3 files changed, 0 insertions, 1149 deletions
diff --git a/cpp/bindings/swig_perl_typemaps.i b/cpp/bindings/swig_perl_typemaps.i
deleted file mode 100644
index 7730b69ce7..0000000000
--- a/cpp/bindings/swig_perl_typemaps.i
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-%wrapper %{
-
-#include <stdarg.h>
-
- SV* MapToPerl(const qpid::types::Variant::Map*);
- SV* ListToPerl(const qpid::types::Variant::List*);
- void PerlToMap(SV*, qpid::types::Variant::Map*);
- void PerlToList(SV*, qpid::types::Variant::List*);
-
- qpid::types::Variant PerlToVariant(SV* value) {
- if (SvROK(value)) {
- if (SvTYPE(SvRV(value)) == SVt_PVHV) {
- qpid::types::Variant::Map map;
- PerlToMap(value, &map);
- return qpid::types::Variant(map);
- }
- else if (SvTYPE(SvRV(value)) == SVt_PVAV) {
- qpid::types::Variant::List list;
- PerlToList(value, &list);
- return qpid::types::Variant(list);
- }
- }
- else {
- if (SvIOK(value)) {
- return qpid::types::Variant((int64_t) SvIV(value));
- }
- else if (SvNOK(value)) {
- return qpid::types::Variant((float)SvNV(value));
- }
- else if (SvPOK(value)) {
- STRLEN len;
- char *ptr = SvPV(value, len);
- qpid::types::Variant v = qpid::types::Variant(std::string(ptr,len));
- if (SvUTF8(value)) {
- v.setEncoding("utf8");
- }
- return v;
- }
- }
- return qpid::types::Variant();
- }
-
- SV* VariantToPerl(const qpid::types::Variant* v) {
- SV* result = newSV(0);
- try {
- switch (v->getType()) {
- case qpid::types::VAR_VOID: {
- sv_setiv(result, (IV)0);
- break;
- }
- case qpid::types::VAR_BOOL : {
- result = boolSV(v->asBool());
- break;
- }
- case qpid::types::VAR_UINT8 :
- case qpid::types::VAR_UINT16 :
- case qpid::types::VAR_UINT32 : {
- sv_setuv(result, (UV)v->asUint32());
- break;
- }
- case qpid::types::VAR_UINT64 : {
- sv_setuv(result, (UV)v->asUint64());
- break;
- }
- case qpid::types::VAR_INT8 :
- case qpid::types::VAR_INT16 :
- case qpid::types::VAR_INT32 : {
- sv_setiv(result, (IV)v->asInt32());
- break;
- }
- case qpid::types::VAR_INT64 : {
- sv_setiv(result, (IV)v->asInt64());
- break;
- }
- case qpid::types::VAR_FLOAT : {
- sv_setnv(result, (double)v->asFloat());
- break;
- }
- case qpid::types::VAR_DOUBLE : {
- sv_setnv(result, (double)v->asDouble());
- break;
- }
- 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);
- }
- break;
- }
- case qpid::types::VAR_MAP : {
- result = MapToPerl(&(v->asMap()));
- break;
- }
- case qpid::types::VAR_LIST : {
- result = ListToPerl(&(v->asList()));
- break;
- }
- case qpid::types::VAR_UUID : {
- }
- }
- } catch (qpid::types::Exception& ex) {
- Perl_croak(aTHX_ ex.what());
- }
-
- return result;
- }
-
- SV* MapToPerl(const qpid::types::Variant::Map* map) {
- HV *hv = newHV();
- qpid::types::Variant::Map::const_iterator iter;
- for (iter = map->begin(); iter != map->end(); iter++) {
- const std::string key(iter->first);
- SV* perlval = VariantToPerl(&(iter->second));
- hv_store(hv, key.c_str(), key.size(), perlval, 0);
- }
- return sv_2mortal(newRV_noinc((SV *)hv));
- }
-
- SV* ListToPerl(const qpid::types::Variant::List* list) {
- AV* av = newAV();
- qpid::types::Variant::List::const_iterator iter;
- for (iter = list->begin(); iter != list->end(); iter++) {
- SV* perlval = VariantToPerl(&(*iter));
- av_push(av, perlval);
- }
- return sv_2mortal(newRV_noinc((SV *)av));
- }
-
- void PerlToMap(SV* hash, qpid::types::Variant::Map* map) {
- map->clear();
- HV* hv = (HV *)SvRV(hash);
- HE* he;
- while((he = hv_iternext(hv)) != NULL) {
- SV* svkey = HeSVKEY_force(he);
- SV* svval = HeVAL(he);
- (*map)[std::string(SvPV_nolen(svkey))] = PerlToVariant(svval);
- }
- }
-
- void PerlToList(SV* ary, qpid::types::Variant::List* list) {
- list->clear();
- AV * av = (AV *)SvRV(ary);
- I32 len = av_len(av) + 1;
- if (len > 0) {
- for (I32 i = 0; i < len; i++) {
- list->push_back(PerlToVariant(*av_fetch(av, i, 0)));
- }
- }
- }
-%}
-
-%typemap (in) void * {
- $1 = (void *)SvIV($input);
-}
-
-%typemap (out) void * {
- sv_setiv($result, (IV)$1);
- argvi++;
-}
-
-%typemap (in) uint8_t, uint16_t, uint32_t, uint64_t {
- if (SvIOK($input)) {
- $1 = ($1_ltype)SvUV($input);
- }
- else {
- SWIG_exception_fail(SWIG_ValueError, "not an integer");
- }
-}
-
-%typemap (out) uint8_t, uint16_t, uint32_t, uint64_t {
- sv_setuv($result, (UV)$1);
- argvi++;
-}
-
-%typemap (in) int8_t, int16_t, int32_t, int64_t {
- if (SvIOK($input)) {
- $1 = ($1_ltype)SvIV($input);
- }
- else {
- SWIG_exception_fail(SWIG_ValueError, "not an integer");
- }
-}
-
-%typemap (out) int8_t, int16_t, int32_t, int64_t {
- sv_setiv($result, (IV)$1);
- argvi++;
-}
-
-%typemap(in) bool {
- $1 = (bool)SvTRUE($input);
-}
-
-%typemap (out) bool {
- $result = boolSV($1);
- argvi++;
-}
-
-
-%typemap (typecheck, precedence=SWIG_TYPECHECK_UINT64) uint64_t {
- $1 = SvIOK($input) ? 1 : 0;
-}
-
-%typemap (typecheck, precedence=SWIG_TYPECHECK_UINT32) uint32_t {
- $1 = SvIOK($input) ? 1 : 0;
-}
-
-
-/*
- * Variant types: C++ --> Perl
- */
-%typemap(out) qpid::types::Variant::Map {
- $result = MapToPerl(&$1);
- argvi++;
-}
-
-%typemap(out) qpid::types::Variant::Map& {
- $result = MapToPerl($1);
- argvi++;
-}
-
-%typemap(out) qpid::types::Variant::List {
- $result = ListToPerl(&$1);
- argvi++;
-}
-
-%typemap(out) qpid::types::Variant::List& {
- $result = ListToPerl($1);
- argvi++;
-}
-
-%typemap(out) qpid::types::Variant& {
- $result = VariantToPerl($1);
- argvi++;
-}
-
-
-/*
- * Variant types: Perl --> C++
- */
-%typemap(in) qpid::types::Variant& {
- $1 = new qpid::types::Variant(PerlToVariant($input));
-}
-
-%typemap(in) qpid::types::Variant::Map& {
- $1 = new qpid::types::Variant::Map();
- PerlToMap($input, $1);
-
-}
-
-%typemap(in) qpid::types::Variant::List& {
- $1 = new qpid::types::Variant::List();
- PerlToList($input, $1);
-
-}
-
-%typemap(in) const qpid::types::Variant::Map const & {
- $1 = new qpid::types::Variant::Map();
- PerlToMap($input, $1);
-}
-
-%typemap(in) const qpid::types::Variant::List const & {
- $1 = new qpid::types::Variant::List();
- PerlToList($input, $1);
-}
-
-%typemap(freearg) qpid::types::Variant& {
- delete $1;
-}
-
-%typemap(freearg) qpid::types::Variant::Map& {
- delete $1;
-}
-
-%typemap(freearg) qpid::types::Variant::List& {
- delete $1;
-}
-
-
-/*
- * Variant types: typecheck maps
- */
-%typemap(typecheck) qpid::types::Variant::Map& {
- $1 = (SvTYPE(SvRV($input)) == SVt_PVHV) ? 1 : 0;
-}
-
-%typemap(typecheck) qpid::types::Variant::List& {
- $1 = (SvTYPE(SvRV($input)) == SVt_PVAV) ? 1 : 0;
-}
-
-%typemap(typecheck) qpid::types::Variant& {
- $1 = (SvIOK($input) ||
- SvNOK($input) ||
- SvPOK($input) ) ? 1 : 0;
-}
-
-%typemap(typecheck) const qpid::types::Variant::Map const & {
- $1 = (SvTYPE(SvRV($input)) == SVt_PVHV) ? 1 : 0;
-}
-
-%typemap(typecheck) const qpid::types::Variant::List const & {
- $1 = (SvTYPE(SvRV($input)) == SVt_PVAV) ? 1 : 0;
-}
-
-%typemap(typecheck) const qpid::types::Variant const & {
- $1 = (SvIOK($input) ||
- SvNOK($input) ||
- SvPOK($input) ) ? 1 : 0;
-}
-
-/* No boolean type for perl.
- Boolean is simply and integer in perl
-*/
-%typecheck(SWIG_TYPECHECK_BOOL) bool {
- $1 = (SvIOK($input)) ? 1 : 0;
-}
diff --git a/cpp/bindings/swig_python_typemaps.i b/cpp/bindings/swig_python_typemaps.i
deleted file mode 100644
index 25a4e46b18..0000000000
--- a/cpp/bindings/swig_python_typemaps.i
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* For UUID objects, to convert them to Python uuid.UUID objects,
- * we'll need a reference to the uuid module.
- */
-%{
-static PyObject* pUuidModule;
-%}
-
-%init %{
- /* Instead of directly referencing the uuid module (which is not available
- * on older versions of Python), reference the wrapper defined in
- * qpid.datatypes.
- */
- pUuidModule = PyImport_ImportModule("qpid.datatypes");
-
- /* Although it is not required, we'll publish the uuid module in our
- * module, as if this module was a python module and we called
- * "import uuid"
- */
- Py_INCREF(pUuidModule);
- PyModule_AddObject(m, "uuid", pUuidModule);
-%}
-
-
-%wrapper %{
-
-#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
-typedef int Py_ssize_t;
-#define PY_SSIZE_T_MAX INT_MAX
-#define PY_SSIZE_T_MIN INT_MIN
-#endif
-
-
- PyObject* MapToPy(const qpid::types::Variant::Map*);
- PyObject* ListToPy(const qpid::types::Variant::List*);
- PyObject* UuidToPy(const qpid::types::Uuid*);
- void PyToMap(PyObject*, qpid::types::Variant::Map*);
- void PyToList(PyObject*, qpid::types::Variant::List*);
-
- qpid::types::Variant PyToVariant(PyObject* value) {
- if (PyBool_Check(value)) return qpid::types::Variant(bool(PyInt_AS_LONG(value) ? true : false));
- 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 (PyDict_Check(value)) {
- qpid::types::Variant::Map map;
- PyToMap(value, &map);
- return qpid::types::Variant(map);
- }
- if (PyList_Check(value)) {
- qpid::types::Variant::List list;
- PyToList(value, &list);
- return qpid::types::Variant(list);
- }
- return qpid::types::Variant();
- }
-
- PyObject* VariantToPy(const qpid::types::Variant* v) {
- PyObject* result;
- try {
- switch (v->getType()) {
- case qpid::types::VAR_VOID: {
- result = Py_None;
- break;
- }
- case qpid::types::VAR_BOOL : {
- result = v->asBool() ? Py_True : Py_False;
- break;
- }
- case qpid::types::VAR_UINT8 :
- case qpid::types::VAR_UINT16 :
- case qpid::types::VAR_UINT32 : {
- result = PyInt_FromLong((long) v->asUint32());
- break;
- }
- case qpid::types::VAR_UINT64 : {
- result = PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) v->asUint64());
- break;
- }
- case qpid::types::VAR_INT8 :
- case qpid::types::VAR_INT16 :
- case qpid::types::VAR_INT32 : {
- result = PyInt_FromLong((long) v->asInt32());
- break;
- }
- case qpid::types::VAR_INT64 : {
- result = PyLong_FromLongLong((PY_LONG_LONG) v->asInt64());
- break;
- }
- case qpid::types::VAR_FLOAT : {
- result = PyFloat_FromDouble((double) v->asFloat());
- break;
- }
- case qpid::types::VAR_DOUBLE : {
- result = PyFloat_FromDouble((double) v->asDouble());
- break;
- }
- case qpid::types::VAR_STRING : {
- const std::string val(v->asString());
- result = PyString_FromStringAndSize(val.c_str(), val.size());
- break;
- }
- case qpid::types::VAR_MAP : {
- result = MapToPy(&(v->asMap()));
- break;
- }
- case qpid::types::VAR_LIST : {
- result = ListToPy(&(v->asList()));
- break;
- }
- case qpid::types::VAR_UUID : {
- qpid::types::Uuid uuid = v->asUuid();
- result = UuidToPy(&uuid);
- break;
- }
- }
- } catch (qpid::types::Exception& ex) {
- PyErr_SetString(PyExc_RuntimeError, ex.what());
- result = 0;
- }
-
- return result;
- }
-
- PyObject* MapToPy(const qpid::types::Variant::Map* map) {
- PyObject* result = PyDict_New();
- qpid::types::Variant::Map::const_iterator iter;
- for (iter = map->begin(); iter != map->end(); iter++) {
- const std::string key(iter->first);
- PyObject* pyval = VariantToPy(&(iter->second));
- if (pyval == 0)
- return 0;
- PyDict_SetItem(result, PyString_FromStringAndSize(key.c_str(), key.size()), pyval);
- }
- return result;
- }
-
- PyObject* ListToPy(const qpid::types::Variant::List* list) {
- PyObject* result = PyList_New(list->size());
- qpid::types::Variant::List::const_iterator iter;
- Py_ssize_t idx(0);
- for (iter = list->begin(); iter != list->end(); iter++) {
- PyObject* pyval = VariantToPy(&(*iter));
- if (pyval == 0)
- return 0;
- PyList_SetItem(result, idx, pyval);
- idx++;
- }
- return result;
- }
-
- PyObject* UuidToPy(const qpid::types::Uuid * uuid) {
- PyObject* pUuidClass = PyObject_GetAttrString(pUuidModule, "UUID");
- if (!pUuidClass) {
- // Failed to get UUID class
- return 0;
- }
-
- PyObject* pArgs = PyTuple_New(0);
- PyObject* pKw = PyDict_New();
- PyObject* pData = PyString_FromStringAndSize(
- (const char*)(uuid->data()), 16);
- PyDict_SetItemString(pKw, "bytes", pData);
-
- PyObject* result = PyObject_Call(pUuidClass, pArgs, pKw);
-
- Py_DECREF(pData);
- Py_DECREF(pKw);
- Py_DECREF(pArgs);
- Py_DECREF(pUuidClass);
-
- return result;
- }
-
-
- void PyToMap(PyObject* obj, qpid::types::Variant::Map* map) {
- map->clear();
- Py_ssize_t iter(0);
- PyObject *key;
- PyObject *val;
- while (PyDict_Next(obj, &iter, &key, &val))
- (*map)[std::string(PyString_AS_STRING(key))] = PyToVariant(val);
- }
-
- void PyToList(PyObject* obj, qpid::types::Variant::List* list) {
- list->clear();
- Py_ssize_t count(PyList_Size(obj));
- for (Py_ssize_t idx = 0; idx < count; idx++)
- list->push_back(PyToVariant(PyList_GetItem(obj, idx)));
- }
-
-%}
-
-
-/* unsigned32 Convert from Python --> C */
-%typemap(in) uint32_t {
- if (PyInt_Check($input)) {
- $1 = (uint32_t) PyInt_AsUnsignedLongMask($input);
- } else if (PyLong_Check($input)) {
- $1 = (uint32_t) PyLong_AsUnsignedLong($input);
- } else {
- SWIG_exception_fail(SWIG_ValueError, "unknown integer type");
- }
-}
-
-/* unsinged32 Convert from C --> Python */
-%typemap(out) uint32_t {
- $result = PyInt_FromLong((long)$1);
-}
-
-
-/* unsigned16 Convert from Python --> C */
-%typemap(in) uint16_t {
- if (PyInt_Check($input)) {
- $1 = (uint16_t) PyInt_AsUnsignedLongMask($input);
- } else if (PyLong_Check($input)) {
- $1 = (uint16_t) PyLong_AsUnsignedLong($input);
- } else {
- SWIG_exception_fail(SWIG_ValueError, "unknown integer type");
- }
-}
-
-/* unsigned16 Convert from C --> Python */
-%typemap(out) uint16_t {
- $result = PyInt_FromLong((long)$1);
-}
-
-
-/* signed32 Convert from Python --> C */
-%typemap(in) int32_t {
- if (PyInt_Check($input)) {
- $1 = (int32_t) PyInt_AsLong($input);
- } else if (PyLong_Check($input)) {
- $1 = (int32_t) PyLong_AsLong($input);
- } else {
- SWIG_exception_fail(SWIG_ValueError, "unknown integer type");
- }
-}
-
-/* signed32 Convert from C --> Python */
-%typemap(out) int32_t {
- $result = PyInt_FromLong((long)$1);
-}
-
-
-/* unsigned64 Convert from Python --> C */
-%typemap(in) uint64_t {
-%#ifdef HAVE_LONG_LONG
- if (PyLong_Check($input)) {
- $1 = (uint64_t)PyLong_AsUnsignedLongLong($input);
- } else if (PyInt_Check($input)) {
- $1 = (uint64_t)PyInt_AsUnsignedLongLongMask($input);
- } else
-%#endif
- {
- SWIG_exception_fail(SWIG_ValueError, "unsupported integer size - uint64_t input too large");
- }
-}
-
-/* unsigned64 Convert from C --> Python */
-%typemap(out) uint64_t {
-%#ifdef HAVE_LONG_LONG
- $result = PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)$1);
-%#else
- SWIG_exception_fail(SWIG_ValueError, "unsupported integer size - uint64_t output too large");
-%#endif
-}
-
-/* signed64 Convert from Python --> C */
-%typemap(in) int64_t {
-%#ifdef HAVE_LONG_LONG
- if (PyLong_Check($input)) {
- $1 = (int64_t)PyLong_AsLongLong($input);
- } else if (PyInt_Check($input)) {
- $1 = (int64_t)PyInt_AsLong($input);
- } else
-%#endif
- {
- SWIG_exception_fail(SWIG_ValueError, "unsupported integer size - int64_t input too large");
- }
-}
-
-/* signed64 Convert from C --> Python */
-%typemap(out) int64_t {
-%#ifdef HAVE_LONG_LONG
- $result = PyLong_FromLongLong((PY_LONG_LONG)$1);
-%#else
- SWIG_exception_fail(SWIG_ValueError, "unsupported integer size - int64_t output too large");
-%#endif
-}
-
-
-/* Convert from Python --> C */
-%typemap(in) void * {
- $1 = (void *)$input;
-}
-
-/* Convert from C --> Python */
-%typemap(out) void * {
- $result = (PyObject *) $1;
- Py_INCREF($result);
-}
-
-/*
- * Variant types: C++ --> Python
- */
-%typemap(out) qpid::types::Variant::Map {
- $result = MapToPy(&$1);
-}
-
-%typemap(out) qpid::types::Variant::Map& {
- $result = MapToPy($1);
-}
-
-%typemap(out) qpid::types::Variant::List {
- $result = ListToPy(&$1);
-}
-
-%typemap(out) qpid::types::Variant::List& {
- $result = ListToPy($1);
-}
-
-%typemap(out) qpid::types::Variant& {
- $result = VariantToPy($1);
-}
-
-/*
- * UUID type: C++ --> Python
- */
-%typemap(out) qpid::types::UUID & {
- $result = UuidToPy($1);
-}
-
-
-/*
- * Variant types: Ruby --> C++
- */
-%typemap(in) qpid::types::Variant& {
- $1 = new qpid::types::Variant(PyToVariant($input));
-}
-
-%typemap(in) qpid::types::Variant::Map& {
- $1 = new qpid::types::Variant::Map();
- PyToMap($input, $1);
-}
-
-%typemap(in) qpid::types::Variant::List& {
- $1 = new qpid::types::Variant::List();
- PyToList($input, $1);
-}
-
-%typemap(in) const qpid::types::Variant::Map const & {
- $1 = new qpid::types::Variant::Map();
- PyToMap($input, $1);
-}
-
-%typemap(in) const qpid::types::Variant::List const & {
- $1 = new qpid::types::Variant::List();
- PyToList($input, $1);
-}
-
-%typemap(freearg) qpid::types::Variant& {
- delete $1;
-}
-
-%typemap(freearg) qpid::types::Variant::Map& {
- delete $1;
-}
-
-%typemap(freearg) qpid::types::Variant::List& {
- delete $1;
-}
-
-
-/*
- * Variant types: typecheck maps
- */
-%typemap(typecheck) qpid::types::Variant::Map& {
- $1 = PyDict_Check($input) ? 1 : 0;
-}
-
-%typemap(typecheck) qpid::types::Variant::List& {
- $1 = PyList_Check($input) ? 1 : 0;
-}
-
-%typemap(typecheck) qpid::types::Variant& {
- $1 = (PyFloat_Check($input) ||
- PyString_Check($input) ||
- PyInt_Check($input) ||
- PyLong_Check($input) ||
- PyDict_Check($input) ||
- PyList_Check($input) ||
- PyBool_Check($input)) ? 1 : 0;
-}
-
-%typemap(typecheck) const qpid::types::Variant::Map const & {
- $1 = PyDict_Check($input) ? 1 : 0;
-}
-
-%typemap(typecheck) const qpid::types::Variant::List const & {
- $1 = PyList_Check($input) ? 1 : 0;
-}
-
-%typemap(typecheck) const qpid::types::Variant const & {
- $1 = (PyFloat_Check($input) ||
- PyString_Check($input) ||
- PyInt_Check($input) ||
- PyLong_Check($input) ||
- PyDict_Check($input) ||
- PyList_Check($input) ||
- PyBool_Check($input)) ? 1 : 0;
-}
-
-%typemap(typecheck) bool {
- $1 = PyBool_Check($input) ? 1 : 0;
-}
-
-
-
-%typemap (typecheck, precedence=SWIG_TYPECHECK_UINT64) uint64_t {
- $1 = PyLong_Check($input) ? 1 : 0;
-}
-
-%typemap (typecheck, precedence=SWIG_TYPECHECK_UINT32) uint32_t {
- $1 = PyInt_Check($input) ? 1 : 0;
-}
-
diff --git a/cpp/bindings/swig_ruby_typemaps.i b/cpp/bindings/swig_ruby_typemaps.i
deleted file mode 100644
index 1a07cc86b0..0000000000
--- a/cpp/bindings/swig_ruby_typemaps.i
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-%wrapper %{
-
-#include <stdarg.h>
-
- VALUE MapToRb(const qpid::types::Variant::Map*);
- VALUE ListToRb(const qpid::types::Variant::List*);
- void RbToMap(VALUE, qpid::types::Variant::Map*);
- void RbToList(VALUE, qpid::types::Variant::List*);
-
- qpid::types::Variant RbToVariant(VALUE value) {
- switch (TYPE(value)) {
- case T_FLOAT: return qpid::types::Variant(NUM2DBL(value));
- case T_STRING: return qpid::types::Variant(StringValuePtr(value));
- 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);
- case T_FALSE: return qpid::types::Variant(false);
- case T_HASH: {
- qpid::types::Variant::Map map;
- RbToMap(value, &map);
- return qpid::types::Variant(map);
- }
- case T_ARRAY: {
- qpid::types::Variant::List list;
- RbToList(value, &list);
- return qpid::types::Variant(list);
- }
- default: return qpid::types::Variant();
- }
- }
-
- VALUE VariantToRb(const qpid::types::Variant* v) {
- VALUE result = Qnil;
- try {
- switch (v->getType()) {
- case qpid::types::VAR_VOID: {
- result = Qnil;
- break;
- }
- case qpid::types::VAR_BOOL : {
- result = v->asBool() ? Qtrue : Qfalse;
- break;
- }
- case qpid::types::VAR_UINT8 :
- case qpid::types::VAR_UINT16 :
- case qpid::types::VAR_UINT32 : {
- result = UINT2NUM(v->asUint32());
- break;
- }
- case qpid::types::VAR_UINT64 : {
- result = ULL2NUM(v->asUint64());
- break;
- }
- case qpid::types::VAR_INT8 :
- case qpid::types::VAR_INT16 :
- case qpid::types::VAR_INT32 : {
- result = INT2NUM(v->asInt32());
- break;
- }
- case qpid::types::VAR_INT64 : {
- result = LL2NUM(v->asInt64());
- break;
- }
- case qpid::types::VAR_FLOAT : {
- result = rb_float_new((double) v->asFloat());
- break;
- }
- case qpid::types::VAR_DOUBLE : {
- result = rb_float_new(v->asDouble());
- break;
- }
- case qpid::types::VAR_STRING : {
- const std::string val(v->asString());
- result = rb_str_new(val.c_str(), val.size());
- break;
- }
- case qpid::types::VAR_MAP : {
- result = MapToRb(&(v->asMap()));
- break;
- }
- case qpid::types::VAR_LIST : {
- result = ListToRb(&(v->asList()));
- break;
- }
- case qpid::types::VAR_UUID : {
- }
- }
- } catch (qpid::types::Exception& ex) {
- static VALUE error = rb_define_class("Error", rb_eStandardError);
- rb_raise(error, ex.what());
- }
-
- return result;
- }
-
- VALUE MapToRb(const qpid::types::Variant::Map* map) {
- VALUE result = rb_hash_new();
- qpid::types::Variant::Map::const_iterator iter;
- for (iter = map->begin(); iter != map->end(); iter++) {
- const std::string key(iter->first);
- VALUE rbval = VariantToRb(&(iter->second));
- rb_hash_aset(result, rb_str_new(key.c_str(), key.size()), rbval);
- }
- return result;
- }
-
- VALUE ListToRb(const qpid::types::Variant::List* list) {
- VALUE result = rb_ary_new2(list->size());
- qpid::types::Variant::List::const_iterator iter;
- for (iter = list->begin(); iter != list->end(); iter++) {
- VALUE rbval = VariantToRb(&(*iter));
- rb_ary_push(result, rbval);
- }
- return result;
- }
-
- VALUE HashIter(VALUE data_ary, VALUE context) {
- VALUE key = rb_ary_entry(data_ary, 0);
- VALUE val = rb_ary_entry(data_ary, 1);
- qpid::types::Variant::Map* map((qpid::types::Variant::Map*) context);
- (*map)[std::string(StringValuePtr(key))] = RbToVariant(val);
- return data_ary;
- }
-
- VALUE AryIter(VALUE data, VALUE context) {
- qpid::types::Variant::List* list((qpid::types::Variant::List*) context);
- list->push_back(RbToVariant(data));
- return data;
- }
-
- void RbToMap(VALUE hash, qpid::types::Variant::Map* map) {
- map->clear();
- rb_iterate(rb_each, hash, (VALUE(*)(ANYARGS))HashIter, (VALUE) map);
- }
-
- void RbToList(VALUE ary, qpid::types::Variant::List* list) {
- list->clear();
- rb_iterate(rb_each, ary, (VALUE(*)(ANYARGS))AryIter, (VALUE) list);
- }
-%}
-
-%typemap (in) void *
-{
- $1 = (void *) $input;
-}
-
-%typemap (out) void *
-{
- $result = (VALUE) $1;
-}
-
-%typemap (in) uint8_t
-{
- $1 = NUM2UINT ($input);
-}
-
-%typemap (out) uint8_t
-{
- $result = UINT2NUM((uint8_t) $1);
-}
-
-%typemap (in) int8_t
-{
- $1 = NUM2INT ($input);
-}
-
-%typemap (out) int8_t
-{
- $result = INT2NUM((int8_t) $1);
-}
-
-%typemap (in) uint16_t
-{
- $1 = NUM2UINT ($input);
-}
-
-%typemap (out) uint16_t
-{
- $result = UINT2NUM((uint16_t) $1);
-}
-
-%typemap (in) uint32_t
-{
- if (TYPE($input) == T_BIGNUM)
- $1 = NUM2UINT($input);
- else
- $1 = FIX2UINT($input);
-}
-
-%typemap (out) uint32_t
-{
- $result = UINT2NUM((uint32_t) $1);
-}
-
-%typemap (in) int32_t
-{
- if (TYPE($input) == T_BIGNUM)
- $1 = NUM2INT($input);
- else
- $1 = FIX2INT($input);
-}
-
-%typemap (out) int32_t
-{
- $result = INT2NUM((int32_t) $1);
-}
-
-%typemap (typecheck, precedence=SWIG_TYPECHECK_INTEGER) uint32_t {
- $1 = FIXNUM_P($input);
-}
-
-%typemap (in) uint64_t
-{
- if (TYPE($input) == T_BIGNUM)
- $1 = NUM2ULL($input);
- else
- $1 = (uint64_t) FIX2ULONG($input);
-}
-
-%typemap (out) uint64_t
-{
- $result = ULL2NUM((uint64_t) $1);
-}
-
-%typemap (in) int64_t
-{
- if (TYPE($input) == T_BIGNUM)
- $1 = NUM2LL($input);
- else
- $1 = (int64_t) FIX2LONG($input);
-}
-
-%typemap (out) int64_t
-{
- $result = LL2NUM((int64_t) $1);
-}
-
-/*
- * Variant types: C++ --> Ruby
- */
-%typemap(out) qpid::types::Variant::Map {
- $result = MapToRb(&$1);
-}
-
-%typemap(out) qpid::types::Variant::Map& {
- $result = MapToRb($1);
-}
-
-%typemap(out) qpid::types::Variant::List {
- $result = ListToRb(&$1);
-}
-
-%typemap(out) qpid::types::Variant::List& {
- $result = ListToRb($1);
-}
-
-%typemap(out) qpid::types::Variant& {
- $result = VariantToRb($1);
-}
-
-
-/*
- * Variant types: Ruby --> C++
- */
-%typemap(in) qpid::types::Variant& {
- $1 = new qpid::types::Variant(RbToVariant($input));
-}
-
-%typemap(in) qpid::types::Variant::Map& {
- $1 = new qpid::types::Variant::Map();
- RbToMap($input, $1);
-}
-
-%typemap(in) qpid::types::Variant::List& {
- $1 = new qpid::types::Variant::List();
- RbToList($input, $1);
-}
-
-%typemap(in) const qpid::types::Variant::Map const & {
- $1 = new qpid::types::Variant::Map();
- RbToMap($input, $1);
-}
-
-%typemap(in) const qpid::types::Variant::List const & {
- $1 = new qpid::types::Variant::List();
- RbToList($input, $1);
-}
-
-%typemap(freearg) qpid::types::Variant& {
- delete $1;
-}
-
-%typemap(freearg) qpid::types::Variant::Map& {
- delete $1;
-}
-
-%typemap(freearg) qpid::types::Variant::List& {
- delete $1;
-}
-
-
-/*
- * Variant types: typecheck maps
- */
-%typemap(typecheck) qpid::types::Variant::Map& {
- $1 = (TYPE($input) == T_HASH) ? 1 : 0;
-}
-
-%typemap(typecheck) qpid::types::Variant::List& {
- $1 = (TYPE($input) == T_ARRAY) ? 1 : 0;
-}
-
-%typemap(typecheck) qpid::types::Variant& {
- $1 = (TYPE($input) == T_FLOAT ||
- TYPE($input) == T_STRING ||
- TYPE($input) == T_FIXNUM ||
- TYPE($input) == T_BIGNUM ||
- TYPE($input) == T_TRUE ||
- TYPE($input) == T_FALSE) ? 1 : 0;
-}
-
-%typemap(typecheck) qpid::types::Variant::Map const & {
- $1 = (TYPE($input) == T_HASH) ? 1 : 0;
-}
-
-%typemap(typecheck) qpid::types::Variant::List const & {
- $1 = (TYPE($input) == T_ARRAY) ? 1 : 0;
-}
-
-%typemap(typecheck) const qpid::types::Variant const & {
- $1 = (TYPE($input) == T_FLOAT ||
- TYPE($input) == T_STRING ||
- TYPE($input) == T_FIXNUM ||
- TYPE($input) == T_BIGNUM ||
- TYPE($input) == T_TRUE ||
- TYPE($input) == T_FALSE) ? 1 : 0;
-}
-
-%typemap(typecheck) bool {
- $1 = (TYPE($input) == T_TRUE ||
- TYPE($input) == T_FALSE) ? 1 : 0;
-}
-
-
-
-%typemap (typecheck, precedence=SWIG_TYPECHECK_INTEGER) uint64_t {
- $1 = FIXNUM_P($input);
-}
-