summaryrefslogtreecommitdiff
path: root/TAO/tests/Any/Recursive/Test.idl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Any/Recursive/Test.idl')
-rw-r--r--TAO/tests/Any/Recursive/Test.idl113
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 ();
+ };
+
+};