summaryrefslogtreecommitdiff
path: root/CIAO/tests/IDL3/ImpliedIDL
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/tests/IDL3/ImpliedIDL')
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/All/README69
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/All/all.mpc28
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/All/convert.idl53
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/All/include.idl30
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl83
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl25
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc17
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl27
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc17
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl38
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc17
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl28
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc18
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl22
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc17
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl28
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc18
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h54
-rw-r--r--CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h54
29 files changed, 1183 insertions, 0 deletions
diff --git a/CIAO/tests/IDL3/ImpliedIDL/All/README b/CIAO/tests/IDL3/ImpliedIDL/All/README
new file mode 100644
index 00000000000..fe43b62b221
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/All/README
@@ -0,0 +1,69 @@
+ Converting IDL3 to IDL2
+ =======================
+
+Introduction
+============
+
+This directory contains a test for the executable
+tao_idl3_to_idl2, which inputs a single IDL file and
+outputs a single IDL file which has the IDL3 declarations
+from the input file converted to the corresponding 'implied
+IDL' declarations specificed by the mapping in the CCM
+document.
+
+This utility can be used in conjunction with some IDL compiler
+that does not support IDL3 keywords and syntax. The output of
+the utility can be processed by such a compiler, yielding code
+in the target programming language equivalent to that which
+would have been generated in one step by a CCM-aware IDL compiler.
+
+The tao_idl3_to_idl2 executable itself is built in
+CIAO_ROOT/tools/IDL3_to_IDL2. It uses the TAO IDL compiler
+front end parsing engine and the TAO IDL compiler driver
+files, so it depends on ACE. The IDL generation is
+accomplished by a custom backend library.
+
+Running The Test
+================
+
+This test is only to determine that the generated IDL files
+are valid. So once the converted IDL file (having the
+extension _IDL2.idl) is generated by tao_idl3_to_idl2, the
+TAO IDL compiler is executed on the generated IDL file and
+the resulting C++ files compiled. If the compilation is
+successful for all such files, the test is a success.
+
+Notable Build Features
+======================
+
+Two features of the MPC file for this test are of interest:
+
+1.
+Two of the three IDL files in the test, pass_through.idl and
+include.idl, contain no IDL3 constructs, but merely test the
+executable's regeneration of IDL2 constructs. Since one IDL
+file is included in the other, there is a dependency that
+requires both IDL files to be processed before running the
+IDL compiler on pass_through_IDL2.idl. The line
+
+ pass_through_IDL2.idl << include_IDL2.idl
+
+indicates this dependency to the MPC tool, ensuring the correct
+order of execution.
+
+2.
+The -Sm option passed to the IDL compiler must be used when
+processing an IDL file resulting from the execution of
+tao_idl3_to_idl2. This option disables the action of the
+tao_idl backend 'preprocessor' (which is 'on' by default)
+that adds implied IDL nodes to the Abstract Syntax Tree
+for subsequent C++ code generation. In the case of an eventtype,
+the CCM spec requires additional code generation for a corresponding
+implied 'event consumer' IDL interface, as well as for the
+eventtype itself. The tao_idl3_to_idl2 executable adds this
+interface explicitly to the generated IDL file, along with the
+original eventtype. Without the -Sm option, the event consumer
+interface would appear redundantly in both explicit and implied
+IDL, resulting in a name clash. Since the IDL compiler cannot
+know the origin of the IDL file it is processing, the -Sm
+option encapsulates that knowledge. \ No newline at end of file
diff --git a/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc b/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc
new file mode 100644
index 00000000000..ca32b465573
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc
@@ -0,0 +1,28 @@
+// -*- MPC -*-
+// $Id$
+
+project(ConvertIDL3) : taoidl3toidl2defaults, ciao_component_dnc {
+ idlflags += -Sm
+
+ IDL3TOIDL2_Files {
+ convert.idl
+ include.idl
+ pass_through.idl
+ }
+
+ IDL_Files {
+ convert_IDL2.idl
+ include_IDL2.idl
+ pass_through_IDL2.idl << include_IDL2.idl
+ }
+
+ Source_Files {
+ convert_IDL2C.cpp
+ convert_IDL2S.cpp
+ include_IDL2C.cpp
+ include_IDL2S.cpp
+ pass_through_IDL2C.cpp
+ pass_through_IDL2S.cpp
+ }
+}
+
diff --git a/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl b/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl
new file mode 100644
index 00000000000..68600a619b3
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl
@@ -0,0 +1,53 @@
+// $Id$
+/**
+ * @file convert.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests all conversions of IDL3 constructs to IDL2.
+ */
+
+#include <Components.idl>
+
+eventtype eattype;
+interface sface {};
+interface pface {};
+interface uface {};
+interface umface {};
+
+valuetype pkey : Components::PrimaryKeyBase
+{
+ public string info;
+};
+
+valuetype pubtype_base {};
+eventtype pubtype : pubtype_base {};
+eventtype emitype : pubtype {};
+eventtype eattype {};
+
+component CompBase supports sface
+{
+};
+
+component CompDerived : CompBase
+{
+ provides pface pface_provider;
+ uses uface uface_user;
+ uses multiple umface umface_umuser;
+ publishes pubtype pubtype_publisher;
+ emits emitype emitype_emitter;
+ consumes eattype eattype_consumer;
+};
+
+home CompBaseHome supports sface manages CompBase
+{
+};
+
+home CompDerivedHome : CompBaseHome manages CompDerived primarykey pkey
+{
+ 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);
+};
+
diff --git a/CIAO/tests/IDL3/ImpliedIDL/All/include.idl b/CIAO/tests/IDL3/ImpliedIDL/All/include.idl
new file mode 100644
index 00000000000..6a08a6c03d6
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/All/include.idl
@@ -0,0 +1,30 @@
+// $Id$
+/**
+ * @file include.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests tool's regeneration of IDL2 constructs, which
+ * should be basically unchanged.
+ */
+
+module pre_mod
+{
+ typedef long longarray[3][14][7];
+
+ exception wrong
+ {
+ sequence<sequence<long> > longseqseq;
+ string reasons[4][2];
+ wstring<3> why;
+ };
+
+ enum which
+ {
+ ZERO,
+ ONE,
+ TWO
+ };
+};
+
+const pre_mod::which which_one = pre_mod::ONE;
+
diff --git a/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl b/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl
new file mode 100644
index 00000000000..f5a4a76627c
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl
@@ -0,0 +1,83 @@
+// $Id$
+/**
+ * @file pass_through.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests tool's regeneration of IDL2 constructs, which
+ * should be basically unchanged.
+ */
+
+#pragma prefix "glooby"
+
+#include "include.idl"
+
+module pre_mod
+{
+ union uke switch (which)
+ {
+ case ONE:
+ case ZERO: string str_mem;
+ default: short s_mem;
+ };
+};
+
+module mod
+{
+ typeid mod "rama:lama/ding:dong";
+
+ interface base
+ {
+ readonly attribute unsigned long long ull_attr
+ raises (pre_mod::wrong);
+ };
+
+ interface foo
+ {
+ typeprefix foo "preefy";
+
+ exception wrongety_wrong
+ {
+ base unrelated;
+ string explanation;
+ };
+
+ attribute base base_attr
+ getraises (wrongety_wrong)
+ setraises (pre_mod::wrong, wrongety_wrong);
+ };
+
+ interface bleep;
+
+ abstract interface bar
+ {
+ base bar_op (in base inarg);
+ };
+
+ interface bleep : base, foo
+ {
+ oneway void oneway_op (in string strarg, in any anyarg);
+ bleep get_me ();
+ pre_mod::uke get_uke (out boolean success)
+ raises (pre_mod::wrong, foo::wrongety_wrong);
+ void throw_something ()
+ raises (pre_mod::wrong);
+ };
+
+ abstract valuetype vt_abase
+ {
+ };
+
+ valuetype vt_cbase
+ {
+ private bleep priv_bleep;
+ public string pub_str;
+ factory vt_init (in bleep bleeparg, in string stringarg)
+ raises (pre_mod::wrong);
+ };
+
+ valuetype vt : vt_cbase, vt_abase supports foo, bar
+ {
+ factory vt_default ();
+ };
+};
+
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl b/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl
new file mode 100644
index 00000000000..a5d5897f8cc
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl
@@ -0,0 +1,25 @@
+// $Id$
+/**
+ * @file ICBasic.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied idl functionality of basic components.
+ */
+
+#include <Components.idl>
+
+module Basic
+{
+ component Foo
+ {
+ };
+
+ interface Bar
+ {
+ Foo test_op_1 ();
+ void test_op_2 (in Foo f);
+ void test_op_3 (out Foo f);
+ };
+
+
+};
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc b/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc
new file mode 100644
index 00000000000..c1767d3310f
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICBasic"
+
+project(ICBasic_stub): ciao_client_dnc {
+
+ sharedname = ICBasic_stub
+ idlflags += -Wb,stub_export_macro=ICBASIC_STUB_Export -Wb,stub_export_include=ICBasic_stub_export.h -Wb,skel_export_macro=ICBASIC_SVNT_Export -Wb,skel_export_include=ICBasic_svnt_export.h
+ dynamicflags = ICBASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICBasic.idl
+ }
+
+ Source_Files {
+ ICBasicC.cpp
+ }
+}
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h b/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h
new file mode 100644
index 00000000000..1e735493546
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICBASIC_STUB
+// ------------------------------
+#ifndef ICBASIC_STUB_EXPORT_H
+#define ICBASIC_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (ICBASIC_STUB_HAS_DLL)
+# define ICBASIC_STUB_HAS_DLL 1
+#endif /* ! ICBASIC_STUB_HAS_DLL */
+
+#if defined (ICBASIC_STUB_HAS_DLL) && (ICBASIC_STUB_HAS_DLL == 1)
+# if defined (ICBASIC_STUB_BUILD_DLL)
+# define ICBASIC_STUB_Export ACE_Proper_Export_Flag
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICBASIC_STUB_BUILD_DLL */
+# define ICBASIC_STUB_Export ACE_Proper_Import_Flag
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICBASIC_STUB_BUILD_DLL */
+#else /* ICBASIC_STUB_HAS_DLL == 1 */
+# define ICBASIC_STUB_Export
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICBASIC_STUB_HAS_DLL == 1 */
+
+// Set ICBASIC_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICBASIC_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICBASIC_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICBASIC_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICBASIC_STUB_NTRACE */
+
+#if (ICBASIC_STUB_NTRACE == 1)
+# define ICBASIC_STUB_TRACE(X)
+#else /* (ICBASIC_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICBASIC_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICBASIC_STUB_NTRACE == 1) */
+
+#endif /* ICBASIC_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h b/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h
new file mode 100644
index 00000000000..b6c09e43f24
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICBASIC_SVNT
+// ------------------------------
+#ifndef ICBASIC_SVNT_EXPORT_H
+#define ICBASIC_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (ICBASIC_SVNT_HAS_DLL)
+# define ICBASIC_SVNT_HAS_DLL 1
+#endif /* ! ICBASIC_SVNT_HAS_DLL */
+
+#if defined (ICBASIC_SVNT_HAS_DLL) && (ICBASIC_SVNT_HAS_DLL == 1)
+# if defined (ICBASIC_SVNT_BUILD_DLL)
+# define ICBASIC_SVNT_Export ACE_Proper_Export_Flag
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICBASIC_SVNT_BUILD_DLL */
+# define ICBASIC_SVNT_Export ACE_Proper_Import_Flag
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICBASIC_SVNT_BUILD_DLL */
+#else /* ICBASIC_SVNT_HAS_DLL == 1 */
+# define ICBASIC_SVNT_Export
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICBASIC_SVNT_HAS_DLL == 1 */
+
+// Set ICBASIC_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICBASIC_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICBASIC_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICBASIC_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICBASIC_SVNT_NTRACE */
+
+#if (ICBASIC_SVNT_NTRACE == 1)
+# define ICBASIC_SVNT_TRACE(X)
+#else /* (ICBASIC_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICBASIC_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICBASIC_SVNT_NTRACE == 1) */
+
+#endif /* ICBASIC_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl
new file mode 100644
index 00000000000..01d41895a3a
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl
@@ -0,0 +1,27 @@
+// $Id$
+/**
+ * @file ICEventSink.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied idl features of event sinks
+ */
+
+#include <Components.idl>
+
+module ImpliedEventSink
+{
+ eventtype foo_event
+ {
+ };
+
+ component Foo
+ {
+ consumes foo_event foo;
+ };
+ /*
+ interface test
+ {
+ ImpliedEventSink::FooEventConsumers::foo_eventConsumer test_a ();
+ };
+ */
+};
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc
new file mode 100644
index 00000000000..ac7b02caf97
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICEventSink"
+
+project(ICEventSink_stub): ciao_client_dnc {
+
+ sharedname = ICEventSink_stub
+ idlflags += -Wb,stub_export_macro=ICEVENTSINK_STUB_Export -Wb,stub_export_include=ICEventSink_stub_export.h -Wb,skel_export_macro=ICEVENTSINK_SVNT_Export -Wb,skel_export_include=ICEventSink_svnt_export.h
+ dynamicflags = ICEVENTSINK_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICEventSink.idl
+ }
+
+ Source_Files {
+ ICEventSinkC.cpp
+ }
+}
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h
new file mode 100644
index 00000000000..d32e9541f3e
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSINK_STUB
+// ------------------------------
+#ifndef ICEVENTSINK_STUB_EXPORT_H
+#define ICEVENTSINK_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (ICEVENTSINK_STUB_HAS_DLL)
+# define ICEVENTSINK_STUB_HAS_DLL 1
+#endif /* ! ICEVENTSINK_STUB_HAS_DLL */
+
+#if defined (ICEVENTSINK_STUB_HAS_DLL) && (ICEVENTSINK_STUB_HAS_DLL == 1)
+# if defined (ICEVENTSINK_STUB_BUILD_DLL)
+# define ICEVENTSINK_STUB_Export ACE_Proper_Export_Flag
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSINK_STUB_BUILD_DLL */
+# define ICEVENTSINK_STUB_Export ACE_Proper_Import_Flag
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSINK_STUB_BUILD_DLL */
+#else /* ICEVENTSINK_STUB_HAS_DLL == 1 */
+# define ICEVENTSINK_STUB_Export
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSINK_STUB_HAS_DLL == 1 */
+
+// Set ICEVENTSINK_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSINK_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSINK_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSINK_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSINK_STUB_NTRACE */
+
+#if (ICEVENTSINK_STUB_NTRACE == 1)
+# define ICEVENTSINK_STUB_TRACE(X)
+#else /* (ICEVENTSINK_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSINK_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSINK_STUB_NTRACE == 1) */
+
+#endif /* ICEVENTSINK_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h
new file mode 100644
index 00000000000..2df3d57fbdf
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSINK_SVNT
+// ------------------------------
+#ifndef ICEVENTSINK_SVNT_EXPORT_H
+#define ICEVENTSINK_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (ICEVENTSINK_SVNT_HAS_DLL)
+# define ICEVENTSINK_SVNT_HAS_DLL 1
+#endif /* ! ICEVENTSINK_SVNT_HAS_DLL */
+
+#if defined (ICEVENTSINK_SVNT_HAS_DLL) && (ICEVENTSINK_SVNT_HAS_DLL == 1)
+# if defined (ICEVENTSINK_SVNT_BUILD_DLL)
+# define ICEVENTSINK_SVNT_Export ACE_Proper_Export_Flag
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSINK_SVNT_BUILD_DLL */
+# define ICEVENTSINK_SVNT_Export ACE_Proper_Import_Flag
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSINK_SVNT_BUILD_DLL */
+#else /* ICEVENTSINK_SVNT_HAS_DLL == 1 */
+# define ICEVENTSINK_SVNT_Export
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSINK_SVNT_HAS_DLL == 1 */
+
+// Set ICEVENTSINK_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSINK_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSINK_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSINK_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSINK_SVNT_NTRACE */
+
+#if (ICEVENTSINK_SVNT_NTRACE == 1)
+# define ICEVENTSINK_SVNT_TRACE(X)
+#else /* (ICEVENTSINK_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSINK_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSINK_SVNT_NTRACE == 1) */
+
+#endif /* ICEVENTSINK_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl
new file mode 100644
index 00000000000..08baec86e3f
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl
@@ -0,0 +1,38 @@
+// $Id$
+/**
+ * @file ICEventSource.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied IDL of event sources.
+ */
+
+#include <Components.idl>
+
+module ImpliedSources
+{
+ eventtype foo_event
+ {
+ };
+
+ eventtype bar_event
+ {
+ };
+
+ component Foo
+ {
+ publishes foo_event foo;
+ };
+
+ component Bar
+ {
+ emits bar_event bar;
+ };
+ /*
+ interface test
+ {
+ ImpliedSources::FooEventConsumers::foo_eventConsumer test_op ();
+ ImpliedSources::BarEventConsumers::bar_eventConsumer test_op_1 ();
+ };
+ */
+};
+
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc
new file mode 100644
index 00000000000..b8eaded62c5
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICEventSource"
+
+project(ICEventSource_stub): ciao_client_dnc {
+
+ sharedname = ICEventSource_stub
+ idlflags += -Wb,stub_export_macro=ICEVENTSOURCE_STUB_Export -Wb,stub_export_include=ICEventSource_stub_export.h -Wb,skel_export_macro=ICEVENTSOURCE_SVNT_Export -Wb,skel_export_include=ICEventSource_svnt_export.h
+ dynamicflags = ICEVENTSOURCE_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICEventSource.idl
+ }
+
+ Source_Files {
+ ICEventSourceC.cpp
+ }
+}
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h
new file mode 100644
index 00000000000..a5e067553d2
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSOURCE_STUB
+// ------------------------------
+#ifndef ICEVENTSOURCE_STUB_EXPORT_H
+#define ICEVENTSOURCE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (ICEVENTSOURCE_STUB_HAS_DLL)
+# define ICEVENTSOURCE_STUB_HAS_DLL 1
+#endif /* ! ICEVENTSOURCE_STUB_HAS_DLL */
+
+#if defined (ICEVENTSOURCE_STUB_HAS_DLL) && (ICEVENTSOURCE_STUB_HAS_DLL == 1)
+# if defined (ICEVENTSOURCE_STUB_BUILD_DLL)
+# define ICEVENTSOURCE_STUB_Export ACE_Proper_Export_Flag
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSOURCE_STUB_BUILD_DLL */
+# define ICEVENTSOURCE_STUB_Export ACE_Proper_Import_Flag
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSOURCE_STUB_BUILD_DLL */
+#else /* ICEVENTSOURCE_STUB_HAS_DLL == 1 */
+# define ICEVENTSOURCE_STUB_Export
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSOURCE_STUB_HAS_DLL == 1 */
+
+// Set ICEVENTSOURCE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSOURCE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSOURCE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSOURCE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSOURCE_STUB_NTRACE */
+
+#if (ICEVENTSOURCE_STUB_NTRACE == 1)
+# define ICEVENTSOURCE_STUB_TRACE(X)
+#else /* (ICEVENTSOURCE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSOURCE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSOURCE_STUB_NTRACE == 1) */
+
+#endif /* ICEVENTSOURCE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h
new file mode 100644
index 00000000000..24ca972b917
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSOURCE_SVNT
+// ------------------------------
+#ifndef ICEVENTSOURCE_SVNT_EXPORT_H
+#define ICEVENTSOURCE_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (ICEVENTSOURCE_SVNT_HAS_DLL)
+# define ICEVENTSOURCE_SVNT_HAS_DLL 1
+#endif /* ! ICEVENTSOURCE_SVNT_HAS_DLL */
+
+#if defined (ICEVENTSOURCE_SVNT_HAS_DLL) && (ICEVENTSOURCE_SVNT_HAS_DLL == 1)
+# if defined (ICEVENTSOURCE_SVNT_BUILD_DLL)
+# define ICEVENTSOURCE_SVNT_Export ACE_Proper_Export_Flag
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSOURCE_SVNT_BUILD_DLL */
+# define ICEVENTSOURCE_SVNT_Export ACE_Proper_Import_Flag
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSOURCE_SVNT_BUILD_DLL */
+#else /* ICEVENTSOURCE_SVNT_HAS_DLL == 1 */
+# define ICEVENTSOURCE_SVNT_Export
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSOURCE_SVNT_HAS_DLL == 1 */
+
+// Set ICEVENTSOURCE_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSOURCE_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSOURCE_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSOURCE_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSOURCE_SVNT_NTRACE */
+
+#if (ICEVENTSOURCE_SVNT_NTRACE == 1)
+# define ICEVENTSOURCE_SVNT_TRACE(X)
+#else /* (ICEVENTSOURCE_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSOURCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSOURCE_SVNT_NTRACE == 1) */
+
+#endif /* ICEVENTSOURCE_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl b/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl
new file mode 100644
index 00000000000..7af66e50e8c
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl
@@ -0,0 +1,28 @@
+// $Id$
+/**
+ * @file ICReceptacles.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests equivalent idl for receptacles.
+ */
+#include <Components.idl>
+
+module EquivReceptacles
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo
+ {
+ uses multiple foo_interface foo_recep;
+ };
+
+ /**
+ interface bar
+ {
+ Foo::foo_recepConnections get_seq ();
+ Foo::foo_recepConnection get_struct ();
+ };
+ */
+};
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc b/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc
new file mode 100644
index 00000000000..9ab64c3df92
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc
@@ -0,0 +1,18 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICReceptacles"
+
+project(ICReceptacles_stub): ciao_client_dnc {
+
+ sharedname = ICReceptacles_stub
+ idlflags += -Wb,stub_export_macro=ICRECEPTACLES_STUB_Export -Wb,stub_export_include=ICReceptacles_stub_export.h -Wb,skel_export_macro=ICRECEPTACLES_SVNT_Export -Wb,skel_export_include=ICReceptacles_svnt_export.h
+ dynamicflags = ICRECEPTACLES_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICReceptacles.idl
+ }
+
+ Source_Files {
+ ICReceptaclesC.cpp
+ }
+}
+
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h b/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h
new file mode 100644
index 00000000000..f23222462d2
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICRECEPTACLES_STUB
+// ------------------------------
+#ifndef ICRECEPTACLES_STUB_EXPORT_H
+#define ICRECEPTACLES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (ICRECEPTACLES_STUB_HAS_DLL)
+# define ICRECEPTACLES_STUB_HAS_DLL 1
+#endif /* ! ICRECEPTACLES_STUB_HAS_DLL */
+
+#if defined (ICRECEPTACLES_STUB_HAS_DLL) && (ICRECEPTACLES_STUB_HAS_DLL == 1)
+# if defined (ICRECEPTACLES_STUB_BUILD_DLL)
+# define ICRECEPTACLES_STUB_Export ACE_Proper_Export_Flag
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICRECEPTACLES_STUB_BUILD_DLL */
+# define ICRECEPTACLES_STUB_Export ACE_Proper_Import_Flag
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICRECEPTACLES_STUB_BUILD_DLL */
+#else /* ICRECEPTACLES_STUB_HAS_DLL == 1 */
+# define ICRECEPTACLES_STUB_Export
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICRECEPTACLES_STUB_HAS_DLL == 1 */
+
+// Set ICRECEPTACLES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICRECEPTACLES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICRECEPTACLES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICRECEPTACLES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICRECEPTACLES_STUB_NTRACE */
+
+#if (ICRECEPTACLES_STUB_NTRACE == 1)
+# define ICRECEPTACLES_STUB_TRACE(X)
+#else /* (ICRECEPTACLES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICRECEPTACLES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICRECEPTACLES_STUB_NTRACE == 1) */
+
+#endif /* ICRECEPTACLES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h b/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h
new file mode 100644
index 00000000000..6929ea5edd2
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICRECEPTACLES_SVNT
+// ------------------------------
+#ifndef ICRECEPTACLES_SVNT_EXPORT_H
+#define ICRECEPTACLES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (ICRECEPTACLES_SVNT_HAS_DLL)
+# define ICRECEPTACLES_SVNT_HAS_DLL 1
+#endif /* ! ICRECEPTACLES_SVNT_HAS_DLL */
+
+#if defined (ICRECEPTACLES_SVNT_HAS_DLL) && (ICRECEPTACLES_SVNT_HAS_DLL == 1)
+# if defined (ICRECEPTACLES_SVNT_BUILD_DLL)
+# define ICRECEPTACLES_SVNT_Export ACE_Proper_Export_Flag
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICRECEPTACLES_SVNT_BUILD_DLL */
+# define ICRECEPTACLES_SVNT_Export ACE_Proper_Import_Flag
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICRECEPTACLES_SVNT_BUILD_DLL */
+#else /* ICRECEPTACLES_SVNT_HAS_DLL == 1 */
+# define ICRECEPTACLES_SVNT_Export
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICRECEPTACLES_SVNT_HAS_DLL == 1 */
+
+// Set ICRECEPTACLES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICRECEPTACLES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICRECEPTACLES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICRECEPTACLES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICRECEPTACLES_SVNT_NTRACE */
+
+#if (ICRECEPTACLES_SVNT_NTRACE == 1)
+# define ICRECEPTACLES_SVNT_TRACE(X)
+#else /* (ICRECEPTACLES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICRECEPTACLES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICRECEPTACLES_SVNT_NTRACE == 1) */
+
+#endif /* ICRECEPTACLES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl b/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl
new file mode 100644
index 00000000000..62092c9e958
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl
@@ -0,0 +1,22 @@
+// $Id$
+/**
+ * @file Events.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied IDL for event types.
+ */
+
+#include <Components.idl>
+
+module ImpliedEvent
+{
+ eventtype foo
+ {
+ };
+ /*
+ interface test_foo
+ {
+ fooConsumer test_op ();
+ };
+ */
+};
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc b/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc
new file mode 100644
index 00000000000..c5b51e417c4
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Events"
+
+project(Events_stub): ciao_client_dnc {
+
+ sharedname = Events_stub
+ idlflags += -Wb,stub_export_macro=EVENTS_STUB_Export -Wb,stub_export_include=Events_stub_export.h -Wb,skel_export_macro=EVENTS_SVNT_Export -Wb,skel_export_include=Events_svnt_export.h
+ dynamicflags = EVENTS_STUB_BUILD_DLL
+
+ IDL_Files {
+ Events.idl
+ }
+
+ Source_Files {
+ EventsC.cpp
+ }
+}
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h b/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h
new file mode 100644
index 00000000000..096a67f9beb
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTS_STUB
+// ------------------------------
+#ifndef EVENTS_STUB_EXPORT_H
+#define EVENTS_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (EVENTS_STUB_HAS_DLL)
+# define EVENTS_STUB_HAS_DLL 1
+#endif /* ! EVENTS_STUB_HAS_DLL */
+
+#if defined (EVENTS_STUB_HAS_DLL) && (EVENTS_STUB_HAS_DLL == 1)
+# if defined (EVENTS_STUB_BUILD_DLL)
+# define EVENTS_STUB_Export ACE_Proper_Export_Flag
+# define EVENTS_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTS_STUB_BUILD_DLL */
+# define EVENTS_STUB_Export ACE_Proper_Import_Flag
+# define EVENTS_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTS_STUB_BUILD_DLL */
+#else /* EVENTS_STUB_HAS_DLL == 1 */
+# define EVENTS_STUB_Export
+# define EVENTS_STUB_SINGLETON_DECLARATION(T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTS_STUB_HAS_DLL == 1 */
+
+// Set EVENTS_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTS_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTS_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTS_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTS_STUB_NTRACE */
+
+#if (EVENTS_STUB_NTRACE == 1)
+# define EVENTS_STUB_TRACE(X)
+#else /* (EVENTS_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTS_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTS_STUB_NTRACE == 1) */
+
+#endif /* EVENTS_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h b/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h
new file mode 100644
index 00000000000..5f647a0740a
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTS_SVNT
+// ------------------------------
+#ifndef EVENTS_SVNT_EXPORT_H
+#define EVENTS_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (EVENTS_SVNT_HAS_DLL)
+# define EVENTS_SVNT_HAS_DLL 1
+#endif /* ! EVENTS_SVNT_HAS_DLL */
+
+#if defined (EVENTS_SVNT_HAS_DLL) && (EVENTS_SVNT_HAS_DLL == 1)
+# if defined (EVENTS_SVNT_BUILD_DLL)
+# define EVENTS_SVNT_Export ACE_Proper_Export_Flag
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTS_SVNT_BUILD_DLL */
+# define EVENTS_SVNT_Export ACE_Proper_Import_Flag
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTS_SVNT_BUILD_DLL */
+#else /* EVENTS_SVNT_HAS_DLL == 1 */
+# define EVENTS_SVNT_Export
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTS_SVNT_HAS_DLL == 1 */
+
+// Set EVENTS_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTS_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTS_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTS_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTS_SVNT_NTRACE */
+
+#if (EVENTS_SVNT_NTRACE == 1)
+# define EVENTS_SVNT_TRACE(X)
+#else /* (EVENTS_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTS_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTS_SVNT_NTRACE == 1) */
+
+#endif /* EVENTS_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl b/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl
new file mode 100644
index 00000000000..3440458b4b2
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl
@@ -0,0 +1,28 @@
+// $Id$
+/**
+ * @file Homes.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests equivalent IDL semantics for Homes
+ */
+
+#include <Components.idl>
+
+module ImplicitHomes
+{
+ component Foo
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+ /*
+ interface test
+ {
+ FooHomeExplicit test_op ();
+ FooHomeImplicit test_op_1 ();
+ FooHome test_op_2 ();
+ };
+ */
+};
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc b/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc
new file mode 100644
index 00000000000..6865c71b120
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc
@@ -0,0 +1,18 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Homes"
+
+project(Homes_stub): ciao_client_dnc {
+
+ sharedname = Homes_stub
+ idlflags += -Wb,stub_export_macro=HOMES_STUB_Export -Wb,stub_export_include=Homes_stub_export.h -Wb,skel_export_macro=HOMES_SVNT_Export -Wb,skel_export_include=Homes_svnt_export.h
+ dynamicflags = HOMES_STUB_BUILD_DLL
+
+ IDL_Files {
+ Homes.idl
+ }
+
+ Source_Files {
+ HomesC.cpp
+ }
+}
+
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h b/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h
new file mode 100644
index 00000000000..2d9a1562f59
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMES_STUB
+// ------------------------------
+#ifndef HOMES_STUB_EXPORT_H
+#define HOMES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (HOMES_STUB_HAS_DLL)
+# define HOMES_STUB_HAS_DLL 1
+#endif /* ! HOMES_STUB_HAS_DLL */
+
+#if defined (HOMES_STUB_HAS_DLL) && (HOMES_STUB_HAS_DLL == 1)
+# if defined (HOMES_STUB_BUILD_DLL)
+# define HOMES_STUB_Export ACE_Proper_Export_Flag
+# define HOMES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMES_STUB_BUILD_DLL */
+# define HOMES_STUB_Export ACE_Proper_Import_Flag
+# define HOMES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMES_STUB_BUILD_DLL */
+#else /* HOMES_STUB_HAS_DLL == 1 */
+# define HOMES_STUB_Export
+# define HOMES_STUB_SINGLETON_DECLARATION(T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMES_STUB_HAS_DLL == 1 */
+
+// Set HOMES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMES_STUB_NTRACE */
+
+#if (HOMES_STUB_NTRACE == 1)
+# define HOMES_STUB_TRACE(X)
+#else /* (HOMES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMES_STUB_NTRACE == 1) */
+
+#endif /* HOMES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h b/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h
new file mode 100644
index 00000000000..d8d89bd8d61
--- /dev/null
+++ b/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMES_SVNT
+// ------------------------------
+#ifndef HOMES_SVNT_EXPORT_H
+#define HOMES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (HOMES_SVNT_HAS_DLL)
+# define HOMES_SVNT_HAS_DLL 1
+#endif /* ! HOMES_SVNT_HAS_DLL */
+
+#if defined (HOMES_SVNT_HAS_DLL) && (HOMES_SVNT_HAS_DLL == 1)
+# if defined (HOMES_SVNT_BUILD_DLL)
+# define HOMES_SVNT_Export ACE_Proper_Export_Flag
+# define HOMES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMES_SVNT_BUILD_DLL */
+# define HOMES_SVNT_Export ACE_Proper_Import_Flag
+# define HOMES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMES_SVNT_BUILD_DLL */
+#else /* HOMES_SVNT_HAS_DLL == 1 */
+# define HOMES_SVNT_Export
+# define HOMES_SVNT_SINGLETON_DECLARATION(T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMES_SVNT_HAS_DLL == 1 */
+
+// Set HOMES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMES_SVNT_NTRACE */
+
+#if (HOMES_SVNT_NTRACE == 1)
+# define HOMES_SVNT_TRACE(X)
+#else /* (HOMES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMES_SVNT_NTRACE == 1) */
+
+#endif /* HOMES_SVNT_EXPORT_H */
+
+// End of auto generated file.