summaryrefslogtreecommitdiff
path: root/modules/CIAO/tests/IDL_Test/Two_Templ_Args/TwoTemplArgs.idl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/tests/IDL_Test/Two_Templ_Args/TwoTemplArgs.idl')
-rw-r--r--modules/CIAO/tests/IDL_Test/Two_Templ_Args/TwoTemplArgs.idl42
1 files changed, 42 insertions, 0 deletions
diff --git a/modules/CIAO/tests/IDL_Test/Two_Templ_Args/TwoTemplArgs.idl b/modules/CIAO/tests/IDL_Test/Two_Templ_Args/TwoTemplArgs.idl
new file mode 100644
index 00000000000..66fae8261b9
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Two_Templ_Args/TwoTemplArgs.idl
@@ -0,0 +1,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