summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--otk/ustring.i40
1 files changed, 40 insertions, 0 deletions
diff --git a/otk/ustring.i b/otk/ustring.i
new file mode 100644
index 00000000..45057334
--- /dev/null
+++ b/otk/ustring.i
@@ -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());
+ }
+
+}