struct typ; // external or defined in SDL interface I { public: void op1( in int a, inout int b, out int c ); void op2( in string a, in ref<I> b, in int c, in lref<int> d, in lref<char> e, in sequence<char> f, in set<I> g ); }; // yields the following prototypes void I:: op1 ( long a , long &b , long &c ); void I:: op2 ( sdl_string a, Ref< I > b, long c, LREF(long) d, LREF(char) e, Sequence<char> f, Set<Ref<I> > g ) const ; // where #define LREF(T) T *
The function prototype for an SLD operation (method, member function) is generated as follows:
All methods are virtual.
In addition, the following translations are made:
If a template type (sequence, set) is used more than once in argument declarations, when the module is compiled with
#define MODULE_CODEto instantiate the templates, you will get a warning about duplicate template instantiations. To avoid that warning, use a typedef declaration for the template type, and use that, e.g.,
typedef sequence<int> intseq; .. void op1( // input arguments ... out intseq b, // replaces out sequence<int> b out intseq c // replaces out sequence<int> c );