summaryrefslogtreecommitdiff
path: root/TAO/tests/Any/Recursive/Test.idl
blob: a097416f9e5abcd02b05e86386a96dab5dae2676 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//
// $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;
  };

  // --------------------------

  union RecursiveUnion;
  typedef sequence<RecursiveUnion> RecursiveUnionSeq;

  union RecursiveUnion switch (short)
  {
  case 0:
    RecursiveUnionSeq recursive_unions;
  default:
    long i;
  };

  // --------------------------

  valuetype IndirectlyRecursiveValuetype;
  typedef sequence<IndirectlyRecursiveValuetype>
    IndirectlyRecursiveValuetypeSeq;

  valuetype IndirectlyRecursiveValuetype
  {
    public IndirectlyRecursiveValuetypeSeq recursive_valuetypes;
  };

  // --------------------------

  valuetype DirectlyRecursiveValuetype
  {
    public DirectlyRecursiveValuetype recursive_valuetype;
  };

  // --------------------------

  /// 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 ();
  };

};