interface I { struct SFixed { long member1; octet member2; }; SFixed doSFixed(in SFixed inparam, out SFixed outparam, inout SFixed inoutparam); struct SVar { string member1; long member2; }; SVar doSVar(in SVar inparam, out SVar outparam, inout SVar inoutparam); union UFixed switch(long) { case 'a': long x; case 'b': short y; default: float z; }; UFixed doUFixed(in UFixed inparam, out UFixed outparam, inout UFixed inoutparam); union UVar switch(long) { case 'a': long x; case 'b': string y; default: float z; }; UVar doUVar(in UVar inparam, out UVar outparam, inout UVar inoutparam); typedef sequence Seq; Seq doSeq(in Seq inparam, out Seq outparam, inout Seq inoutparam); typedef long AFixed[2][3]; AFixed doAFixed(in AFixed inparam, out AFixed outparam, inout AFixed inoutparam); typedef string AVar[2][3]; AVar doAVar(in AVar inparam, out AVar outparam, inout AVar inoutparam); };