interface Torture { string doString(in string inparam, out string outparam, inout string inoutparam); octet doOctet(in octet inparam, in octet outparam, inout octet inoutparam); short doShort(in short inparam, out short outparam, inout short inoutparam); long doLong(in long inparam, out long outparam, inout long inoutparam); 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(char) { 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(char) { 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); string doTheWorks(in short p1, in Object obj, in char achar); };