summaryrefslogtreecommitdiff
path: root/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl
blob: 180db9bf90149d29703019d7c2dd4ee87334e351 (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// $Id$
/**
 * @file Cornucopia.idl
 * @author Jeff Parsons <j.parsons@vanderbilt.edu>
 *
 * Tests TAO_IDL generation of CIAO servant, executor IDL
 * and executor implementation stencil for a variety of
 * IDL3 constructs.
 */

#include <Components.idl>

module Supported
{
  interface IfacePawPaw
  {
    long paw_paw_op (out short spew);
    attribute boolean inbred;
  };

  interface IfaceMom : IfacePawPaw
  {
    readonly attribute wchar uni_tag;
    IfacePawPaw get_paw_paw ();
  };

  interface IfaceDad : IfacePawPaw
  {
    attribute string msg;
    long long get_big_int (in IfacePawPaw genealogy);
  };

  interface Iface : IfaceMom, IfaceDad
  {
    attribute wstring uni_uuid;
    void supported_op (inout unsigned long index);
  };
};

interface pface {};
interface uface {};
interface umface {};

valuetype pkey : Components::PrimaryKeyBase
{
  public string info;
};

eventtype pubtype {};
eventtype emittype {};
eventtype eattype {};

exception BadGet {};
exception BadSet {};
exception Whatever {};

module BaseMod
{
component CompBase supports Supported::Iface
  {
    attribute octet the_byte
      getraises (BadGet, Whatever) setraises (BadSet);
  };
};

enum Color
{
  RED,
  WHITE,
  BLUE
};

module DerivedMod
{
  component CompDerived : BaseMod::CompBase
  {
    attribute Color stripe;
    provides pface pface_provider;
    uses uface uface_user;
    uses multiple umface umface_umuser;
    publishes pubtype pubtype_publisher;
    emits emittype emittype_emitter;
    consumes eattype eattype_consumer;
  };
};

module HomeMod
{
  home CompBaseHome supports Supported::Iface manages BaseMod::CompBase
  {
    readonly attribute Color shade;
    pface fetch_managed_ports (out uface recep);
    factory base_init (in string id, in unsigned short uni_raw)
      raises (Whatever);
    finder bathroom_sink ();
  };

  home CompDerivedHome : CompBaseHome manages DerivedMod::CompDerived
  {
    exception ch_except {};
    void ch_op () raises (ch_except);
    factory def_init ();
    finder kitchen_sink (in string uid, in pkey key, in boolean all)
      raises (ch_except);
  };
};