diff options
Diffstat (limited to 'TAO/tests/Any/Recursive/Test.idl')
-rw-r--r-- | TAO/tests/Any/Recursive/Test.idl | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/TAO/tests/Any/Recursive/Test.idl b/TAO/tests/Any/Recursive/Test.idl new file mode 100644 index 00000000000..d1d5e447c36 --- /dev/null +++ b/TAO/tests/Any/Recursive/Test.idl @@ -0,0 +1,113 @@ +// +// $Id$ +// + +/// Put the interfaces in a module, to avoid global namespace pollution +module Test +{ + exception Recursive_Type_In_Any_Test_Failed {}; + exception Demarshaling_From_Any_Failed {}; + + struct RecursiveStruct; + typedef sequence<RecursiveStruct> RecursiveStructSeq; + + struct RecursiveStruct + { + RecursiveStructSeq recursive_structs; + long i; + RecursiveStructSeq recursive_structs_second; + }; + + // -------------------------- + + union RecursiveUnion; + typedef sequence<RecursiveUnion> RecursiveUnionSeq; + + union RecursiveUnion switch (short) + { + case 0: + RecursiveUnionSeq recursive_unions; + case 1: + short a; + case 2: + RecursiveUnionSeq recursive_unions_second; + default: + long i; + }; + + union RecursiveUnionNoDefault; + typedef sequence<RecursiveUnionNoDefault> RecursiveUnionSeqNoDefault; + + union RecursiveUnionNoDefault switch (short) + { + case 0: + RecursiveUnionSeqNoDefault recursive_unions; + case 1: + short a; + case 2: + RecursiveUnionSeqNoDefault recursive_unions_second; + }; + + // -------------------------- + + // -------------------------- + + enum VSort { + UNKNOWN_TYPE, + RECURSIVE_TYPE, + LONG_STYPE, + BOOL_STYPE + }; + + union VSortRecursiveUnion; + typedef sequence<VSortRecursiveUnion> VSortRecursiveUnionSeq; + union VSortRecursiveUnion switch (VSort) + { + case RECURSIVE_TYPE: + VSortRecursiveUnionSeq recursive_unions; + case LONG_STYPE: + long i; + }; + + // -------------------------- + + union EnumUnion switch (VSort) + { + case BOOL_STYPE: + boolean a; + case LONG_STYPE: + long i; + }; + + // -------------------------- + + valuetype IndirectlyRecursiveValuetype; + typedef sequence<IndirectlyRecursiveValuetype> + IndirectlyRecursiveValuetypeSeq; + + valuetype IndirectlyRecursiveValuetype + { + public IndirectlyRecursiveValuetypeSeq recursive_valuetypes; + }; + + // -------------------------- + + valuetype DirectlyRecursiveValuetype + { + public DirectlyRecursiveValuetype recursive_valuetype; + public DirectlyRecursiveValuetype recursive_valuetype_second; + }; + + // -------------------------- + + /// Simple test interface. + interface Hello + { + /// Return the any provided as the "in" argument. + any get_any (in any the_any); + + /// Shutdown the server ORB. + oneway void shutdown (); + }; + +}; |