summaryrefslogtreecommitdiff
path: root/CIAO/examples/Swapping
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/examples/Swapping')
-rw-r--r--CIAO/examples/Swapping/Hello_Base/Hello_Base.idl21
-rw-r--r--CIAO/examples/Swapping/Hello_Base/Hello_Base.mpc38
-rw-r--r--CIAO/examples/Swapping/Hello_Base/Hello_Base_stub_export.h54
-rw-r--r--CIAO/examples/Swapping/Hello_Base/Hello_Base_svnt_export.h54
-rw-r--r--CIAO/examples/Swapping/Receiver/Receiver.cidl17
-rw-r--r--CIAO/examples/Swapping/Receiver/Receiver.idl21
-rw-r--r--CIAO/examples/Swapping/Receiver/Receiver.mpc63
-rw-r--r--CIAO/examples/Swapping/Receiver/Receiver_exec.cpp168
-rw-r--r--CIAO/examples/Swapping/Receiver/Receiver_exec.h108
-rw-r--r--CIAO/examples/Swapping/Receiver/Receiver_exec_export.h53
-rw-r--r--CIAO/examples/Swapping/Receiver/Receiver_stub_export.h53
-rw-r--r--CIAO/examples/Swapping/Receiver/Receiver_svnt_export.h54
-rw-r--r--CIAO/examples/Swapping/Sender/Sender.cidl17
-rw-r--r--CIAO/examples/Swapping/Sender/Sender.idl32
-rw-r--r--CIAO/examples/Swapping/Sender/Sender.mpc121
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec.cpp196
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec.h172
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec_1.cpp140
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec_1.h113
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec_1_export.h54
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec_2.cpp125
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec_2.h114
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec_2_export.h54
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_exec_export.h54
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_stub_export.h54
-rw-r--r--CIAO/examples/Swapping/Sender/Sender_svnt_export.h54
-rw-r--r--CIAO/examples/Swapping/Sender/starter.cpp97
27 files changed, 2101 insertions, 0 deletions
diff --git a/CIAO/examples/Swapping/Hello_Base/Hello_Base.idl b/CIAO/examples/Swapping/Hello_Base/Hello_Base.idl
new file mode 100644
index 00000000000..6cb61fed2c1
--- /dev/null
+++ b/CIAO/examples/Swapping/Hello_Base/Hello_Base.idl
@@ -0,0 +1,21 @@
+//$Id$:
+
+#ifndef CIAO_HELLO_IDL
+#define CIAO_HELLO_IDL
+
+#include <Components.idl>
+
+module Hello
+{
+ interface ReadMessage
+ {
+ string get_message();
+ };
+
+ eventtype TimeOut
+ {
+ };
+
+};
+
+#endif /* CIAO_HELLO_IDL */
diff --git a/CIAO/examples/Swapping/Hello_Base/Hello_Base.mpc b/CIAO/examples/Swapping/Hello_Base/Hello_Base.mpc
new file mode 100644
index 00000000000..3e12160cb00
--- /dev/null
+++ b/CIAO/examples/Swapping/Hello_Base/Hello_Base.mpc
@@ -0,0 +1,38 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Hello_Base"
+
+project(Hello_Base_DnC_Upgradeable_stub): ciao_client_dnc {
+
+ sharedname = Hello_Base_DnC_Upgradeable_stub
+ idlflags += -Wb,stub_export_macro=HELLO_BASE_STUB_Export -Wb,stub_export_include=Hello_Base_stub_export.h -Wb,skel_export_macro=HELLO_BASE_SVNT_Export -Wb,skel_export_include=Hello_Base_svnt_export.h
+ dynamicflags = HELLO_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ Hello_Base.idl
+ }
+
+ Source_Files {
+ Hello_BaseC.cpp
+ }
+}
+
+project(Hello_Base_DnC_Upgradeable_svnt) : ciao_servant_dnc {
+ after += Hello_Base_DnC_Upgradeable_stub
+ sharedname = Hello_Base_DnC_Upgradeable_svnt
+ libs += Hello_Base_DnC_Upgradeable_stub
+
+ idlflags += -Wb,stub_export_macro=HELLO_BASE_STUB_Export -Wb,stub_export_include=Hello_Base_stub_export.h -Wb,skel_export_macro=HELLO_BASE_SVNT_Export -Wb,skel_export_include=Hello_Base_svnt_export.h
+ dynamicflags = HELLO_BASE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ Hello_Base.idl
+ }
+
+ Source_Files {
+ Hello_BaseS.cpp
+ }
+}
+
+
+
+
diff --git a/CIAO/examples/Swapping/Hello_Base/Hello_Base_stub_export.h b/CIAO/examples/Swapping/Hello_Base/Hello_Base_stub_export.h
new file mode 100644
index 00000000000..224fe95a845
--- /dev/null
+++ b/CIAO/examples/Swapping/Hello_Base/Hello_Base_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HELLO_BASE_STUB
+// ------------------------------
+#ifndef HELLO_BASE_STUB_EXPORT_H
+#define HELLO_BASE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (HELLO_BASE_STUB_HAS_DLL)
+# define HELLO_BASE_STUB_HAS_DLL 1
+#endif /* ! HELLO_BASE_STUB_HAS_DLL */
+
+#if defined (HELLO_BASE_STUB_HAS_DLL) && (HELLO_BASE_STUB_HAS_DLL == 1)
+# if defined (HELLO_BASE_STUB_BUILD_DLL)
+# define HELLO_BASE_STUB_Export ACE_Proper_Export_Flag
+# define HELLO_BASE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HELLO_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HELLO_BASE_STUB_BUILD_DLL */
+# define HELLO_BASE_STUB_Export ACE_Proper_Import_Flag
+# define HELLO_BASE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HELLO_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HELLO_BASE_STUB_BUILD_DLL */
+#else /* HELLO_BASE_STUB_HAS_DLL == 1 */
+# define HELLO_BASE_STUB_Export
+# define HELLO_BASE_STUB_SINGLETON_DECLARATION(T)
+# define HELLO_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HELLO_BASE_STUB_HAS_DLL == 1 */
+
+// Set HELLO_BASE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HELLO_BASE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HELLO_BASE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HELLO_BASE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HELLO_BASE_STUB_NTRACE */
+
+#if (HELLO_BASE_STUB_NTRACE == 1)
+# define HELLO_BASE_STUB_TRACE(X)
+#else /* (HELLO_BASE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HELLO_BASE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HELLO_BASE_STUB_NTRACE == 1) */
+
+#endif /* HELLO_BASE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Hello_Base/Hello_Base_svnt_export.h b/CIAO/examples/Swapping/Hello_Base/Hello_Base_svnt_export.h
new file mode 100644
index 00000000000..57625da60c6
--- /dev/null
+++ b/CIAO/examples/Swapping/Hello_Base/Hello_Base_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HELLO_BASE_SVNT
+// ------------------------------
+#ifndef HELLO_BASE_SVNT_EXPORT_H
+#define HELLO_BASE_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (HELLO_BASE_SVNT_HAS_DLL)
+# define HELLO_BASE_SVNT_HAS_DLL 1
+#endif /* ! HELLO_BASE_SVNT_HAS_DLL */
+
+#if defined (HELLO_BASE_SVNT_HAS_DLL) && (HELLO_BASE_SVNT_HAS_DLL == 1)
+# if defined (HELLO_BASE_SVNT_BUILD_DLL)
+# define HELLO_BASE_SVNT_Export ACE_Proper_Export_Flag
+# define HELLO_BASE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HELLO_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HELLO_BASE_SVNT_BUILD_DLL */
+# define HELLO_BASE_SVNT_Export ACE_Proper_Import_Flag
+# define HELLO_BASE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HELLO_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HELLO_BASE_SVNT_BUILD_DLL */
+#else /* HELLO_BASE_SVNT_HAS_DLL == 1 */
+# define HELLO_BASE_SVNT_Export
+# define HELLO_BASE_SVNT_SINGLETON_DECLARATION(T)
+# define HELLO_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HELLO_BASE_SVNT_HAS_DLL == 1 */
+
+// Set HELLO_BASE_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HELLO_BASE_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HELLO_BASE_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HELLO_BASE_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HELLO_BASE_SVNT_NTRACE */
+
+#if (HELLO_BASE_SVNT_NTRACE == 1)
+# define HELLO_BASE_SVNT_TRACE(X)
+#else /* (HELLO_BASE_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HELLO_BASE_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HELLO_BASE_SVNT_NTRACE == 1) */
+
+#endif /* HELLO_BASE_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Receiver/Receiver.cidl b/CIAO/examples/Swapping/Receiver/Receiver.cidl
new file mode 100644
index 00000000000..3b2e04e5161
--- /dev/null
+++ b/CIAO/examples/Swapping/Receiver/Receiver.cidl
@@ -0,0 +1,17 @@
+//$Id$
+
+#ifndef SENDER_CIDL
+#define SENDER_CIDL
+
+#include "Receiver.idl"
+
+composition session Receiver_Impl
+{
+ home executor ReceiverHome_Exec
+ {
+ implements Hello::ReceiverHome;
+ manages Receiver_Exec;
+ };
+};
+
+#endif /* SENDER_CIDL */
diff --git a/CIAO/examples/Swapping/Receiver/Receiver.idl b/CIAO/examples/Swapping/Receiver/Receiver.idl
new file mode 100644
index 00000000000..8be435c687c
--- /dev/null
+++ b/CIAO/examples/Swapping/Receiver/Receiver.idl
@@ -0,0 +1,21 @@
+//$Id$:
+
+#ifndef RECEIVER_IDL
+#define RECEIVER_IDL
+
+#include "../Hello_Base/Hello_Base.idl"
+
+module Hello
+{
+ component Receiver
+ {
+ uses ReadMessage read_message;
+ consumes TimeOut click_in;
+ };
+
+ home ReceiverHome manages Receiver
+ {
+ };
+
+};
+#endif /*RECEIVER_IDL*/
diff --git a/CIAO/examples/Swapping/Receiver/Receiver.mpc b/CIAO/examples/Swapping/Receiver/Receiver.mpc
new file mode 100644
index 00000000000..b6b13c0660b
--- /dev/null
+++ b/CIAO/examples/Swapping/Receiver/Receiver.mpc
@@ -0,0 +1,63 @@
+// $Id$
+// This file is generated with "generate_component_mpc_extra.pl -p Hello_Base Receiver"
+
+project(HelloB_Receiver_DnC_Upgradeable_stub): ciao_client_dnc {
+ avoids += ace_for_tao
+ after += Hello_Base_DnC_Upgradeable_stub
+ sharedname = Receiver_DnC_Upgradeable_stub
+ idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export -Wb,stub_export_include=Receiver_stub_export.h -Wb,skel_export_macro=RECEIVER_SVNT_Export -Wb,skel_export_include=Receiver_svnt_export.h
+ dynamicflags = RECEIVER_STUB_BUILD_DLL
+ libs += Hello_Base_DnC_Upgradeable_stub
+
+ IDL_Files {
+ Receiver.idl
+ }
+
+ Source_Files {
+ ReceiverC.cpp
+ }
+}
+
+project(HelloB_Receiver_DnC_Upgradeable_svnt) : ciao_servant_dnc {
+ avoids += ace_for_tao
+ after += Hello_Base_DnC_Upgradeable_svnt HelloB_Receiver_DnC_Upgradeable_stub
+ sharedname = Receiver_DnC_Upgradeable_svnt
+ libs += Receiver_DnC_Upgradeable_stub Hello_Base_DnC_Upgradeable_stub Hello_Base_DnC_Upgradeable_svnt
+
+ idlflags += -Wb,export_macro=RECEIVER_SVNT_Export -Wb,export_include=Receiver_svnt_export.h
+ dynamicflags = RECEIVER_SVNT_BUILD_DLL
+ cidlflags -= --
+ cidlflags += --custom-container upgradeable --
+
+ CIDL_Files {
+ Receiver.cidl
+ }
+
+ IDL_Files {
+ ReceiverE.idl
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ ReceiverS.cpp
+ Receiver_svnt.cpp
+ }
+}
+
+
+project(HelloB_Receiver_DnC_Upgradeable_exec) : ciao_component_dnc {
+ avoids += ace_for_tao
+ after += HelloB_Receiver_DnC_Upgradeable_svnt
+ sharedname = Receiver_DnC_Upgradeable_exec
+ libs += Receiver_DnC_Upgradeable_stub Receiver_DnC_Upgradeable_svnt Hello_Base_DnC_Upgradeable_stub Hello_Base_DnC_Upgradeable_svnt
+
+ idlflags += -Wb,export_macro=RECEIVER_EXEC_Export -Wb,export_include=Receiver_exec_export.h
+ dynamicflags = RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Receiver_exec.cpp
+ }
+}
diff --git a/CIAO/examples/Swapping/Receiver/Receiver_exec.cpp b/CIAO/examples/Swapping/Receiver/Receiver_exec.cpp
new file mode 100644
index 00000000000..ba90f31b2d5
--- /dev/null
+++ b/CIAO/examples/Swapping/Receiver/Receiver_exec.cpp
@@ -0,0 +1,168 @@
+//$Id$
+/*
+ * @file Receiver_exec.cpp
+ *
+ * @author Tao Lu <lu@dre.vanderbilt.edu>
+ */
+
+#include "Receiver_exec.h"
+#include "CIAO_common.h"
+
+namespace CIDL_Receiver_Impl
+{
+ ReceiverSwap_exec_i::ReceiverSwap_exec_i ()
+ {
+ }
+
+ ReceiverSwap_exec_i::~ReceiverSwap_exec_i ()
+ {
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverSwap_exec_i::incarnate ()
+ {
+ return new Receiver_exec_i;
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverSwap_exec_i::etherealize ()
+ {
+ return new Receiver_exec_i;
+ }
+
+ Receiver_exec_i::Receiver_exec_i ()
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i ()
+ {
+ }
+
+ void
+ Receiver_exec_i::push_click_in (Hello::TimeOut *)
+ {
+ //Get the message from the Sender first.
+ ACE_DEBUG ((LM_DEBUG,
+ "Receiver - Informed by the Sender \n"));
+
+ Hello::ReadMessage_var rev
+ = this->context_->get_connection_read_message
+ ();
+
+ if (CORBA::is_nil (rev.in ()))
+ {
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ CORBA::String_var str =
+ rev->get_message ();
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Receiver - Got message from the server [%s] \n",
+ str.in () ));
+ }
+
+ // Operations from Components::SessionComponen
+ void
+ Receiver_exec_i::set_session_context (Components::SessionContext_ptr ctx)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::set_session_context\n"));
+
+ this->context_ =
+ Receiver_Exec_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::ciao_preactivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Receiver_exec_i::ciao_preactivate\n"));
+ }
+
+ void
+ Receiver_exec_i::ccm_activate ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_activate\n"));
+ }
+
+ void
+ Receiver_exec_i::ciao_postactivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Receiver_exec_i::ciao_postactivate\n"));
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_passivate\n"));
+ /*
+ CORBA::Object_var comp_object =
+ this->context_->get_CCM_object ();
+
+ Hello::Receiver_var receiver = Hello::Receiver::_narrow (comp_object.in ());
+
+ ::Components::ConsumerDescriptions_var cons_desc =
+ receiver->get_all_consumers ();
+
+ ::Components::FacetDescriptions_var facet_desc =
+ receiver->get_all_facets ();
+
+ CORBA::ULong cons_len = cons_desc->length ();
+ CORBA::ULong facet_len = facet_desc->length ();
+ for (CORBA::ULong i = 0; i < cons_len; ++i)
+ {
+ // ACE_DEBUG ((LM_DEBUG, "consumer name is %s\n", cons_desc[i]->name ()));
+ }
+ for (CORBA::ULong i = 0; i < facet_len; ++i)
+ {
+ // ACE_DEBUG ((LM_DEBUG, "facet name is %s\n", facet_desc[i]->name ()));
+ }
+ */
+ }
+
+ void
+ Receiver_exec_i::ccm_remove ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_remove\n"));
+ }
+
+
+ ReceiverHome_exec_i::ReceiverHome_exec_i ()
+ {
+ }
+
+ ReceiverHome_exec_i::~ReceiverHome_exec_i ()
+ {
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverHome_exec_i::create ()
+ {
+ Components::EnterpriseComponent_ptr tmp;
+
+ ACE_NEW_THROW_EX (tmp,
+ ReceiverSwap_exec_i,
+ CORBA::NO_MEMORY ());
+
+ /*
+ ACE_NEW_THROW_EX (tmp,
+ Receiver_exec_i,
+ CORBA::NO_MEMORY ());
+ */
+
+ return tmp;
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createReceiverHome_Impl (void)
+ {
+ return new ReceiverHome_exec_i ();
+ }
+}
+
diff --git a/CIAO/examples/Swapping/Receiver/Receiver_exec.h b/CIAO/examples/Swapping/Receiver/Receiver_exec.h
new file mode 100644
index 00000000000..f5896f9e60f
--- /dev/null
+++ b/CIAO/examples/Swapping/Receiver/Receiver_exec.h
@@ -0,0 +1,108 @@
+//$Id$:
+//============================================================
+/**
+ * @file Receiver_exec.h
+ *
+ * Header file for the Executor implementation.
+ */
+//============================================================
+
+#ifndef RECEIVER_EXEC_H
+#define RECEIVER_EXEC_H
+
+#include "ciao/CIAO_SwapExecC.h"
+#include "ReceiverEC.h"
+#include "Receiver_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIDL_Receiver_Impl
+{
+
+ /**
+ * @class Receiver_exec_i
+ *
+ * Receiver executor implementation class.
+ */
+
+ class RECEIVER_EXEC_Export ReceiverSwap_exec_i :
+ public virtual CIAO::Swap_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ ReceiverSwap_exec_i ();
+
+ ~ReceiverSwap_exec_i ();
+
+ virtual ::Components::EnterpriseComponent_ptr
+ incarnate ();
+
+ virtual ::Components::EnterpriseComponent_ptr
+ etherealize ();
+ };
+
+ class RECEIVER_EXEC_Export Receiver_exec_i :
+ public virtual Receiver_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+
+ public:
+ /// Default constructor.
+ Receiver_exec_i ();
+
+ /// Default destructor.
+ ~Receiver_exec_i ();
+
+ // Operation which will be called upon receiving the timeout event.
+ virtual void
+ push_click_in (Hello::TimeOut *ev);
+
+ // Operations from Components::SessionComponent
+ virtual void set_session_context (Components::SessionContext_ptr ctx);
+
+ virtual void ciao_preactivate ();
+
+ virtual void ccm_activate ();
+
+ virtual void ciao_postactivate ();
+
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ protected:
+ /// Copmponent specific context
+ Receiver_Exec_Context_var context_;
+ private:
+ CORBA::String_var message_;
+ };
+
+ /**
+ * @class ReceiverHome_exec_i
+ *
+ * Receiver home executor implementation class.
+ */
+ class RECEIVER_EXEC_Export ReceiverHome_exec_i :
+ public virtual ReceiverHome_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default ctor.
+ ReceiverHome_exec_i ();
+
+ /// Default dtor.
+ ~ReceiverHome_exec_i ();
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createReceiverHome_Impl (void);
+}
+
+#endif /* RECEIVER_EXEC_H */
+
+
diff --git a/CIAO/examples/Swapping/Receiver/Receiver_exec_export.h b/CIAO/examples/Swapping/Receiver/Receiver_exec_export.h
new file mode 100644
index 00000000000..639c089cb6b
--- /dev/null
+++ b/CIAO/examples/Swapping/Receiver/Receiver_exec_export.h
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEIVER_EXEC
+// ------------------------------
+#ifndef RECEIVER_EXEC_EXPORT_H
+#define RECEIVER_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (RECEIVER_EXEC_HAS_DLL)
+# define RECEIVER_EXEC_HAS_DLL 1
+#endif /* ! RECEIVER_EXEC_HAS_DLL */
+
+#if defined (RECEIVER_EXEC_HAS_DLL) && (RECEIVER_EXEC_HAS_DLL == 1)
+# if defined (RECEIVER_EXEC_BUILD_DLL)
+# define RECEIVER_EXEC_Export ACE_Proper_Export_Flag
+# define RECEIVER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEIVER_EXEC_BUILD_DLL */
+# define RECEIVER_EXEC_Export ACE_Proper_Import_Flag
+# define RECEIVER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEIVER_EXEC_BUILD_DLL */
+#else /* RECEIVER_EXEC_HAS_DLL == 1 */
+# define RECEIVER_EXEC_Export
+# define RECEIVER_EXEC_SINGLETON_DECLARATION(T)
+# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEIVER_EXEC_HAS_DLL == 1 */
+
+// Set RECEIVER_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEIVER_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEIVER_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEIVER_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEIVER_EXEC_NTRACE */
+
+#if (RECEIVER_EXEC_NTRACE == 1)
+# define RECEIVER_EXEC_TRACE(X)
+#else /* (RECEIVER_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEIVER_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEIVER_EXEC_NTRACE == 1) */
+
+#endif /* RECEIVER_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Receiver/Receiver_stub_export.h b/CIAO/examples/Swapping/Receiver/Receiver_stub_export.h
new file mode 100644
index 00000000000..d102fa7a514
--- /dev/null
+++ b/CIAO/examples/Swapping/Receiver/Receiver_stub_export.h
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEIVER_STUB
+// ------------------------------
+#ifndef RECEIVER_STUB_EXPORT_H
+#define RECEIVER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (RECEIVER_STUB_HAS_DLL)
+# define RECEIVER_STUB_HAS_DLL 1
+#endif /* ! RECEIVER_STUB_HAS_DLL */
+
+#if defined (RECEIVER_STUB_HAS_DLL) && (RECEIVER_STUB_HAS_DLL == 1)
+# if defined (RECEIVER_STUB_BUILD_DLL)
+# define RECEIVER_STUB_Export ACE_Proper_Export_Flag
+# define RECEIVER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEIVER_STUB_BUILD_DLL */
+# define RECEIVER_STUB_Export ACE_Proper_Import_Flag
+# define RECEIVER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEIVER_STUB_BUILD_DLL */
+#else /* RECEIVER_STUB_HAS_DLL == 1 */
+# define RECEIVER_STUB_Export
+# define RECEIVER_STUB_SINGLETON_DECLARATION(T)
+# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEIVER_STUB_HAS_DLL == 1 */
+
+// Set RECEIVER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEIVER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEIVER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEIVER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEIVER_STUB_NTRACE */
+
+#if (RECEIVER_STUB_NTRACE == 1)
+# define RECEIVER_STUB_TRACE(X)
+#else /* (RECEIVER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEIVER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEIVER_STUB_NTRACE == 1) */
+
+#endif /* RECEIVER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Receiver/Receiver_svnt_export.h b/CIAO/examples/Swapping/Receiver/Receiver_svnt_export.h
new file mode 100644
index 00000000000..1c9eca2556d
--- /dev/null
+++ b/CIAO/examples/Swapping/Receiver/Receiver_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEIVER_SVNT
+// ------------------------------
+#ifndef RECEIVER_SVNT_EXPORT_H
+#define RECEIVER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (RECEIVER_SVNT_HAS_DLL)
+# define RECEIVER_SVNT_HAS_DLL 1
+#endif /* ! RECEIVER_SVNT_HAS_DLL */
+
+#if defined (RECEIVER_SVNT_HAS_DLL) && (RECEIVER_SVNT_HAS_DLL == 1)
+# if defined (RECEIVER_SVNT_BUILD_DLL)
+# define RECEIVER_SVNT_Export ACE_Proper_Export_Flag
+# define RECEIVER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEIVER_SVNT_BUILD_DLL */
+# define RECEIVER_SVNT_Export ACE_Proper_Import_Flag
+# define RECEIVER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEIVER_SVNT_BUILD_DLL */
+#else /* RECEIVER_SVNT_HAS_DLL == 1 */
+# define RECEIVER_SVNT_Export
+# define RECEIVER_SVNT_SINGLETON_DECLARATION(T)
+# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEIVER_SVNT_HAS_DLL == 1 */
+
+// Set RECEIVER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEIVER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEIVER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEIVER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEIVER_SVNT_NTRACE */
+
+#if (RECEIVER_SVNT_NTRACE == 1)
+# define RECEIVER_SVNT_TRACE(X)
+#else /* (RECEIVER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEIVER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEIVER_SVNT_NTRACE == 1) */
+
+#endif /* RECEIVER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Sender/Sender.cidl b/CIAO/examples/Swapping/Sender/Sender.cidl
new file mode 100644
index 00000000000..8ce22a223b0
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender.cidl
@@ -0,0 +1,17 @@
+//$Id$
+
+#ifndef SENDER_CIDL
+#define SENDER_CIDL
+
+#include "Sender.idl"
+
+composition session Sender_Impl
+{
+ home executor SenderHome_Exec
+ {
+ implements Hello::SenderHome;
+ manages Sender_Exec;
+ };
+};
+
+#endif /* SENDER_CIDL */
diff --git a/CIAO/examples/Swapping/Sender/Sender.idl b/CIAO/examples/Swapping/Sender/Sender.idl
new file mode 100644
index 00000000000..e2c8ca64b0e
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender.idl
@@ -0,0 +1,32 @@
+//$Id$
+
+#ifndef CIAO_SENDER_IDL
+#define CIAO_SENDER_IDL
+
+
+#include "../Hello_Base/Hello_Base.idl"
+
+module Hello
+{
+ /* This is a Sender specific interface which will be used to get the
+ * process start.
+ */
+
+ interface trigger
+ {
+ void start ();
+ };
+
+ component Sender supports trigger
+ {
+ provides ReadMessage push_message;
+ publishes TimeOut click_out;
+ attribute string local_message;
+ };
+
+ home SenderHome manages Sender
+ {
+ };
+
+};
+#endif /*CIAO_SENDER_IDL*/
diff --git a/CIAO/examples/Swapping/Sender/Sender.mpc b/CIAO/examples/Swapping/Sender/Sender.mpc
new file mode 100644
index 00000000000..d0d42c7c8bc
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender.mpc
@@ -0,0 +1,121 @@
+// $Id$
+// This file is generated with "generate_component_mpc_extra.pl -p Hello_Base Sender"
+
+project(HelloB_Sender_DnC_Upgradeable_stub): ciao_client_dnc {
+ avoids += ace_for_tao
+ after += Hello_Base_DnC_Upgradeable_stub
+ sharedname = Sender_DnC_Upgradeable_stub
+ idlflags += -Wb,stub_export_macro=SENDER_STUB_Export -Wb,stub_export_include=Sender_stub_export.h -Wb,skel_export_macro=SENDER_SVNT_Export -Wb,skel_export_include=Sender_svnt_export.h
+ dynamicflags = SENDER_STUB_BUILD_DLL
+ libs += Hello_Base_DnC_Upgradeable_stub
+
+ IDL_Files {
+ Sender.idl
+ }
+
+ Source_Files {
+ SenderC.cpp
+
+ }
+}
+
+project(HelloB_Sender_DnC_Upgradeable_svnt) : ciao_servant_dnc {
+ avoids += ace_for_tao
+ after += Hello_Base_DnC_Upgradeable_svnt \
+ HelloB_Sender_DnC_Upgradeable_stub
+ sharedname = Sender_DnC_Upgradeable_svnt
+ libs += Sender_DnC_Upgradeable_stub Hello_Base_DnC_Upgradeable_stub \
+ Hello_Base_DnC_Upgradeable_svnt
+
+ idlflags += -Wb,export_macro=SENDER_SVNT_Export -Wb,export_include=Sender_svnt_export.h
+ dynamicflags = SENDER_SVNT_BUILD_DLL
+ cidlflags -= --
+ cidlflags += --custom-container upgradeable --
+
+ CIDL_Files {
+ Sender.cidl
+ }
+
+ IDL_Files {
+ SenderE.idl << SenderE.idl
+ }
+
+ Source_Files {
+ SenderEC.cpp
+ SenderS.cpp
+ Sender_svnt.cpp
+ }
+}
+
+project(HelloB_Sender_DnC_Upgradeable_exec) : ciao_component_dnc {
+ avoids += ace_for_tao
+ after += HelloB_Sender_DnC_Upgradeable_svnt
+ sharedname = Sender_DnC_Upgradeable_exec
+ libs += Sender_DnC_Upgradeable_stub Sender_DnC_Upgradeable_svnt Hello_Base_DnC_Upgradeable_stub Hello_Base_DnC_Upgradeable_svnt
+
+ idlflags += -Wb,export_macro=SENDER_EXEC_Export -Wb,export_include=Sender_exec_export.h
+ dynamicflags = SENDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Sender_exec.cpp
+ }
+}
+
+project(HelloB_Sender_DnC_Upgradeable_exec_1) : ciao_component_dnc {
+ avoids += ace_for_tao
+ after += HelloB_Sender_DnC_Upgradeable_svnt \
+ HelloB_Sender_DnC_Upgradeable_exec
+ sharedname = Sender_DnC_Upgradeable_exec_1
+ libs += Sender_DnC_Upgradeable_stub Sender_DnC_Upgradeable_svnt \
+ Sender_DnC_Upgradeable_exec Hello_Base_DnC_Upgradeable_stub \
+ Hello_Base_DnC_Upgradeable_svnt
+
+ idlflags += -Wb,export_macro=SENDER_EXEC_1_Export -Wb,\
+ export_include=Sender_exec_1_export.h
+ dynamicflags = SENDER_EXEC_1_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Sender_exec_1.cpp
+ }
+}
+
+project(HelloB_Sender_DnC_Upgradeable_exec_2) : ciao_component_dnc {
+ avoids += ace_for_tao
+ after += HelloB_Sender_DnC_Upgradeable_svnt \
+ HelloB_Sender_DnC_Upgradeable_exec
+ sharedname = Sender_DnC_Upgradeable_exec_2
+ libs += Sender_DnC_Upgradeable_stub Sender_DnC_Upgradeable_svnt \
+ Sender_DnC_Upgradeable_exec Hello_Base_DnC_Upgradeable_stub \
+ Hello_Base_DnC_Upgradeable_svnt
+
+ idlflags += -Wb,export_macro=SENDER_EXEC_2_Export -Wb,\
+ export_include=Sender_exec_2_export.h
+ dynamicflags = SENDER_EXEC_2_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Sender_exec_2.cpp
+ }
+}
+
+project (Hello_DnC_Upgradeable_Starter) : ciao_client_dnc, valuetype{
+ avoids += ace_for_tao
+ exename = Upgradeable_starter
+ after += HelloB_Sender_DnC_Upgradeable_stub
+ libs += Sender_DnC_Upgradeable_stub Hello_Base_DnC_Upgradeable_stub
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ starter.cpp
+ }
+}
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec.cpp b/CIAO/examples/Swapping/Sender/Sender_exec.cpp
new file mode 100644
index 00000000000..eeacef71fd2
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec.cpp
@@ -0,0 +1,196 @@
+//$Id$
+
+#include "Sender_exec.h"
+
+const char* first_exe_dll_name = "Sender_DnC_exec_1";
+const char* first_exe_entrypt = "createSenderExec_Impl";
+const char* second_exe_dll_name = "Sender_DnC_exec_2";
+const char* second_exe_entrypt = "createSenderExec_Impl";
+
+namespace CIDL_Sender_Impl
+{
+ char*
+ Message_Impl::get_message ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender sending out message. \n"));
+ return CORBA::string_dup (component_.message_.in ());
+ }
+
+ Sender_exec_i::~Sender_exec_i ()
+ {
+ }
+
+ void
+ Sender_exec_i::local_message (const char * local_message)
+ {
+ message_ = CORBA::string_dup (local_message);
+ }
+
+ char *
+ Sender_exec_i::local_message ()
+ {
+ return CORBA::string_dup(message_. in());
+ }
+
+ Hello::CCM_ReadMessage_ptr
+ Sender_exec_i::get_push_message ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec.i::get_push_message called\n "));
+ return ( new Message_Impl (*this) );
+ }
+
+ void
+ Sender_exec_i::start ()
+ {
+ Hello::TimeOut_var event = new OBV_Hello::TimeOut;
+ ACE_DEBUG ((LM_DEBUG, "Sender initiates the process.\n"));
+ this->context_->push_click_out (event);
+ }
+
+ void
+ Sender_exec_i::set_session_context (Components::SessionContext_ptr ctx)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_i::set_session_context\n"));
+
+ this->context_ =
+ Sender_Exec_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::ciao_preactivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_i::ciao_preactivate\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_activate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_i::ccm_activate\n"));
+ }
+
+ void
+ Sender_exec_i::ciao_postactivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_i::ciao_postactivate\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_passivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_i::ccm_passivate\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_remove ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_i::ccm_remove\n"));
+ }
+
+
+ SenderHome_exec_i::SenderHome_exec_i ()
+ {
+ }
+
+ SenderHome_exec_i::~SenderHome_exec_i ()
+ {
+ }
+
+ SenderSwap_exec_i::SenderSwap_exec_i ()
+ : count_ (0)
+ {
+ }
+
+ SenderSwap_exec_i::~SenderSwap_exec_i ()
+ {
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ SenderSwap_exec_i::incarnate ()
+ {
+ ExecFactory first_exec_creator = 0;
+ ExecFactory second_exec_creator = 0;
+ ACE_DLL first_dll, second_dll;
+
+ if (first_dll.open (first_exe_dll_name,
+ ACE_DEFAULT_SHLIB_MODE, 0) != 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Could not open the DLL %s\n", first_exe_dll_name));
+ return 0;
+ }
+
+ if (second_dll.open (second_exe_dll_name,
+ ACE_DEFAULT_SHLIB_MODE, 0) != 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Could not open the DLL %s\n",
+ second_exe_dll_name));
+ return 0;
+ }
+
+ if (first_exe_entrypt == 0 || second_exe_entrypt == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "NIL entry points\n"));
+ return 0;
+ }
+
+ void *void_ptr = 0;
+ ptrdiff_t tmp = 0;
+
+ if (0 == this->count_)
+ {
+ // Cast the void* to non-pointer type first - it's not legal to
+ // cast a pointer-to-object directly to a pointer-to-function.
+ void_ptr = first_dll.symbol (first_exe_entrypt);
+ tmp = reinterpret_cast<ptrdiff_t> (void_ptr);
+ first_exec_creator = reinterpret_cast<ExecFactory> (tmp);
+
+ Components::EnterpriseComponent_var first_executor =
+ first_exec_creator (this);
+ count_++;
+ return first_executor._retn ();
+ }
+ else if (-1 == count_)
+ {
+ // Cast the void* to non-pointer type first - it's not legal to
+ // cast a pointer-to-object directly to a pointer-to-function.
+ void_ptr = second_dll.symbol (second_exe_entrypt);
+ tmp = reinterpret_cast<ptrdiff_t> (void_ptr);
+ second_exec_creator = reinterpret_cast<ExecFactory> (tmp);
+
+ Components::EnterpriseComponent_var second_executor =
+ second_exec_creator (this);
+ --count_;
+ return second_executor._retn ();
+ }
+
+ return 0;
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ SenderSwap_exec_i::etherealize ()
+ {
+ return 0;
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ SenderHome_exec_i::create ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "%P|%t) creating SenderHome \n"));
+ return new SenderSwap_exec_i;
+ }
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createSenderHome_Impl (void)
+ {
+ return new SenderHome_exec_i ();
+ }
+}
+
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec.h b/CIAO/examples/Swapping/Sender/Sender_exec.h
new file mode 100644
index 00000000000..734991a1311
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec.h
@@ -0,0 +1,172 @@
+//$Id$
+//============================================================
+/**
+ * @file Sender_exec.h
+ *
+ * Header file for the Executor implementation.
+ */
+//============================================================
+
+#ifndef SENDER_EXEC_H
+#define SENDER_EXEC_H
+
+#include "ciao/CIAO_SwapExecC.h"
+#include "SenderEC.h"
+#include "Sender_exec_export.h"
+#include "tao/LocalObject.h"
+#include "ace/DLL.h"
+#include "ciao/CCM_EventsC.h"
+
+namespace CIDL_Sender_Impl
+{
+ class SENDER_EXEC_Export Sender_exec_i :
+ public virtual Sender_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+
+ public:
+ /// Default constructor.
+ Sender_exec_i ()
+ : message_(CORBA::string_dup ("Default Message"))
+ {
+ }
+
+ /// Secondary construction.
+ Sender_exec_i (const char* local_message)
+ : message_ (CORBA::string_dup (local_message))
+ {
+ }
+
+ /// Default destructor.
+ virtual ~Sender_exec_i ();
+
+ /// Operation to set the value of the attribute
+ virtual void local_message (const char * local_message);
+
+ /// Operation to get the value of the attribute
+ virtual char * local_message ();
+
+ /* Operations for obtaining the interface reference. */
+ /* This method will be used in the assembly face so the
+ * ObjRef of this read_message facet will be sent to the
+ * client side(receptacle).
+ */
+ // Note: You can specify the return type as ::Hello::CCM_message *
+ virtual Hello::CCM_ReadMessage_ptr
+ get_push_message ();
+
+
+ // Operation inside of the trigger interface.
+ virtual void start ();
+
+ // Operations from Components::SessionComponent
+ virtual void set_session_context (Components::SessionContext_ptr ctx);
+
+ virtual void ciao_preactivate ();
+
+ virtual void ccm_activate ();
+
+ virtual void ciao_postactivate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ protected:
+ /// Copmponent specific context
+ Sender_Exec_Context_var context_;
+
+ private:
+ CORBA::String_var message_;
+
+ friend class Message_Impl;
+ };
+
+
+ //
+ //
+ //
+ class Message_Impl : public virtual Hello::CCM_ReadMessage,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ Message_Impl (Sender_exec_i& component)
+ : component_ (component)
+ {
+ }
+
+ virtual char *
+ get_message ();
+
+ private:
+ Sender_exec_i& component_;
+ };
+
+ class SenderSwap_exec_i;
+
+
+ typedef ::Components::EnterpriseComponent_ptr (*ExecFactory) (SenderSwap_exec_i *);
+
+ /**
+ * @class Sender_exec_i
+ *
+ * Sender executor implementation class.
+ */
+
+ class SENDER_EXEC_Export SenderSwap_exec_i :
+ public virtual CIAO::Swap_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ SenderSwap_exec_i ();
+
+ ~SenderSwap_exec_i ();
+
+ virtual ::Components::EnterpriseComponent_ptr
+ incarnate ();
+
+ virtual ::Components::EnterpriseComponent_ptr
+ etherealize ();
+
+ void consumers (::Components::ConsumerDescriptions *p)
+ {
+ this->consumers_ = p;
+ }
+
+ ::Components::ConsumerDescriptions *consumers (void)
+ {
+ return this->consumers_._retn ();
+ }
+
+ protected:
+ int count_;
+
+ ::Components::ConsumerDescriptions_var consumers_;
+ };
+
+ class SENDER_EXEC_Export SenderHome_exec_i :
+ public virtual SenderHome_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default ctor.
+ SenderHome_exec_i ();
+
+ /// Default dtor.
+ virtual ~SenderHome_exec_i ();
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+
+
+ };
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createSenderHome_Impl (void);
+}
+
+#endif /* SENDER_EXEC_H */
+
+
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec_1.cpp b/CIAO/examples/Swapping/Sender/Sender_exec_1.cpp
new file mode 100644
index 00000000000..c6534ba1125
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec_1.cpp
@@ -0,0 +1,140 @@
+//$Id$
+
+#include "Sender_exec_1.h"
+#include "Sender_exec.h"
+#include "ciao/Servant_Activator.h"
+
+namespace CIDL_Sender_Impl
+{
+ char*
+ Message_Impl_1::get_message ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender 1 sending out message. \n"));
+ return CORBA::string_dup (component_.message_.in ());
+ }
+
+ Sender_exec_1_i::~Sender_exec_1_i ()
+ {
+ }
+
+ void
+ Sender_exec_1_i::local_message (const char * local_message)
+ {
+ message_ = CORBA::string_dup (local_message);
+ }
+
+ char *
+ Sender_exec_1_i::local_message ()
+ {
+ return CORBA::string_dup(message_.in ());
+ }
+
+ Hello::CCM_ReadMessage_ptr
+ Sender_exec_1_i::get_push_message ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_1_i::get_push_message called\n"));
+ return ( new Message_Impl_1 (*this) );
+ }
+
+ void
+ Sender_exec_1_i::start ()
+ {
+ Hello::TimeOut_var event = new OBV_Hello::TimeOut;
+ ACE_DEBUG ((LM_DEBUG, "Sender 1 initiates the process.\n"));
+ this->context_->push_click_out (event);
+ }
+
+ void
+ Sender_exec_1_i::set_session_context (Components::SessionContext_ptr ctx)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_1_i::set_session_context\n"));
+
+ this->context_ =
+ Sender_Exec_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_1_i::ciao_preactivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_1_i::ciao_preactivate\n"));
+ }
+
+ void
+ Sender_exec_1_i::ccm_activate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_1_i::ccm_activate\n"));
+
+ CORBA::Object_var o =
+ this->context_->get_CCM_object ();
+ }
+
+ void
+ Sender_exec_1_i::ciao_postactivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_1_i::ciao_postactivate\n"));
+ }
+
+ void
+ Sender_exec_1_i::ccm_passivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_1_i::ccm_passivate\n"));
+
+ Components::ConsumerDescriptions_var retval =
+ this->context_->get_registered_consumers ("click_out");
+
+ this->base_exec_->consumers (retval._retn ());
+
+ CORBA::Object_var o =
+ this->context_->get_CCM_object ();
+
+ Hello::Sender_var sender =
+ Hello::Sender::_narrow (o.in ());
+
+ Components::FacetDescriptions_var facets =
+ sender->get_all_facets ();
+
+ const CORBA::ULong facet_len = facets->length ();
+ CORBA::ULong i = 0;
+
+ for (i = 0; i < facet_len; ++i)
+ {
+ this->context_->remove_facet (facets[i]->facet_ref ());
+ /*
+ this->context_->update_port_activator (oid);
+
+ this->context_->deactivate_facet (oid);
+ */
+ }
+
+ /*
+ this->context_->deactivate_facet ("Hello_Sender_push_message");
+ this->context_->update_port_activator ("Hello_Sender_push_message");
+ */
+ }
+
+ void
+ Sender_exec_1_i::ccm_remove ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_1_i::ccm_remove\n"));
+ }
+
+ extern "C" SENDER_EXEC_1_Export ::Components::EnterpriseComponent_ptr
+ createSenderExec_Impl (SenderSwap_exec_i *p)
+ {
+ Sender_exec_1_i *tmp = new Sender_exec_1_i ();
+
+ tmp->swap_exec (p);
+
+ return tmp;
+ }
+}
+
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec_1.h b/CIAO/examples/Swapping/Sender/Sender_exec_1.h
new file mode 100644
index 00000000000..a86088af781
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec_1.h
@@ -0,0 +1,113 @@
+//$Id$
+//============================================================
+/**
+ * @file Sender_exec_1.h
+ *
+ * Header file for the Executor implementation.
+ */
+//============================================================
+
+#ifndef SENDER_EXEC_1_H
+#define SENDER_EXEC_1_H
+
+#include "ciao/CIAO_SwapExecC.h"
+#include "SenderEC.h"
+#include "Sender_exec_1_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIDL_Sender_Impl
+{
+ class SenderSwap_exec_i;
+
+
+ class SENDER_EXEC_1_Export Sender_exec_1_i :
+ public virtual Sender_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+
+ public:
+ /// Default constructor.
+ Sender_exec_1_i () {};
+
+ /// Secondary construction.
+ Sender_exec_1_i (const char* local_message,
+ SenderSwap_exec_i *e)
+ : message_ (CORBA::string_dup (local_message))
+ , base_exec_ (e)
+ {
+ }
+
+ /// Default destructor.
+ virtual ~Sender_exec_1_i ();
+
+ /// Operation to set the value of the attribute
+ virtual void local_message (const char * local_message);
+
+ /// Operation to get the value of the attribute
+ virtual char * local_message ();
+
+ /* Operations for obtaining the interface reference. */
+ /* This method will be used in the assembly face so the
+ * ObjRef of this read_message facet will be sent to the
+ * client side(receptacle).
+ */
+ // Note: You can specify the return type as ::Hello::CCM_message *
+ virtual Hello::CCM_ReadMessage_ptr
+ get_push_message ();
+
+
+ // Operation inside of the trigger interface.
+ virtual void start ();
+
+ // Operations from Components::SessionComponent
+ virtual void set_session_context (Components::SessionContext_ptr ctx);
+
+ virtual void ciao_preactivate ();
+
+ virtual void ccm_activate ();
+
+ virtual void ciao_postactivate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ void swap_exec (SenderSwap_exec_i *p)
+ {
+ this->base_exec_ = p;
+ }
+
+ protected:
+ /// Copmponent specific context
+ Sender_Exec_Context_var context_;
+
+ private:
+ CORBA::String_var message_;
+
+ // my incarnator
+ SenderSwap_exec_i *base_exec_;
+
+ friend class Message_Impl_1;
+ };
+
+ class Message_Impl_1 : public virtual Hello::CCM_ReadMessage,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ Message_Impl_1 (Sender_exec_1_i& component)
+ : component_ (component)
+ {
+ }
+
+ virtual char *
+ get_message ();
+
+ private:
+ Sender_exec_1_i& component_;
+ };
+
+ extern "C" SENDER_EXEC_1_Export ::Components::EnterpriseComponent_ptr
+ createSenderExec_Impl (SenderSwap_exec_i *p);
+}
+
+#endif /* SENDER_EXEC_H */
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec_1_export.h b/CIAO/examples/Swapping/Sender/Sender_exec_1_export.h
new file mode 100644
index 00000000000..ed661c8ae77
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec_1_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SENDER_EXEC_1
+// ------------------------------
+#ifndef SENDER_EXEC_1_EXPORT_H
+#define SENDER_EXEC_1_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (SENDER_EXEC_1_HAS_DLL)
+# define SENDER_EXEC_1_HAS_DLL 1
+#endif /* ! SENDER_EXEC_1_HAS_DLL */
+
+#if defined (SENDER_EXEC_1_HAS_DLL) && (SENDER_EXEC_1_HAS_DLL == 1)
+# if defined (SENDER_EXEC_1_BUILD_DLL)
+# define SENDER_EXEC_1_Export ACE_Proper_Export_Flag
+# define SENDER_EXEC_1_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SENDER_EXEC_1_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SENDER_EXEC_1_BUILD_DLL */
+# define SENDER_EXEC_1_Export ACE_Proper_Import_Flag
+# define SENDER_EXEC_1_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SENDER_EXEC_1_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SENDER_EXEC_1_BUILD_DLL */
+#else /* SENDER_EXEC_1_HAS_DLL == 1 */
+# define SENDER_EXEC_1_Export
+# define SENDER_EXEC_1_SINGLETON_DECLARATION(T)
+# define SENDER_EXEC_1_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SENDER_EXEC_1_HAS_DLL == 1 */
+
+// Set SENDER_EXEC_1_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SENDER_EXEC_1_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SENDER_EXEC_1_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SENDER_EXEC_1_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SENDER_EXEC_1_NTRACE */
+
+#if (SENDER_EXEC_1_NTRACE == 1)
+# define SENDER_EXEC_1_TRACE(X)
+#else /* (SENDER_EXEC_1_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SENDER_EXEC_1_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SENDER_EXEC_1_NTRACE == 1) */
+
+#endif /* SENDER_EXEC_1_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec_2.cpp b/CIAO/examples/Swapping/Sender/Sender_exec_2.cpp
new file mode 100644
index 00000000000..7063a79eb4f
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec_2.cpp
@@ -0,0 +1,125 @@
+//$Id$
+
+#include "Sender_exec_2.h"
+#include "Sender_exec.h"
+
+namespace CIDL_Sender_Impl
+{
+ char*
+ Message_Impl_2::get_message ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender 2 sending out message. \n"));
+ return CORBA::string_dup (component_.message_.in ());
+ }
+
+ Sender_exec_2_i::~Sender_exec_2_i ()
+ {
+ }
+
+ void
+ Sender_exec_2_i::local_message (const char * local_message)
+ {
+ message_ = CORBA::string_dup (local_message);
+ }
+
+ char *
+ Sender_exec_2_i::local_message ()
+ {
+ return CORBA::string_dup(message_.in ());
+ }
+
+ Hello::CCM_ReadMessage_ptr
+ Sender_exec_2_i::get_push_message ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_2_i::get_push_message called\n"));
+ return ( new Message_Impl_2 (*this) );
+ }
+
+ void
+ Sender_exec_2_i::start ()
+ {
+ Hello::TimeOut_var event = new OBV_Hello::TimeOut;
+ ACE_DEBUG ((LM_DEBUG, "Sender 2 initiates the process.\n"));
+ this->context_->push_click_out (event);
+ }
+
+ void
+ Sender_exec_2_i::set_session_context (Components::SessionContext_ptr ctx)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_2_i::set_session_context\n"));
+
+ this->context_ =
+ Sender_Exec_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_2_i::ciao_preactivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_2_i::ciao_preactivate\n"));
+ }
+
+ void
+ Sender_exec_2_i::ccm_activate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_2_i::ccm_activate\n"));
+
+ ::Components::ConsumerDescriptions_var c =
+ this->base_exec_->consumers ();
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+
+ CORBA::Object_var o =
+ this->context_->get_CCM_object ();
+
+ Hello::Sender_var sender =
+ Hello::Sender::_narrow (o.in ());
+
+ for (CORBA::ULong cnt = 0; cnt != c->length (); ++cnt)
+ {
+ sender->subscribe ("click_out",
+ (*c)[cnt]->consumer ());
+ }
+ }
+
+ void
+ Sender_exec_2_i::ciao_postactivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_exec_2_i::ciao_postactivate\n"));
+ }
+
+ void
+ Sender_exec_2_i::ccm_passivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_2_i::ccm_passivate\n"));
+ }
+
+ void
+ Sender_exec_2_i::ccm_remove ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Sender_exec_2_i::ccm_remove\n"));
+ }
+
+ extern "C" SENDER_EXEC_2_Export ::Components::EnterpriseComponent_ptr
+ createSenderExec_Impl (SenderSwap_exec_i *p)
+ {
+ Sender_exec_2_i *tmp =
+ new Sender_exec_2_i ();
+
+ tmp->swap_exec (p);
+
+ return tmp;
+ }
+}
+
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec_2.h b/CIAO/examples/Swapping/Sender/Sender_exec_2.h
new file mode 100644
index 00000000000..a1184736587
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec_2.h
@@ -0,0 +1,114 @@
+//$Id$
+//============================================================
+/**
+ * @file Sender_exec_2.h
+ *
+ * Header file for the Executor implementation.
+ */
+//============================================================
+
+#ifndef SENDER_EXEC_2_H
+#define SENDER_EXEC_2_H
+
+#include "ciao/CIAO_SwapExecC.h"
+#include "SenderEC.h"
+#include "Sender_exec_2_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIDL_Sender_Impl
+{
+ class SenderSwap_exec_i;
+
+ class SENDER_EXEC_2_Export Sender_exec_2_i :
+ public virtual Sender_Exec,
+ public virtual TAO_Local_RefCounted_Object
+ {
+
+ public:
+ /// Default constructor.
+ Sender_exec_2_i ()
+ : message_(CORBA::string_dup ("Default Message"))
+ {
+ }
+
+ /// Secondary construction.
+ Sender_exec_2_i (const char* local_message,
+ SenderSwap_exec_i *e)
+ : message_ (CORBA::string_dup (local_message))
+ , base_exec_ (e)
+ {
+ }
+
+ /// Default destructor.
+ virtual ~Sender_exec_2_i ();
+
+ /// Operation to set the value of the attribute
+ virtual void local_message (const char * local_message);
+
+ /// Operation to get the value of the attribute
+ virtual char * local_message ();
+
+ /* Operations for obtaining the interface reference. */
+ /* This method will be used in the assembly face so the
+ * ObjRef of this read_message facet will be sent to the
+ * client side(receptacle).
+ */
+ // Note: You can specify the return type as ::Hello::CCM_message *
+ virtual Hello::CCM_ReadMessage_ptr
+ get_push_message ();
+
+
+ // Operation inside of the trigger interface.
+ virtual void start ();
+
+ // Operations from Components::SessionComponent
+ virtual void set_session_context (Components::SessionContext_ptr ctx);
+
+ virtual void ciao_preactivate ();
+
+ virtual void ccm_activate ();
+
+ virtual void ciao_postactivate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ void swap_exec (SenderSwap_exec_i *p)
+ {
+ this->base_exec_ = p;
+ }
+
+ protected:
+ /// Copmponent specific context
+ Sender_Exec_Context_var context_;
+
+ private:
+ CORBA::String_var message_;
+
+ SenderSwap_exec_i *base_exec_;
+
+ friend class Message_Impl_2;
+ };
+
+ class Message_Impl_2 : public virtual Hello::CCM_ReadMessage,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ Message_Impl_2 (Sender_exec_2_i& component)
+ : component_ (component)
+ {
+ }
+
+ virtual char *
+ get_message ();
+
+ private:
+ Sender_exec_2_i& component_;
+ };
+
+ extern "C" SENDER_EXEC_2_Export ::Components::EnterpriseComponent_ptr
+ createSenderExec_Impl (SenderSwap_exec_i *p);
+}
+
+#endif /* SENDER_EXEC_H */
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec_2_export.h b/CIAO/examples/Swapping/Sender/Sender_exec_2_export.h
new file mode 100644
index 00000000000..c03b5754ca7
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec_2_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SENDER_EXEC_2
+// ------------------------------
+#ifndef SENDER_EXEC_2_EXPORT_H
+#define SENDER_EXEC_2_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (SENDER_EXEC_2_HAS_DLL)
+# define SENDER_EXEC_2_HAS_DLL 1
+#endif /* ! SENDER_EXEC_2_HAS_DLL */
+
+#if defined (SENDER_EXEC_2_HAS_DLL) && (SENDER_EXEC_2_HAS_DLL == 1)
+# if defined (SENDER_EXEC_2_BUILD_DLL)
+# define SENDER_EXEC_2_Export ACE_Proper_Export_Flag
+# define SENDER_EXEC_2_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SENDER_EXEC_2_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SENDER_EXEC_2_BUILD_DLL */
+# define SENDER_EXEC_2_Export ACE_Proper_Import_Flag
+# define SENDER_EXEC_2_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SENDER_EXEC_2_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SENDER_EXEC_2_BUILD_DLL */
+#else /* SENDER_EXEC_2_HAS_DLL == 1 */
+# define SENDER_EXEC_2_Export
+# define SENDER_EXEC_2_SINGLETON_DECLARATION(T)
+# define SENDER_EXEC_2_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SENDER_EXEC_2_HAS_DLL == 1 */
+
+// Set SENDER_EXEC_2_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SENDER_EXEC_2_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SENDER_EXEC_2_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SENDER_EXEC_2_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SENDER_EXEC_2_NTRACE */
+
+#if (SENDER_EXEC_2_NTRACE == 1)
+# define SENDER_EXEC_2_TRACE(X)
+#else /* (SENDER_EXEC_2_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SENDER_EXEC_2_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SENDER_EXEC_2_NTRACE == 1) */
+
+#endif /* SENDER_EXEC_2_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Sender/Sender_exec_export.h b/CIAO/examples/Swapping/Sender/Sender_exec_export.h
new file mode 100644
index 00000000000..dbaa7ea15bc
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_exec_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SENDER_EXEC
+// ------------------------------
+#ifndef SENDER_EXEC_EXPORT_H
+#define SENDER_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (SENDER_EXEC_HAS_DLL)
+# define SENDER_EXEC_HAS_DLL 1
+#endif /* ! SENDER_EXEC_HAS_DLL */
+
+#if defined (SENDER_EXEC_HAS_DLL) && (SENDER_EXEC_HAS_DLL == 1)
+# if defined (SENDER_EXEC_BUILD_DLL)
+# define SENDER_EXEC_Export ACE_Proper_Export_Flag
+# define SENDER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SENDER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SENDER_EXEC_BUILD_DLL */
+# define SENDER_EXEC_Export ACE_Proper_Import_Flag
+# define SENDER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SENDER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SENDER_EXEC_BUILD_DLL */
+#else /* SENDER_EXEC_HAS_DLL == 1 */
+# define SENDER_EXEC_Export
+# define SENDER_EXEC_SINGLETON_DECLARATION(T)
+# define SENDER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SENDER_EXEC_HAS_DLL == 1 */
+
+// Set SENDER_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SENDER_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SENDER_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SENDER_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SENDER_EXEC_NTRACE */
+
+#if (SENDER_EXEC_NTRACE == 1)
+# define SENDER_EXEC_TRACE(X)
+#else /* (SENDER_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SENDER_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SENDER_EXEC_NTRACE == 1) */
+
+#endif /* SENDER_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Sender/Sender_stub_export.h b/CIAO/examples/Swapping/Sender/Sender_stub_export.h
new file mode 100644
index 00000000000..28c5d3131d0
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SENDER_STUB
+// ------------------------------
+#ifndef SENDER_STUB_EXPORT_H
+#define SENDER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (SENDER_STUB_HAS_DLL)
+# define SENDER_STUB_HAS_DLL 1
+#endif /* ! SENDER_STUB_HAS_DLL */
+
+#if defined (SENDER_STUB_HAS_DLL) && (SENDER_STUB_HAS_DLL == 1)
+# if defined (SENDER_STUB_BUILD_DLL)
+# define SENDER_STUB_Export ACE_Proper_Export_Flag
+# define SENDER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SENDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SENDER_STUB_BUILD_DLL */
+# define SENDER_STUB_Export ACE_Proper_Import_Flag
+# define SENDER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SENDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SENDER_STUB_BUILD_DLL */
+#else /* SENDER_STUB_HAS_DLL == 1 */
+# define SENDER_STUB_Export
+# define SENDER_STUB_SINGLETON_DECLARATION(T)
+# define SENDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SENDER_STUB_HAS_DLL == 1 */
+
+// Set SENDER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SENDER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SENDER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SENDER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SENDER_STUB_NTRACE */
+
+#if (SENDER_STUB_NTRACE == 1)
+# define SENDER_STUB_TRACE(X)
+#else /* (SENDER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SENDER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SENDER_STUB_NTRACE == 1) */
+
+#endif /* SENDER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Sender/Sender_svnt_export.h b/CIAO/examples/Swapping/Sender/Sender_svnt_export.h
new file mode 100644
index 00000000000..53236a883f2
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/Sender_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SENDER_SVNT
+// ------------------------------
+#ifndef SENDER_SVNT_EXPORT_H
+#define SENDER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (SENDER_SVNT_HAS_DLL)
+# define SENDER_SVNT_HAS_DLL 1
+#endif /* ! SENDER_SVNT_HAS_DLL */
+
+#if defined (SENDER_SVNT_HAS_DLL) && (SENDER_SVNT_HAS_DLL == 1)
+# if defined (SENDER_SVNT_BUILD_DLL)
+# define SENDER_SVNT_Export ACE_Proper_Export_Flag
+# define SENDER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SENDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SENDER_SVNT_BUILD_DLL */
+# define SENDER_SVNT_Export ACE_Proper_Import_Flag
+# define SENDER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SENDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SENDER_SVNT_BUILD_DLL */
+#else /* SENDER_SVNT_HAS_DLL == 1 */
+# define SENDER_SVNT_Export
+# define SENDER_SVNT_SINGLETON_DECLARATION(T)
+# define SENDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SENDER_SVNT_HAS_DLL == 1 */
+
+// Set SENDER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SENDER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SENDER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SENDER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SENDER_SVNT_NTRACE */
+
+#if (SENDER_SVNT_NTRACE == 1)
+# define SENDER_SVNT_TRACE(X)
+#else /* (SENDER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SENDER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SENDER_SVNT_NTRACE == 1) */
+
+#endif /* SENDER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/CIAO/examples/Swapping/Sender/starter.cpp b/CIAO/examples/Swapping/Sender/starter.cpp
new file mode 100644
index 00000000000..92718744cd5
--- /dev/null
+++ b/CIAO/examples/Swapping/Sender/starter.cpp
@@ -0,0 +1,97 @@
+//$Id$:
+
+#include "SenderC.h"
+#include "ace/Get_Opt.h"
+
+//IOR file of the Sender
+const char * ior = 0;
+const char * message = "starters message";
+
+
+int
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "k:m");
+ int c = 0;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 'm':
+ message = get_opts.opt_arg ();
+ break;
+
+ case '?': // display help for use of the server.
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "-k <Sender IOR> (default is file://sender.ior)\n",
+ "-m <Message> (default is starters message)\n"
+ "\n",
+ argv [0]),
+ -1);
+ break;
+ }
+ }
+
+ if (ior == 0)
+ {
+ ior = "file://sender.ior";
+ }
+
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv,
+ "");
+
+ if (parse_args (argc, argv) != 0)
+ {
+ return -1;
+ }
+
+ CORBA::Object_var obj =
+ orb->string_to_object (ior);
+
+ Hello::Sender_var sender = Hello::Sender::_narrow (obj.in ());
+
+ if (CORBA::is_nil (sender.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire Sender's objref\n"),
+ -1);
+ }
+
+ char *return_message;
+ sender->local_message (message);
+ return_message = sender->local_message ();
+ ACE_DEBUG ((LM_DEBUG, "the message is %s\n", return_message));
+
+ sender->start ();
+ sender->remove ();
+
+ ACE_DEBUG ((LM_DEBUG, "creating one more servant here\n"));
+ sender->start ();
+ //sender->remove ();
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Unknown exception \n");
+ return -1;
+ }
+
+ return 0;
+}