summaryrefslogtreecommitdiff
path: root/modules/CIAO/tests/IDL_Test/Two_Templ_Args/TwoTemplArgs.idl
blob: 66fae8261b9d21646e6b2982f8731c822752fd9a (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
// $Id$

#ifndef MY_TEST_IDL
#define MY_TEST_IDL

#include <Components.idl>

module Test
{
   struct Foo
   {
      double myDouble;
      string myStr;
   };
};

exception ExceptType {};

module TemplTest<typename T, exception S>
{
   interface Bar
   {
      // having 2 or more args of the same template param type
      // causes an "illegal redefinition" error
      T myTestOperation(in T inParam, out T outParam) raises(S);
   };

   struct TemplStruct
   {
      T myTemplField;
   };
};

module TemplTest<Test::Foo, ExceptType> TemplatedInst;

component Baz
{
   provides  TemplatedInst::Bar         myBar;
   attribute TemplatedInst::TemplStruct myTemplStruct;
};

#endif