// // lang.map for Ruby // // $Id: lang.map,v 1.2 1999/11/26 07:36:16 fukusima Exp $ // // Copyright (C) 1999 Network Applied Communication Laboratory, Inc. // // Masaki Fukushima // // This file defines default type-mappings for Ruby. // A typemap of 'SWIG_DEFAULT_TYPE' should be used to create default // mappings. // /**************************** FUNCTION INPUTS ****************************/ // void * %typemap(in) void * SWIG_DEFAULT_TYPE { Check_Type($source, T_STRING); if (SWIG_GetPtr(RSTRING($source)->ptr,(void **) &$target, (char *)0)) { rb_raise(rb_eTypeError, "Expected a pointer"); } } // User defined types and all other pointers %typemap(in) User * SWIG_DEFAULT_TYPE { Check_Type($source, T_STRING); if (SWIG_GetPtr(RSTRING($source)->ptr,(void **) &$target, "$mangle")) { rb_raise(rb_eTypeError, "Expected a $mangle"); } } /**************************** FUNCTION OUTPUTS ****************************/ // Pointers %typemap(out) User *SWIG_DEFAULT_TYPE { char *temp = (char *)malloc(strlen("$mangle")+22); SWIG_MakePtr(temp, (void *)$source, "$mangle"); $target = rb_str_new2(temp); free(temp); } /****************************** CONSTANTS *********************************/ // Pointers %typemap(const) User *SWIG_DEFAULT_TYPE { char *temp = (char *)malloc(strlen("$mangle")+22); SWIG_MakePtr(temp, (void *)$source, "$mangle"); rb_define_const($module, "$target", rb_str_new2(temp)); free(temp); }