summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp')
-rw-r--r--TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp207
1 files changed, 207 insertions, 0 deletions
diff --git a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp
new file mode 100644
index 00000000000..1acce82d312
--- /dev/null
+++ b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp
@@ -0,0 +1,207 @@
+//$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";
+
+char*
+Sender_Impl::Message_Impl::get_message (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ACE_DEBUG ((LM_DEBUG, "Sender sending out message. \n"));
+ return CORBA::string_dup (component_.message_.in ());
+}
+
+Sender_Impl::Sender_exec_i::~Sender_exec_i ()
+{
+}
+
+void
+Sender_Impl::Sender_exec_i::local_message (const char * local_message
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ message_ = CORBA::string_dup (local_message);
+}
+
+char *
+Sender_Impl::Sender_exec_i::local_message (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return CORBA::string_dup(message_);
+}
+
+Hello::CCM_ReadMessage_ptr
+Sender_Impl::Sender_exec_i::get_push_message
+(ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_Impl::Sender_exec.i::get_push_message called\n "));
+ return ( new Message_Impl (*this) );
+}
+
+void
+Sender_Impl::Sender_exec_i::start (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ Hello::TimeOut_var event = new OBV_Hello::TimeOut;
+ ACE_DEBUG ((LM_DEBUG, "Sender initiates the process.\n"));
+ this->context_->push_click_out (event ACE_ENV_ARG_PARAMETER);
+}
+
+void
+Sender_Impl::Sender_exec_i::set_session_context
+ (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ ACE_DEBUG ((LM_DEBUG, "Sender_Impl::Sender_exec_i::set_session_context\n"));
+
+ this->context_ =
+ Sender_Impl::Sender_Exec_Context::_narrow (ctx
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (this->context_.in ()))
+ ACE_THROW (CORBA::INTERNAL ());
+}
+
+void
+Sender_Impl::Sender_exec_i::ciao_preactivate
+(ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_Impl::Sender_exec_i::ciao_preactivate\n"));
+}
+
+void
+Sender_Impl::Sender_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_Impl::Sender_exec_i::ccm_activate\n"));
+}
+
+void
+Sender_Impl::Sender_exec_i::ciao_postactivate
+(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "Sender_Impl::Sender_exec_i::ciao_postactivate\n"));
+}
+
+void
+Sender_Impl::Sender_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ ACE_DEBUG ((LM_DEBUG, "Sender_Impl::Sender_exec_i::ccm_passivate\n"));
+}
+
+void
+Sender_Impl::Sender_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ ACE_DEBUG ((LM_DEBUG, "Sender_Impl::Sender_exec_i::ccm_remove\n"));
+}
+
+
+Sender_Impl::SenderHome_exec_i::SenderHome_exec_i ()
+{
+}
+
+Sender_Impl::SenderHome_exec_i::~SenderHome_exec_i ()
+{
+}
+
+Sender_Impl::SenderSwap_exec_i::SenderSwap_exec_i ()
+ : count_ (0)
+{
+}
+
+Sender_Impl::SenderSwap_exec_i::~SenderSwap_exec_i ()
+{
+}
+
+::Components::EnterpriseComponent_ptr
+Sender_Impl::SenderSwap_exec_i::incarnate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // return new Sender_Impl::Sender_exec_i;
+
+ 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;
+ }
+
+ if (this->count_ == 0)
+ {
+ first_exec_creator = (ExecFactory) first_dll.symbol (first_exe_entrypt);
+ Components::EnterpriseComponent_var first_executor =
+ first_exec_creator (this);
+ count_++;
+ return first_executor._retn ();
+ }
+ else if (count_ == 1)
+ {
+ second_exec_creator = (ExecFactory)
+ second_dll.symbol (second_exe_entrypt);
+ Components::EnterpriseComponent_var second_executor =
+ second_exec_creator (this);
+ --count_;
+ return second_executor._retn ();
+ }
+}
+
+::Components::EnterpriseComponent_ptr
+Sender_Impl::SenderSwap_exec_i::etherealize (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // return new Sender_Impl::Sender_exec_i;
+}
+
+::Components::EnterpriseComponent_ptr
+Sender_Impl::SenderHome_exec_i::create (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ ACE_DEBUG ((LM_DEBUG, "%P|%t) creating SenderHome \n"));
+ return new Sender_Impl::SenderSwap_exec_i;
+ //return new Sender_Impl::Sender_exec_i;
+}
+
+extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createSenderHome_Impl (void)
+{
+ return new Sender_Impl::SenderHome_exec_i ();
+}