| Index: swig/Lib/typemaps/std_strings.swg
|
| ===================================================================
|
| --- swig/Lib/typemaps/std_strings.swg (revision 0)
|
| +++ swig/Lib/typemaps/std_strings.swg (revision 0)
|
| @@ -0,0 +1,82 @@
|
| +
|
| +/* defining the String asptr/from methods */
|
| +
|
| +%define %std_string_asptr(String, Char, SWIG_AsCharPtrAndSize, Frag)
|
| +%fragment(SWIG_AsPtr_frag(String),"header",fragment=Frag) {
|
| +SWIGINTERN int
|
| +SWIG_AsPtr_dec(String)(SWIG_Object obj, String **val)
|
| +{
|
| + Char* buf = 0 ; size_t size = 0; int alloc = SWIG_OLDOBJ;
|
| + if (SWIG_IsOK((SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc)))) {
|
| + if (buf) {
|
| + if (val) *val = new String(buf, size - 1);
|
| + if (alloc == SWIG_NEWOBJ) %delete_array(buf);
|
| + return SWIG_NEWOBJ;
|
| + } else {
|
| + if (val) *val = 0;
|
| + return SWIG_OLDOBJ;
|
| + }
|
| + } else {
|
| + static int init = 0;
|
| + static swig_type_info* descriptor = 0;
|
| + if (!init) {
|
| + descriptor = SWIG_TypeQuery(#String " *");
|
| + init = 1;
|
| + }
|
| + if (descriptor) {
|
| + String *vptr;
|
| + int res = SWIG_ConvertPtr(obj, (void**)&vptr, descriptor, 0);
|
| + if (SWIG_IsOK(res) && val) *val = vptr;
|
| + return res;
|
| + }
|
| + }
|
| + return SWIG_ERROR;
|
| +}
|
| +}
|
| +%enddef
|
| +
|
| +%define %std_string_from(String, SWIG_FromCharPtrAndSize, Frag)
|
| +%fragment(SWIG_From_frag(String),"header",fragment=Frag) {
|
| +SWIGINTERNINLINE SWIG_Object
|
| +SWIG_From_dec(String)(const String& s)
|
| +{
|
| + if (s.size()) {
|
| + return SWIG_FromCharPtrAndSize(s.data(), s.size());
|
| + } else {
|
| + return SWIG_FromCharPtrAndSize(s.c_str(), 0);
|
| + }
|
| +}
|
| +}
|
| +%enddef
|
| +
|
| +%define %std_string_asval(String)
|
| +%fragment(SWIG_AsVal_frag(String),"header", fragment=SWIG_AsPtr_frag(String)) {
|
| +SWIGINTERN int
|
| +SWIG_AsVal_dec(String)(SWIG_Object obj, String *val)
|
| +{
|
| + String* v = (String *) 0;
|
| + int res = SWIG_AsPtr(String)(obj, &v);
|
| + if (!SWIG_IsOK(res)) return res;
|
| + if (v) {
|
| + if (val) *val = *v;
|
| + if (SWIG_IsNewObj(res)) {
|
| + %delete(v);
|
| + res = SWIG_DelNewMask(res);
|
| + }
|
| + return res;
|
| + }
|
| + return SWIG_ERROR;
|
| +}
|
| +}
|
| +%enddef
|
| +
|
| +
|
| +%define %typemaps_std_string(String, Char, AsPtrMethod, FromMethod, CheckCode)
|
| +
|
| +%std_string_asptr(String, Char, AsPtrMethod, #AsPtrMethod)
|
| +%std_string_asval(String)
|
| +%std_string_from(String, FromMethod, #FromMethod)
|
| +
|
| +%typemaps_asptrfromn(%arg(CheckCode), String);
|
| +
|
| +%enddef
|
|
|