summaryrefslogtreecommitdiff
path: root/TAO/tests/Bug_3919_Regression/Test.idl
blob: f15c0dd0e0e43a80388d0f9bcd4e62fb8f94ea68 (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
//
// $Id$
//

#include "tao/OctetSeq.pidl"
#include "tao/StringSeq.pidl"

/// 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 {};

  enum MyAttRefValEnum {
    ArvAttribute,
    ArvInteger,
    ArvComposition
  };

  // NOTE: the (deprecated) anonymous sequence type in the union
  //       is intentional; the IDL compiler generated different
  //       code for this case as compared to using a proper
  //       forward and typedef.
  struct MyAttRef {
    string attRefName;
    string attRefQualifier;
    union MyAttRefValue switch(MyAttRefValEnum) {
      case ArvAttribute:    string attrValue; //value of a simple attribute
      case ArvInteger:      long intValue; // just for testing
      case ArvComposition:  sequence <MyAttRef> compValue; //a composition by specifying a sequence of MyAttRef elements.
    } attRefValue;
  };
  typedef sequence <MyAttRef> MyAttRefSequence;

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