summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsmit <msmit@remedy.nl>2010-06-16 06:30:17 +0000
committermsmit <msmit@remedy.nl>2010-06-16 06:30:17 +0000
commit08da5f83b14ec591238a157c1670b52f5316d130 (patch)
treeb203ab92f4dac4d3fc366407e7da94b4c359b858
parent588bc2525aae341f22e4cbe1711db8ba22666fba (diff)
downloadATCD-08da5f83b14ec591238a157c1670b52f5316d130.tar.gz
Wed Jun 16 06:25:25 UTC 2010 Marcel Smit <msmit@remedy.nl>
* connectors/dds4ccm/tutorials/Shapes/Models: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver.mpc: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.h: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.cpp: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/src: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/src/ShapesReceiver_comp.idl: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesControl.mpc: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender.mpc: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.h: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.cpp: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ports: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ports/Shapes_Control_obj.idl: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/src: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/src/ShapesSender_comp.idl: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/Plan.cdp: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/run_test.pl: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes.mpb: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.idl: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.mpc: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.idl: * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.mpc: * connectors/dds4ccm/tutorials/Shapes/Tutorial: First iteration.
-rw-r--r--CIAO/ChangeLog35
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver.mpc163
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.cpp128
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.h80
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/src/ShapesReceiver_comp.idl19
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesControl.mpc122
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender.mpc161
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.cpp291
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.h112
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ports/Shapes_Control_obj.idl35
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/src/ShapesSender_comp.idl19
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/Plan.cdp464
-rwxr-xr-xCIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/run_test.pl244
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes.mpb5
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.idl19
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.mpc147
-rwxr-xr-xCIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.idl35
-rw-r--r--CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.mpc29
18 files changed, 2106 insertions, 2 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index b771c88cf9e..da0aa82f89a 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,13 +1,44 @@
+Wed Jun 16 06:25:25 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/tutorials/Shapes/Models:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver.mpc:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.h:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.cpp:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/src:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/src/ShapesReceiver_comp.idl:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesControl.mpc:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender.mpc:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.h:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.cpp:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ports:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ports/Shapes_Control_obj.idl:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/src:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/src/ShapesSender_comp.idl:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/Plan.cdp:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/run_test.pl:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes.mpb:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.idl:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.mpc:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.idl:
+ * connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.mpc:
+ * connectors/dds4ccm/tutorials/Shapes/Tutorial:
+ First iteration.
+
Wed Jun 16 05:23:27 UTC 2010 James H. Hill <hillj at cs dot iupui dot edu>
* connectors/dds4ccm/examples/Shapes/models:
* connectors/dds4ccm/examples/Shapes/models/Shapes.xme:
-
+
Shapes PICML model that can be used to generate IDL.
* connectors/dds4ccm/models:
* connectors/dds4ccm/models/dds4ccm.xme:
-
+
dds4ccm PICML library.
Wed Jun 16 01:37:51 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver.mpc b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver.mpc
new file mode 100644
index 00000000000..a22dc0f086e
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver.mpc
@@ -0,0 +1,163 @@
+// $Id$
+
+project(ShapesReceiver_idl_gen) : componentidldefaults, dds4ccm {
+ custom_only = 1
+ after += Shapes_conn_idl_gen
+ idlflags += -Wb,stub_export_macro=SHAPES_RECEIVER_COMP_STUB_Export \
+ -Wb,stub_export_include=ShapesReceiver_stub_export.h \
+ -Wb,skel_export_macro=SHAPES_RECEIVER_COMP_SVNT_Export \
+ -Wb,skel_export_include=ShapesReceiver_svnt_export.h \
+ -Wb,svnt_export_macro=SHAPES_RECEIVER_COMP_SVNT_Export \
+ -Wb,svnt_export_include=ShapesReceiver_svnt_export.h \
+ -Wb,exec_export_macro=SHAPES_RECEIVER_COMP_EXEC_Export \
+ -Wb,exec_export_include=ShapesReceiver_exec_export.h \
+ -I ../ShapesSender_comp/ports \
+ -I ../ports \
+ -o GeneratedCode
+
+ IDL_Files {
+ src/ShapesReceiver_comp.idl
+ gendir = GeneratedCode
+ }
+}
+
+project(ShapesReceiver_lem_gen) : ciaoidldefaults, dds4ccm {
+ after += ShapesReceiver_idl_gen ShapesSender_idl_lem_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SHAPES_RECEIVER_COMP_LEM_STUB_Export \
+ -Wb,stub_export_include=ShapesReceiver_lem_stub_export.h \
+ -SS -Gxhst \
+ -I ../ShapesSender_comp/ports \
+ -I../ports/GeneratedCode \
+ -I../ShapesSender_comp/GeneratedCode \
+ -I src \
+ -I ../ports \
+ -o GeneratedCode
+
+ IDL_Files {
+ GeneratedCode/ShapesReceiver_compE.idl
+ gendir = GeneratedCode
+ }
+}
+
+project(ShapesReceiver_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += ShapesReceiver_lem_gen ShapesReceiver_stub Shapes_conn_stub \
+ Shapes_msg_stub Shapes_Control_stub
+ libs += ShapesReceiver_stub Shapes_conn_stub Shapes_msg_stub \
+ Shapes_Control_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ../ports/GeneratedCode ../ShapesSender_comp/GeneratedCode
+ sharedname = ShapesReceiver_lem_stub
+ dynamicflags = SHAPES_RECEIVER_COMP_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/ShapesReceiver_compEC.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/ShapesReceiver_compEC.h
+ GeneratedCode/ShapesReceiver_lem_stub_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/ShapesReceiver_compEC.inl
+ }
+}
+
+project(ShapesReceiver_stub) : ccm_stub, dds4ccm_base {
+ after += ShapesReceiver_idl_gen Shapes_conn_stub \
+ Shapes_msg_stub Shapes_conn_lem_gen \
+ Shapes_Control_stub Shapes_Control_lem_stub
+ libs += Shapes_conn_stub Shapes_msg_stub Shapes_Control_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ../ports/GeneratedCode ../ShapesSender_comp/GeneratedCode
+ sharedname = ShapesReceiver_stub
+ dynamicflags = SHAPES_RECEIVER_COMP_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/ShapesReceiver_compC.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/ShapesReceiver_compC.h
+ GeneratedCode/ShapesReceiver_stub_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/ShapesReceiver_compC.inl
+ }
+}
+
+project(ShapesReceiver_exec) : ciao_executor, dds4ccm_base {
+ after += ShapesReceiver_lem_stub ShapesReceiver_stub \
+ Shapes_msg_stub Shapes_conn_stub Shapes_conn_lem_stub \
+ DDS4CCM_lem_stub Shapes_Control_stub Shapes_Control_lem_stub
+ sharedname = ShapesReceiver_exec
+ libs += ShapesReceiver_stub ShapesReceiver_lem_stub Shapes_msg_stub \
+ Shapes_conn_stub Shapes_conn_lem_stub DDS4CCM_lem_stub \
+ Shapes_Control_stub Shapes_Control_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ./GeneratedCode ../ports/GeneratedCode ../ShapesSender_comp/GeneratedCode
+ dynamicflags = SHAPES_RECEIVER_COMP_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ShapesReceiver_exec.cpp
+ }
+
+ Header_Files {
+ ShapesReceiver_exec.h
+ GeneratedCode/ShapesReceiver_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(ShapesReceiver_svnt) : ciao_servant, dds4ccm_base {
+ after += ShapesReceiver_lem_stub Shapes_msg_stub \
+ Shapes_conn_stub Shapes_conn_svnt ShapesReceiver_exec \
+ Shapes_conn_lem_stub DDS4CCM_lem_stub DDS4CCM_skel \
+ Shapes_Control_stub Shapes_Control_lem_stub Shapes_Control_svnt
+ sharedname = ShapesReceiver_svnt
+ libs += ShapesReceiver_stub ShapesReceiver_lem_stub Shapes_msg_stub \
+ Shapes_conn_stub Shapes_conn_svnt ShapesReceiver_exec \
+ Shapes_conn_lem_stub DDS4CCM_lem_stub DDS4CCM_skel \
+ Shapes_Control_stub Shapes_Control_lem_stub Shapes_Control_svnt
+ libpaths += ../lib
+ libout = ../lib
+ includes += ../ports/GeneratedCode ../ShapesSender_comp/GeneratedCode
+ dynamicflags = SHAPES_RECEIVER_COMP_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/ShapesReceiver_compS.cpp
+ GeneratedCode/ShapesReceiver_comp_svnt.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/ShapesReceiver_compS.h
+ GeneratedCode/ShapesReceiver_comp_svnt.h
+ GeneratedCode/ShapesReceiver_svnt_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/ShapesReceiver_compS.inl
+ }
+}
+
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.cpp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.cpp
new file mode 100644
index 00000000000..01d80285de9
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.cpp
@@ -0,0 +1,128 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "ShapesReceiver_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "tao/ORB_Core.h"
+#include "ace/OS_NS_time.h"
+
+namespace CIAO_Shapes_Receiver_comp_Impl
+{
+ //============================================================
+ // ShapeType_Listener_exec_i
+ //============================================================
+ ShapeType_Listener_exec_i::ShapeType_Listener_exec_i (void)
+ {
+ }
+
+ ShapeType_Listener_exec_i::~ShapeType_Listener_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_DDS::ShapeType_Listener
+ void
+ ShapeType_Listener_exec_i::on_many_data (
+ const ShapeTypeSeq & /* an_instance */,
+ const ::CCM_DDS::ReadInfoSeq & /* info */)
+ {
+ }
+
+ void
+ ShapeType_Listener_exec_i::on_one_data (
+ const ShapeType & an_instance ,
+ const ::CCM_DDS::ReadInfo & /* info */)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ShapeType_Listener: ")
+ ACE_TEXT ("received shape_info for <%C> at %u:%u:%u\n"),
+ an_instance.color.in (),
+ an_instance.x,
+ an_instance.y,
+ an_instance.shapesize));
+ }
+
+ //============================================================
+ // Receiver_exec_i
+ //============================================================
+ Receiver_exec_i::Receiver_exec_i (void)
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+ ::Shapes::ShapesConnector::CCM_Listener_ptr
+ Receiver_exec_i::get_info_out_data_listener (void)
+ {
+ return new ShapeType_Listener_exec_i ();
+ }
+
+ ::CCM_DDS::CCM_PortStatusListener_ptr
+ Receiver_exec_i::get_info_out_status (void)
+ {
+ return ::CCM_DDS::CCM_PortStatusListener::_nil ();
+ }
+
+ // Operations from Components::SessionComponent.
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Shapes::CCM_Receiver_comp_Context::_narrow (ctx);
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete (void)
+ {
+ }
+
+ void
+ Receiver_exec_i::ccm_activate (void)
+ {
+ ::CCM_DDS::DataListenerControl_var lc =
+ this->context_->get_connection_info_out_data_control ();
+
+ if (::CORBA::is_nil (lc.in ()))
+ {
+ ACE_ERROR ((LM_INFO, ACE_TEXT ("Error: Listener control receptacle is null!\n")));
+ throw CORBA::INTERNAL ();
+ }
+
+ lc->mode (::CCM_DDS::ONE_BY_ONE);
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate (void)
+ {
+ }
+
+ void
+ Receiver_exec_i::ccm_remove (void)
+ {
+ }
+
+ extern "C" SHAPES_RECEIVER_COMP_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shapes_Receiver_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Receiver_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.h b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.h
new file mode 100644
index 00000000000..ada605e223a
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/ShapesReceiver_exec.h
@@ -0,0 +1,80 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef SHAPES_RECEIVER_EXEC_H_
+#define SHAPES_RECEIVER_EXEC_H_
+
+#include "ShapesReceiver_compEC.h"
+
+#include /**/ "ShapesReceiver_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+#include "ace/Reactor.h"
+
+namespace CIAO_Shapes_Receiver_comp_Impl
+{
+ //============================================================
+ // ShapeType_Listener_exec_i
+ //============================================================
+ class SHAPES_RECEIVER_COMP_EXEC_Export ShapeType_Listener_exec_i
+ : public virtual ::Shapes::ShapesConnector::CCM_Listener,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ShapeType_Listener_exec_i (void);
+ virtual ~ShapeType_Listener_exec_i (void);
+
+ virtual void
+ on_one_data (
+ const ShapeType & an_instance,
+ const ::CCM_DDS::ReadInfo & info);
+ virtual void
+ on_many_data (
+ const ShapeTypeSeq & an_instance,
+ const ::CCM_DDS::ReadInfoSeq & info);
+ };
+
+ class SHAPES_RECEIVER_COMP_EXEC_Export Receiver_exec_i
+ : public virtual Receiver_comp_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+ virtual ::Shapes::ShapesConnector::CCM_Listener_ptr
+ get_info_out_data_listener (void);
+
+ virtual ::CCM_DDS::CCM_PortStatusListener_ptr
+ get_info_out_status (void);
+
+ // Operations from Components::SessionComponent.
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+
+ private:
+ ::Shapes::CCM_Receiver_comp_Context_var context_;
+ };
+
+ extern "C" SHAPES_RECEIVER_COMP_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shape_Receiver_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/src/ShapesReceiver_comp.idl b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/src/ShapesReceiver_comp.idl
new file mode 100644
index 00000000000..843cdfedd41
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesReceiver_comp/src/ShapesReceiver_comp.idl
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef SHAPES_RECEIVER_COMP_IDL_
+#define SHAPES_RECEIVER_COMP_IDL_
+
+#include "Shapes_conn.idl"
+#include "Shapes_Control_obj.idl"
+
+module Shapes
+{
+ component Receiver_comp
+ {
+ port ShapesConnector::DDS_Listen info_out;
+
+ uses Shapes::Control_obj control;
+ };
+};
+
+#endif /* SHAPES_RECEIVER_COMP_IDL_ */
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesControl.mpc b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesControl.mpc
new file mode 100644
index 00000000000..847dc3a00ca
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesControl.mpc
@@ -0,0 +1,122 @@
+// $Id$
+
+project(Shapes_Control_idl_gen) : componentidldefaults, dds4ccm {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SHAPES_CONTROL_STUB_Export \
+ -Wb,stub_export_include=Shapes_Control_stub_export.h \
+ -Wb,skel_export_macro=SHAPES_CONTROL_SVNT_Export \
+ -Wb,skel_export_include=Shapes_Control_svnt_export.h \
+ -Wb,svnt_export_macro=SHAPES_CONTROL_SVNT_Export \
+ -Wb,svnt_export_include=Shapes_Control_svnt_export.h \
+ -Wb,exec_export_macro=SHAPES_CONTROL_EXEC_Export \
+ -Wb,exec_export_include=Shapes_Control_exec_export.h \
+ -I ../ports \
+ -I ports \
+ -o GeneratedCode
+
+ IDL_Files {
+ ports/Shapes_Control_obj.idl
+ gendir = GeneratedCode
+ }
+}
+
+project(Shapes_Control_lem_gen) : ciaoidldefaults, dds4ccm {
+ after += Shapes_Control_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SHAPES_CONTROL_LEM_STUB_Export \
+ -Wb,stub_export_include=Shapes_Control_lem_stub_export.h \
+ -SS -Gxhst \
+ -I ../ports \
+ -I ports \
+ -o GeneratedCode
+
+ IDL_Files {
+ GeneratedCode/Shapes_Control_objE.idl
+ gendir = GeneratedCode
+ }
+}
+
+project(Shapes_Control_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += Shapes_Control_lem_gen Shapes_Control_stub
+ libs += Shapes_Control_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ../ports/GeneratedCode
+ sharedname = Shapes_Control_lem_stub
+ dynamicflags = SHAPES_CONTROL_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/Shapes_Control_objEC.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/Shapes_Control_objEC.h
+ GeneratedCode/Shapes_Control_lem_stub_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/Shapes_Control_objEC.inl
+ }
+}
+
+project(Shapes_Control_stub) : ccm_stub, dds4ccm_base {
+ after += Shapes_Control_idl_gen
+ libs +=
+ libpaths += ../lib
+ libout = ../lib
+ includes += ../ports/GeneratedCode
+ sharedname = Shapes_Control_stub
+ dynamicflags = SHAPES_CONTROL_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/Shapes_Control_objC.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/Shapes_Control_objC.h
+ GeneratedCode/Shapes_Control_stub_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/Shapes_Control_objC.inl
+ }
+}
+
+
+project(Shapes_Control_svnt) : ciao_servant, dds4ccm_base {
+ after += Shapes_Control_lem_stub Shapes_Control_stub\
+ DDS4CCM_lem_stub DDS4CCM_skel
+ sharedname = Shapes_Control_svnt
+ libs += Shapes_Control_stub Shapes_Control_lem_stub \
+ DDS4CCM_lem_stub DDS4CCM_skel
+ libpaths += ../lib
+ libout = ../lib
+ includes += ../ports/GeneratedCode
+ dynamicflags = SHAPES_CONTROL_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/Shapes_Control_objS.cpp
+ GeneratedCode/Shapes_Control_obj_svnt.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/Shapes_Control_objS.h
+ GeneratedCode/Shapes_Control_obj_svnt.h
+ GeneratedCode/Shapes_Control_svnt_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/Shapes_Control_objS.inl
+ }
+}
+
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender.mpc b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender.mpc
new file mode 100644
index 00000000000..b97afdacdb4
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender.mpc
@@ -0,0 +1,161 @@
+// $Id$
+
+project(ShapesSender_idl_gen) : componentidldefaults, dds4ccm {
+ after += Shapes_conn_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SHAPES_SENDER_COMP_STUB_Export \
+ -Wb,stub_export_include=ShapesSender_stub_export.h \
+ -Wb,skel_export_macro=SHAPES_SENDER_COMP_SVNT_Export \
+ -Wb,skel_export_include=ShapesSender_svnt_export.h \
+ -Wb,svnt_export_macro=SHAPES_SENDER_COMP_SVNT_Export \
+ -Wb,svnt_export_include=ShapesSender_svnt_export.h \
+ -Wb,exec_export_macro=SHAPES_SENDER_COMP_EXEC_Export \
+ -Wb,exec_export_include=ShapesSender_exec_export.h \
+ -I./ports \
+ -I../ports \
+ -o GeneratedCode
+
+ IDL_Files {
+ ./src/ShapesSender_comp.idl
+ gendir = GeneratedCode
+ }
+}
+
+project(ShapesSender_lem_gen) : ciaoidldefaults, dds4ccm {
+ after += ShapesSender_idl_gen Shapes_Control_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SHAPES_SENDER_COMP_LEM_STUB_Export \
+ -Wb,stub_export_include=ShapesSender_lem_stub_export.h \
+ -SS -Gxhst -I $CIAO_ROOT/connectors \
+ -I./src \
+ -I./ports \
+ -I./GeneratedCode \
+ -I../ports \
+ -I../ports/GeneratedCode \
+ -o GeneratedCode
+
+ IDL_Files {
+ GeneratedCode/ShapesSender_compE.idl
+ gendir = GeneratedCode
+ }
+}
+
+project(ShapesSender_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += ShapesSender_lem_gen ShapesSender_stub Shapes_msg_stub \
+ Shapes_Control_stub
+ libs += Shapes_msg_stub ShapesSender_stub Shapes_Control_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ../ports/GeneratedCode
+ sharedname = ShapesSender_lem_stub
+ dynamicflags = SHAPES_SENDER_COMP_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/ShapesSender_compEC.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/ShapesSender_compEC.h
+ GeneratedCode/ShapesSender_lem_stub_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/ShapesSender_compEC.inl
+ }
+}
+
+project(ShapesSender_stub) : ccm_stub, dds4ccm_base {
+ after += ShapesSender_idl_gen Shapes_msg_stub Shapes_conn_stub \
+ Shapes_Control_stub Shapes_Control_lem_stub
+ libs += Shapes_msg_stub Shapes_conn_stub Shapes_Control_stub
+ includes += ../ports/GeneratedCode
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = ShapesSender_stub
+ dynamicflags = SHAPES_SENDER_COMP_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/ShapesSender_compC.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/ShapesSender_compC.h
+ GeneratedCode/ShapesSender_stub_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/ShapesSender_compC.inl
+ }
+}
+
+project(ShapesSender_exec) : ciao_executor, dds4ccm_base {
+ after += ShapesSender_lem_stub ShapesSender_stub Shapes_conn_lem_stub \
+ Shapes_conn_stub Shapes_Control_lem_stub
+ sharedname = ShapesSender_exec
+ libs += ShapesSender_stub ShapesSender_lem_stub Shapes_msg_stub \
+ Shapes_conn_lem_stub Shapes_conn_stub \
+ Shapes_Control_lem_stub Shapes_Control_stub
+ libpaths += ../lib
+ includes += ./GeneratedCode ../ports/GeneratedCode
+ libout = ../lib
+ dynamicflags = SHAPES_SENDER_COMP_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ShapesSender_exec.cpp
+ }
+
+ Header_Files {
+ ShapesSender_exec.h
+ ShapesSender_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(ShapesSender_svnt) : ciao_servant, dds4ccm_base {
+ after += Shapes_msg_stub ShapesSender_lem_stub DDS4CCM_lem_stub \
+ DDS4CCM_skel Shapes_conn_stub Shapes_conn_svnt \
+ Shapes_conn_lem_stub Shapes_Control_stub Shapes_Control_svnt \
+ Shapes_Control_lem_stub
+ sharedname = ShapesSender_svnt
+ libs += ShapesSender_stub ShapesSender_lem_stub \
+ Shapes_msg_stub DDS4CCM_lem_stub DDS4CCM_skel \
+ Shapes_conn_stub Shapes_conn_svnt \
+ Shapes_conn_lem_stub \
+ Shapes_Control_stub Shapes_Control_svnt \
+ Shapes_Control_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ../ports/GeneratedCode
+ dynamicflags = SHAPES_SENDER_COMP_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/ShapesSender_compS.cpp
+ GeneratedCode/ShapesSender_comp_svnt.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/ShapesSender_compS.h
+ GeneratedCode/ShapesSender_comp_svnt.h
+ GeneratedCode/ShapesSender_svnt_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/ShapesSender_compS.inl
+ }
+}
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.cpp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.cpp
new file mode 100644
index 00000000000..27c21e1bdca
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.cpp
@@ -0,0 +1,291 @@
+// -*- C++ -*-
+// $Id$
+
+#include "ShapesSender_exec.h"
+#include "ace/Guard_T.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "tao/ORB_Core.h"
+
+namespace CIAO_Shapes_Sender_comp_Impl
+{
+ //============================================================
+ // pulse_Generator
+ //============================================================
+ pulse_Generator::pulse_Generator (Sender_exec_i &callback)
+ : pulse_callback_ (callback)
+ {
+ }
+
+ pulse_Generator::~pulse_Generator ()
+ {
+ }
+
+ int
+ pulse_Generator::handle_timeout (const ACE_Time_Value &, const void *)
+ {
+ this->pulse_callback_.tick ();
+ return 0;
+ }
+
+ //============================================================
+ // Sender_exec_i
+ //============================================================
+ Sender_exec_i::Sender_exec_i (void)
+ : rate_ (1),
+ max_x_ (100),
+ max_y_ (100),
+ max_size_ (25),
+ resize_ (false),
+ x_increasing_ (false),
+ y_increasing_ (false),
+ size_increasing_ (false)
+ {
+ square_ = new ShapeType;
+ this->ticker_ = new pulse_Generator (*this);
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ void
+ Sender_exec_i::tick ()
+ {
+ if (this->x_increasing_)
+ {
+ ++square_->x;
+ this->x_increasing_ = square_->x + 1 <= this->max_x_;
+ }
+ else
+ {
+ --square_->x;
+ this->x_increasing_ = square_->x - 1 < 0;
+ }
+ if (this->y_increasing_)
+ {
+ ++square_->y;
+ this->y_increasing_ = square_->y + 1 <= this->max_y_;
+ }
+ else
+ {
+ --square_->y;
+ this->y_increasing_ = square_->y - 1 < 0;
+ }
+ if (resize_shape ())
+ {
+ if (this->size_increasing_)
+ {
+ ++square_->shapesize;
+ this->size_increasing_ = square_->shapesize + 1 <= this->max_size_;
+ }
+ else
+ {
+ --square_->shapesize;
+ this->size_increasing_ = square_->shapesize - 1 < 0;
+ }
+ }
+ try
+ {
+ this->writer_->write_one (*square_, this->instance_handle_);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("UPDATED Shape_info for <%C> %u:%u:%u\n"),
+ square_->color.in (),
+ square_->x,
+ square_->y,
+ square_->shapesize));
+ }
+ catch (const CCM_DDS::NonExistent& )
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Shape_info for <%C> not updated: <%C> didn't exist.\n"),
+ square_->color.in (), square_->color.in ()));
+ }
+ catch (const CCM_DDS::InternalError& )
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Internal Error while updating Shape_info for <%C>.\n"),
+ square_->color.in ()));
+ }
+ }
+
+ void
+ Sender_exec_i::start (void)
+ {
+ // calculate the interval time
+ long const usec = 1000000 / this->rate_;
+ if (this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->schedule_timer (
+ this->ticker_,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec)) == -1)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Sender_exec_i::start : ")
+ ACE_TEXT ("Error scheduling timer")));
+ }
+ }
+
+ void
+ Sender_exec_i::stop (void)
+ {
+ this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->cancel_timer (this->ticker_);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Sender_exec_i::stop : Timer canceled.\n")));
+ try
+ {
+ this->writer_->unregister_instance (*this->square_, this->instance_handle_);
+ }
+ catch (const CCM_DDS::NonExistent& )
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Shape_info for <%C> not deleted: <%C> didn't exist.\n"),
+ square_->color.in (), square_->color.in ()));
+ }
+ catch (const CCM_DDS::InternalError& )
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Internal Error while deleting Shape_info for <%C>.\n"),
+ square_->color.in ()));
+ }
+ delete this->ticker_;
+ delete this->square_;
+ }
+
+ ::CORBA::ULong
+ Sender_exec_i::rate (void)
+ {
+ return this->rate_;
+ }
+
+ void
+ Sender_exec_i::rate (::CORBA::ULong rate)
+ {
+ this->rate_ = rate;
+ }
+
+ ::CORBA::UShort
+ Sender_exec_i::max_x (void)
+ {
+ return this->max_x_;
+ }
+
+ void
+ Sender_exec_i::max_x (::CORBA::UShort max_x)
+ {
+ this->max_x_ = max_x;
+ }
+
+ ::CORBA::UShort
+ Sender_exec_i::max_y (void)
+ {
+ return this->max_y_;
+ }
+
+ void
+ Sender_exec_i::max_y (::CORBA::UShort max_y)
+ {
+ this->max_y_ = max_y;
+ }
+
+ ::CORBA::UShort
+ Sender_exec_i::max_size (void)
+ {
+ return this->max_size_;
+ }
+
+ void
+ Sender_exec_i::max_size (::CORBA::UShort max_size)
+ {
+ this->max_size_ = max_size;
+ }
+
+ void
+ Sender_exec_i::resize_shape (::CORBA::Boolean resize)
+ {
+ this->resize_ = resize;
+ }
+
+ ::CORBA::Boolean
+ Sender_exec_i::resize_shape ()
+ {
+ return this->resize_;
+ }
+
+ ::Shapes::CCM_Control_obj_ptr
+ Sender_exec_i::get_control (void)
+ {
+ return ::Shapes::CCM_Control_obj::_nil ();
+ }
+
+ void
+ Sender_exec_i::set_session_context (::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Shapes::CCM_Sender_comp_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete (void)
+ {
+ this->writer_ = this->context_->get_connection_info_write_data ();
+ }
+
+ void
+ Sender_exec_i::ccm_activate (void)
+ {
+ this->start ();
+ square_->x = ACE_OS::rand () % this->max_x_;
+ square_->y = ACE_OS::rand () % this->max_y_;
+ square_->shapesize = max_size_;
+ square_->color = CORBA::string_dup("GREEN");
+
+ //Register shape with dds.
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("REGISTER Shape_info for <%C> %u:%u:%u\n"),
+ square_->color.in (),
+ square_->x,
+ square_->y,
+ square_->shapesize));
+ try
+ {
+ this->instance_handle_ = this->writer_->register_instance (*square_);
+ }
+ catch (const CCM_DDS::AlreadyCreated& )
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Shape_info for <%C> already created.\n"),
+ square_->color.in ()));
+ }
+ catch (const CCM_DDS::InternalError& )
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Internal Error while creating Shape_info for <%C>.\n"),
+ square_->color.in ()));
+ }
+ }
+
+ void
+ Sender_exec_i::ccm_passivate (void)
+ {
+ this->stop ();
+ }
+
+ void
+ Sender_exec_i::ccm_remove (void)
+ {
+ }
+
+ extern "C" SHAPES_SENDER_COMP_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shape_Sender_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Sender_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.h b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.h
new file mode 100644
index 00000000000..6e2351fdf00
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ShapesSender_exec.h
@@ -0,0 +1,112 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef CIAO_SENDER_EXEC_H_
+#define CIAO_SENDER_EXEC_H_
+
+#include "ShapesSender_compEC.h"
+
+#include /**/ "ShapesSender_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+#include "ace/Reactor.h"
+
+namespace CIAO_Shapes_Sender_comp_Impl
+{
+ class Sender_exec_i;
+
+ //============================================================
+ // pulse_Generator
+ //============================================================
+ class pulse_Generator : public ACE_Event_Handler
+ {
+ public:
+ pulse_Generator (Sender_exec_i &callback);
+
+ virtual ~pulse_Generator ();
+
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+ private:
+ Sender_exec_i &pulse_callback_;
+ };
+
+ //============================================================
+ // Sender_exec_i
+ //============================================================
+ class Sender_exec_i
+ : public virtual Sender_comp_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Sender_exec_i (void);
+ virtual ~Sender_exec_i (void);
+
+ ::CORBA::ULong rate (void);
+
+ void rate (::CORBA::ULong rate);
+
+ ::CORBA::UShort max_x (void);
+
+ void max_x (::CORBA::UShort max_x);
+
+ ::CORBA::UShort max_y (void);
+
+ void max_y (::CORBA::UShort max_y);
+
+ ::CORBA::UShort max_size (void);
+
+ void max_size (::CORBA::UShort max_size);
+
+ void resize_shape (::CORBA::Boolean resize);
+
+ ::CORBA::Boolean resize_shape (void);
+
+ virtual ::Shapes::CCM_Control_obj_ptr
+ get_control (void);
+
+ virtual void set_session_context (::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+
+ void tick ();
+
+ private:
+ ::Shapes::CCM_Sender_comp_Context_var context_;
+
+ ::Shapes::ShapesConnector::Writer_var writer_;
+
+ pulse_Generator * ticker_;
+
+ CORBA::ULong rate_;
+ CORBA::UShort max_x_;
+ CORBA::UShort max_y_;
+ CORBA::UShort max_size_;
+ CORBA::Boolean resize_;
+
+ bool x_increasing_;
+ bool y_increasing_;
+ bool size_increasing_;
+
+ ShapeType* square_;
+
+ ::DDS::InstanceHandle_t instance_handle_;
+
+ void start (void);
+ void stop (void);
+ };
+
+ extern "C" SHAPES_SENDER_COMP_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shape_Sender_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ports/Shapes_Control_obj.idl b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ports/Shapes_Control_obj.idl
new file mode 100644
index 00000000000..00d3952e691
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/ports/Shapes_Control_obj.idl
@@ -0,0 +1,35 @@
+
+#ifndef SHAPES_CONTROL_IDL_
+#define SHAPES_CONTROL_IDL_
+
+// #include "Shapes_defn.idl"
+
+#pragma ciao lem "Shapes_Control_objE.idl"
+
+module Shapes
+{
+ enum COLOR
+ {
+ white,
+ red,
+ yellow
+ };
+
+ interface Control_obj
+ {
+ boolean changeColor (in COLOR shape_color);
+ boolean changeMaxSize (in short max_size);
+ boolean changeMinSize (in short min_size);
+/*
+ ReturnStatus changeColor (in COLOR shape_color);
+ ReturnStatus changeMaxSize (in short max_size);
+ ReturnStatus changeMinSize (in short min_size);
+ attribute unsigned long rate;
+ attribute unsigned short max_x;
+ attribute unsigned short max_y;
+ attribute unsigned short max_size;
+ attribute boolean resize_shape;*/
+ };
+};
+
+#endif /* SHAPES_CONTROL_IDL_ */
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/src/ShapesSender_comp.idl b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/src/ShapesSender_comp.idl
new file mode 100644
index 00000000000..bbf97849719
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ShapesSender_comp/src/ShapesSender_comp.idl
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef SHAPES_SENDER_COMP_IDL_
+#define SHAPES_SENDER_COMP_IDL_
+
+#include "Shapes_conn.idl"
+#include "Shapes_Control_obj.idl"
+
+module Shapes
+{
+ component Sender_comp
+ {
+ port ShapesConnector::DDS_Write info_write;
+
+ provides Shapes::Control_obj control;
+ };
+};
+
+#endif /* SHAPES_SENDER_COMP_IDL_ */
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/Plan.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/Plan.cdp
new file mode 100644
index 00000000000..5c7f0619007
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/Plan.cdp
@@ -0,0 +1,464 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>Shapes_Depl_1</label>
+ <UUID>Shapes_Depl_1</UUID>
+
+ <implementation xmi:id="ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Shapes_ConnectorComponentImplementation">
+ <name>Shapes_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
+ <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_DDS_Event_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_DDS_Event_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shape_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <instance xmi:id="ReceiverComponentInstance">
+ <name>ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ReceiverComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>1</ulong>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>get_data</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>false</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>read_data</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>false</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>raw_listen</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="Shapes_ConnectorComponentInstance">
+ <name>Shapes_ConnectorComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Square</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="Shapes_ConnectorComponentInstance2">
+ <name>Shapes_ConnectorComponent2</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Square</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="SenderComponentInstance">
+ <name>SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>10</ulong>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_x</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>225</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_y</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>250</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_size</name>
+ <value>
+ <type>
+ <kind>tk_ushort</kind>
+ </type>
+ <value>
+ <ushort>25</ushort>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>resize_shape</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>info_out_data</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_out_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_consumer_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrol</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_consumer_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistener</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_consumer_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listener</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_consumer_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>writer_connection</name>
+ <deployRequirement>
+ <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
+ <resourceType>Local_Interface</resourceType>
+ </deployRequirement>
+ <internalEndpoint>
+ <portName>info_write_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supplier_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+ <artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+ </artifact>
+ <artifact xmi:id="Shapes_Connector_ExecArtifact">
+ <name>Shapes_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Shapes_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Shapes_Connector_SvntArtifact">
+ <name>Shapes_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Shapes_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Shapes_Connector_StubArtifact">
+ <name>Shapes_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Shapes_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/run_test.pl
new file mode 100755
index 00000000000..3d1cb2e87cd
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/descriptors/run_test.pl
@@ -0,0 +1,244 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$nr_daemon = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "SenderNode", "ReceiverNode" );
+
+# ior files other than daemon
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+$status = 0;
+$cdp_file = "Plan.cdp";
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('../lib');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../lib');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('../lib');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('../lib');
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemon ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('dance_locality_manager');
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
+
+ print "Run dance_node_manager with $d_param\n";
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+create_targets ();
+init_ior_files ();
+
+# Invoke naming service
+
+$NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+
+$ns_status = $NS->Spawn ();
+
+if ($ns_status != 0) {
+ print STDERR "ERROR: Unable to execute the naming service\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+}
+
+$ns_running = 1;
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+# Invoke node daemon.
+print "Invoking node daemon\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemon\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$daemons_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
+$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+$em_status = $EM->Spawn ();
+
+if ($em_status != 0) {
+ print STDERR "ERROR: dance_execution_manager returned $em_status";
+ exit 1;
+}
+
+if ($tg_exe_man->WaitForFileTimed ($ior_embase,
+ $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$em_running = 1;
+
+# Invoke executor - start the application -.
+print "Invoking executor - launch the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://$ior_emfile");
+$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
+
+if ($pl_status != 0) {
+ print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+for ($i = 0; $i < $nr_daemon; ++$i) {
+ if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
+ $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
+ print STDERR "ERROR: The ior file of daemon $i could not be found\n";
+ kill_open_processes ();
+ exit 1;
+ }
+}
+
+print "Sleeping 60 seconds to allow task to complete\n";
+sleep (60);
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -q\n";
+
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $cdp_file -s");
+$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($pl_status != 0) {
+ print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes.mpb b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes.mpb
new file mode 100644
index 00000000000..2eb64ee1ef1
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes.mpb
@@ -0,0 +1,5 @@
+// $Id $
+
+feature (dds4ccm_ndds) {
+ dds_ts_flags += -d GeneratedCode
+} \ No newline at end of file
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.idl b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.idl
new file mode 100644
index 00000000000..4f79dd6e9c1
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.idl
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef SHAPES_CONN_IDL_
+#define SHAPES_CONN_IDL_
+
+#include <Components.idl>
+#include "Shapes_msg.idl"
+#include "connectors/dds4ccm/idl/ccm_dds.idl"
+
+#pragma ciao lem "Shapes_connE.idl"
+
+module Shapes
+{
+ module ::CCM_DDS::Typed < ::ShapeType, ::ShapeTypeSeq> ShapesConnector;
+};
+
+#endif /* SHAPES_CONN_IDL_ */
+
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.mpc b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.mpc
new file mode 100644
index 00000000000..551ab7fb61e
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_conn.mpc
@@ -0,0 +1,147 @@
+// $Id$
+
+project(Shapes_conn_idl_gen) : connectoridldefaults, dds4ccm {
+ after += DDS4CCM_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SHAPES_CONNECTOR_STUB_Export \
+ -Wb,stub_export_include=Shapes_conn_stub_export.h \
+ -Wb,skel_export_macro=SHAPES_CONNECTOR_SVNT_Export \
+ -Wb,skel_export_include=Shapes_conn_svnt_export.h \
+ -Wb,svnt_export_macro=SHAPES_CONNECTOR_SVNT_Export \
+ -Wb,svnt_export_include=Shapes_conn_svnt_export.h \
+ -Wb,conn_export_macro=SHAPES_CONNECTOR_CONN_Export \
+ -Wb,conn_export_include=Shapes_conn_conn_export.h \
+ -I .. -o GeneratedCode
+
+
+ IDL_Files {
+ Shapes_conn.idl
+ gendir = GeneratedCode
+ }
+}
+
+project(Shapes_conn_lem_gen) : ciaoidldefaults, dds4ccm {
+ custom_only = 1
+ after += Shapes_conn_idl_gen
+ idlflags += -Wb,stub_export_macro=SHAPES_CONNECTOR_LEM_STUB_Export \
+ -Wb,stub_export_include=Shapes_conn_lem_stub_export.h \
+ -SS -Gxhst \
+ -I .. -o GeneratedCode
+
+ IDL_Files {
+ GeneratedCode/Shapes_connE.idl
+ gendir = GeneratedCode
+ }
+}
+
+project(Shapes_conn_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += Shapes_conn_lem_gen Shapes_conn_stub Shapes_msg_stub DDS4CCM_lem_stub
+ libs += Shapes_msg_stub Shapes_conn_stub DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += .
+ sharedname = Shapes_conn_lem_stub
+ dynamicflags = SHAPES_CONNECTOR_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/Shapes_connEC.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/Shapes_connEC.h
+ GeneratedCode/Shapes_conn_lem_stub_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/Shapes_connEC.inl
+ }
+}
+
+project(Shapes_conn_stub) : ccm_stub, dds4ccm_base {
+ after += Shapes_conn_idl_gen Shapes_msg_stub
+ libs += Shapes_msg_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += .
+ sharedname = Shapes_conn_stub
+ dynamicflags = SHAPES_CONNECTOR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/Shapes_connC.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/Shapes_connC.h
+ GeneratedCode/Shapes_conn_stub_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/Shapes_connC.inl
+ }
+}
+
+project(Shapes_conn_exec) : ciao_executor, dds4ccm_impl {
+ after += Shapes_conn_lem_stub Shapes_conn_stub DDS4CCM_lem_stub
+ sharedname = Shapes_conn_exec
+ libs += Shapes_conn_stub Shapes_conn_lem_stub Shapes_msg_stub DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += .
+ dynamicflags = SHAPES_CONNECTOR_CONN_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/Shapes_conn_conn.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/Shapes_conn_conn.h
+ GeneratedCode/Shapes_conn_conn_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Shapes_conn_svnt) : ciao_servant, dds4ccm_impl {
+ after += Shapes_conn_lem_stub Shapes_conn_exec Shapes_conn_stub DDS4CCM_lem_stub
+ sharedname = Shapes_conn_svnt
+ libs += Shapes_conn_stub \
+ Shapes_conn_lem_stub \
+ Shapes_msg_stub \
+ Shapes_conn_exec \
+ DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += .
+ dynamicflags = SHAPES_CONNECTOR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GeneratedCode/Shapes_connS.cpp
+ GeneratedCode/Shapes_conn_svnt.cpp
+ }
+
+ Header_Files {
+ GeneratedCode/Shapes_connS.h
+ GeneratedCode/Shapes_conn_svnt.h
+ GeneratedCode/Shapes_conn_svnt_export.h
+ }
+
+ Inline_Files {
+ GeneratedCode/Shapes_connS.inl
+ }
+}
+
+
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.idl b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.idl
new file mode 100755
index 00000000000..620cd1a9b87
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.idl
@@ -0,0 +1,35 @@
+// $Id$
+
+#ifndef SHAPES_MSG_IDL_
+#define SHAPES_MSG_IDL_
+
+#pragma ndds typesupport "Shapes_msgSupport.h"
+#pragma opendds typesupport "Shapes_msgTypeSupportC.h"
+#pragma splice typesupport "Shapes_msgDscpC.h"
+
+#pragma DCPS_DATA_TYPE "ShapeType"
+#pragma DCPS_DATA_KEY "ShapeType color"
+
+struct ShapeType {
+ string color; //@key
+ long x;
+ long y;
+ long shapesize;
+};
+
+#pragma keylist ShapeType color
+
+#pragma DCPS_DATA_TYPE "Attributes"
+#pragma DCPS_DATA_KEY "Attributes shape"
+#pragma DCPS_DATA_KEY "Attributes color"
+
+struct Attributes {
+ string shape; //@key
+ string color; //@key
+ float speed;
+};
+typedef sequence<ShapeType> ShapeTypeSeq;
+
+#pragma keylist Attributes shape color
+
+#endif /* SHAPES_MSG_IDL_ */
diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.mpc b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.mpc
new file mode 100644
index 00000000000..a34afa8a2ed
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Shapes_asm/ports/Shapes_msg.mpc
@@ -0,0 +1,29 @@
+// $Id$
+
+project (Shapes_msg_stub) : taoidldefaults, anytypecode, dds4ccm_ts_default, Shapes {
+ sharedname = Shapes_msg_stub
+ dynamicflags += SHAPES_MSG_STUB_BUILD_DLL
+ libout = ../lib
+
+ idlflags += -SS -Sci \
+ -Wb,stub_export_macro=SHAPES_MSG_STUB_Export \
+ -Wb,stub_export_include=Shapes_msg_stub_export.h \
+ -o GeneratedCode
+
+ IDL_Files {
+ idlflags += -Gxhst
+ gendir = GeneratedCode
+ Shapes_msg.idl
+ }
+
+ opendds_ts_flags += --export=SHAPES_BASE_MSG_Export
+
+ DDSGenerator_Files {
+ Shapes_msg.idl
+ gendir = GeneratedCode
+ }
+
+ Source_Files {
+ }
+}
+