#define BEGIN_METHOD ( name , arguments ) ...
Begins the implementation of a method.
Be careful ! As the implementation function will receive its arguments as a pointer at the interpreter stack, arguments is in fact the inside of a structure describing the stack contents.
Consequently :
GB_XXXX structure of the GB_VALUE family.
semicolons, and NOT commas.
The Gambas datatypes can be :
| Gambas datatype | Signature pattern | Corresponding structure |
|---|---|---|
Boolean | "b" | GB_BOOLEAN |
Integer | "i" | GB_INTEGER |
Float | "f" | GB_FLOAT |
String | "s" | GB_STRING |
Date | "d" | GB_DATE |
Object | "o" | GB_OBJECT |
Variant | "v" | GB_VARIANT |
a class named Abc | "Abc" | GB_OBJECT |
Example :
A method named foo declared this way :
...
GB_METHOD("foo", NULL, "iisvbInteger[];d", do_foo),
...
will be implemented this way :
BEGIN_METHOD(do_foo,
GB_INTEGER param1;
GB_INTEGER param2;
GB_STRING param3;
GB_VARIANT param4;
GB_BOOLEAN param5;
GB_OBJECT param6;
GB_DATE param7)
...
END_METHOD
Note that semicolons delimitate arguments, and that the last argument has no semicolon at its end.