1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
/*
* Exception typemaps (throws)
*/
%include <exception.i>
%typemap(throws, noblock=1) int, unsigned int, signed int,
int&,unsigned int&, signed int&,
long, unsigned long, signed long,
short, unsigned short,signed short,
long long, unsigned long long,
unsigned char, signed char,
long&, unsigned long&, signed long&,
short&, unsigned short&, signed short&,
long long&, unsigned long long&,
unsigned char&, signed char&,
size_t, size_t&,
ptrdiff_t, ptrdiff_t& {
char obj[20];
sprintf(obj, "%d", (int)$1);
SWIG_Scilab_Raise_Ex(obj, "$type", $descriptor);
}
%typemap(throws, noblock=1) enum SWIGTYPE {
char obj[20];
sprintf(obj, "%d", (int)$1);
SWIG_Scilab_Raise_Ex(obj, "$type", $descriptor);
}
%typemap(throws, noblock=1) float, double,
float&, double& {
char obj[20];
sprintf(obj, "%5.3f", (double)$1);
SWIG_Scilab_Raise_Ex(obj, "$type", $descriptor);
}
%typemap(throws, noblock=1) bool, bool& {
SWIG_Scilab_Raise_Ex($1 ? "true" : "false", "$type", $descriptor);
}
%typemap(throws, noblock=1) char*, char[ANY] {
SWIG_Scilab_Raise_Ex($1, "$type", $descriptor);
}
%typemap(throws, noblock=1) char, char& {
char obj[1];
sprintf(obj, "%c", (char)$1);
SWIG_Scilab_Raise_Ex(obj, "$type", $descriptor);
}
%typemap(throws, noblock=1) SWIGTYPE,
SWIGTYPE*,
SWIGTYPE [ANY],
SWIGTYPE & {
SWIG_Scilab_Raise_Ex((char*)NULL, "$type", $descriptor);
}
%typemap(throws, noblock=1) (...) {
SWIG_exception(SWIG_RuntimeError, "unknown exception");
}
|