add ustring.i which wraps otk::ustring for to/from python conversions
authorDana Jansens <danakj@orodu.net>
Mon, 13 Jan 2003 08:48:43 +0000 (08:48 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 13 Jan 2003 08:48:43 +0000 (08:48 +0000)
otk/ustring.i [new file with mode: 0644]

diff --git a/otk/ustring.i b/otk/ustring.i
new file mode 100644 (file)
index 0000000..4505733
--- /dev/null
@@ -0,0 +1,40 @@
+// SWIG typemaps for otk::ustring
+
+%{
+#include "ustring.hh"
+%}
+
+namespace otk {
+
+    class ustring;
+
+    /* Overloading check */
+
+    %typemap(typecheck) ustring = char *;
+    %typemap(typecheck) const ustring & = char *;
+
+    %typemap(in) ustring {
+        if (PyString_Check($input))
+            $1 = otk::ustring(PyString_AsString($input));
+        else
+            SWIG_exception(SWIG_TypeError, "ustring expected");
+    }
+
+    %typemap(in) const ustring & (otk::ustring temp) {
+        if (PyString_Check($input)) {
+            temp = otk::ustring(PyString_AsString($input));
+            $1 = &temp;
+        } else {
+            SWIG_exception(SWIG_TypeError, "ustring expected");
+        }
+    }
+
+    %typemap(out) ustring {
+        $result = PyString_FromString($1.c_str());
+    }
+
+    %typemap(out) const ustring & {
+        $result = PyString_FromString($1->c_str());
+    }
+
+}