summaryrefslogtreecommitdiff
path: root/trunk/TAO/orbsvcs/tests/InterfaceRepo/IDL3_Test/test.idl
blob: bbb6c86a00eec53c59fbc66a62694d8bd3d8917e (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// -*- C++ -*-
// $Id$

#ifndef INTERFACEREPO_IDL3_TEST
#define INTERFACEREPO_IDL3_TEST

// This module is here to contain the base valuetype for
// h_key below. This base class is required when a valuetype
// is used as a primary key. This module replaces the original
// #include of Components.idl, and breaks the resulting
// dependency of this test on CIAO. Note that this workaround
// is sufficient for the IFR loader, which is the only thing
// that processes this IDL file in the test. If the IDL
// compiler is executed on this file, there will be
// lookup errors, since it needs to find more things from
// Components.idl.
module Components
{
  typeprefix Components "omg.org";

  abstract valuetype PrimaryKeyBase {};
};

module help
{
  exception doh {};
  exception whups {};
};

module help
{
  interface c_supp1 {};
  interface c_supp2 {};
  component c_base supports c_supp1, c_supp2 {};
  valuetype v_base_base {};
  valuetype v_base : v_base_base {};
  interface v_supp1 {};
  abstract interface v_supp2 {};

  valuetype h_key : Components::PrimaryKeyBase
  {
    public long id_key;
  };

  interface h_supp1 {};
  interface h_supp2 {};
  home h_base supports h_supp1, h_supp2 manages c_base {};
};

module help
{
  interface c_provides1 {};
  interface c_uses1 {};
  interface c_uses2 {};
  eventtype c_emits1 {};
  eventtype c_publishes1 {};
  eventtype c_consumes1 {};
};

module mod
{
  component test_component : help::c_base
  {
    attribute long c_attr1
      getraises (help::doh)
      setraises (help::whups, help::doh);

    provides help::c_provides1 test_provides1;

    uses help::c_uses1 test_uses1;

    uses multiple help::c_uses2 test_uses2;

    emits help::c_emits1 test_emits1;

    publishes help::c_publishes1 test_publishes1;

    consumes help::c_consumes1 test_consumes1;
  };

  valuetype test_valuetype
    : help::v_base supports help::v_supp1, help::v_supp2
  {
    attribute long c_attr1
      getraises (help::doh)
      setraises (help::whups, help::doh);

    string v_op (inout string inoutarg,
                 in help::v_supp1 inarg,
                 out long outarg)
      raises (help::doh, help::whups);

    public string test_mem1;
    private short test_mem2;

    factory default_factory (in string set_tm1);
    factory create_tv (in string set_tm1a,
                       in short set_tm2)
      raises (help::whups, help::doh);
  };

  home test_home : help::h_base
    manages test_component primarykey help::h_key
  {
    factory create_tc (in string set_uid)
      raises (help::doh);

    finder find_tc (in long id_number,
                    in string id_string,
                    in help::h_key pkey)
      raises (help::whups);
  };

  eventtype test_eventtype
    : help::v_base supports help::v_supp1, help::v_supp2
  {
    attribute long c_attr1
      getraises (help::doh)
      setraises (help::whups, help::doh);

    string v_op (inout string inoutarg,
                 in help::v_supp1 inarg,
                 out long outarg)
      raises (help::doh, help::whups);

    public string test_mem1;
    private short test_mem2;

    factory default_factory (in string set_tm1);
    factory create_tv (in string set_tm1a,
                       in short set_tm2)
      raises (help::whups, help::doh);
  };
};

#endif /* INTERFACEREPO_IDL3_TEST */