From 3ad44829241e23dc04c4fe7d5424b772de6ff83c Mon Sep 17 00:00:00 2001 From: bala Date: Thu, 25 Nov 2004 23:14:47 +0000 Subject: *** empty log message *** --- .../DAnCE/examples/Hello/Sender/Sender_exec.cpp | 16 +++++----- .../DAnCE/examples/Hello/Sender/Sender_exec_1.cpp | 9 ++++-- .../DAnCE/examples/Hello/Sender/Sender_exec_1.h | 13 ++++---- .../DAnCE/examples/Hello/Sender/Sender_exec_2.cpp | 35 ++++++++++++++++++---- .../DAnCE/examples/Hello/Sender/Sender_exec_2.h | 13 ++++++-- 5 files changed, 65 insertions(+), 21 deletions(-) diff --git a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp index c2d394cfede..8ea89c5ed0b 100644 --- a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp +++ b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec.cpp @@ -44,7 +44,7 @@ Sender_Impl::SenderSwap_exec_i::incarnate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) 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", + ACE_DEBUG ((LM_DEBUG, "Could not open the DLL %s\n", second_exe_dll_name)); return 0; } @@ -58,17 +58,19 @@ Sender_Impl::SenderSwap_exec_i::incarnate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) if (this->count_ == 0) { first_exec_creator = (ExecFactory) first_dll.symbol (first_exe_entrypt); - Components::EnterpriseComponent_var first_executor = - first_exec_creator (); + Components::EnterpriseComponent_var first_executor = + first_exec_creator (this); count_++; return first_executor._retn (); } else if (count_ == 1) { - second_exec_creator = (ExecFactory) + second_exec_creator = (ExecFactory) second_dll.symbol (second_exe_entrypt); - Components::EnterpriseComponent_var second_executor = - second_exec_creator (); + Components::EnterpriseComponent_var second_executor = + second_exec_creator (this); + + --count; return second_executor._retn (); } } @@ -85,7 +87,7 @@ 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")); + ACE_DEBUG ((LM_DEBUG, "%P|%t) creating SenderHome \n")); return new Sender_Impl::SenderSwap_exec_i; // return new Sender_Impl::Sender_exec_i; } diff --git a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_1.cpp b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_1.cpp index c82cafdf8fb..1d171364681 100644 --- a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_1.cpp +++ b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_1.cpp @@ -133,7 +133,12 @@ Sender_Impl::Sender_exec_1_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) } extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr -createSenderExec_Impl (void) +createSenderExec_Impl (SenderSwap_exec_i *p) { - return new Sender_Impl::Sender_exec_1_i (); + Sender_exec_1_i *tmp = + new Sender_Impl::Sender_exec_1_i (); + + tmp->swap_exec (p); + + return tmp; } diff --git a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_1.h b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_1.h index d5cfd66613d..3f5e776ff4e 100644 --- a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_1.h +++ b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_1.h @@ -23,7 +23,8 @@ namespace Sender_Impl { public: - + /// Default constructor. + Sender_exec_1_i () {}; /// Secondary construction. Sender_exec_1_i (const char* local_message @@ -86,6 +87,11 @@ namespace Sender_Impl ACE_THROW_SPEC ((CORBA::SystemException, Components::CCMException)); + void swap_exec (SenderSwap_exec_i *p) + { + this->base_exec_ = p; + } + protected: /// Copmponent specific context Sender_Exec_Context_var context_; @@ -96,9 +102,6 @@ namespace Sender_Impl // my incarnator SenderSwap_exec_i *base_exec_; - /// Default constructor. - Sender_exec_1_i () {}; - friend class Message_Impl_1; }; @@ -122,6 +125,6 @@ namespace Sender_Impl } extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr -createSenderExec_Impl (void); +createSenderExec_Impl (SenderSwap_exec_i *p); #endif /* SENDER_EXEC_H */ diff --git a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_2.cpp b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_2.cpp index aaef4026d68..e8a6d547201 100644 --- a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_2.cpp +++ b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_2.cpp @@ -33,7 +33,7 @@ Hello::CCM_ReadMessage_ptr Sender_Impl::Sender_exec_2_i::get_push_message (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException)) { - ACE_DEBUG ((LM_DEBUG, + ACE_DEBUG ((LM_DEBUG, "Sender_Impl::Sender_exec.i::get_push_message called\n ")); return ( new Message_Impl_2 (*this) ); } @@ -48,7 +48,7 @@ Sender_Impl::Sender_exec_2_i::start (ACE_ENV_SINGLE_ARG_DECL) } void -Sender_Impl::Sender_exec_2_i::set_session_context +Sender_Impl::Sender_exec_2_i::set_session_context (Components::SessionContext_ptr ctx ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, @@ -75,12 +75,32 @@ Sender_Impl::Sender_exec_2_i::ciao_preactivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED } void -Sender_Impl::Sender_exec_2_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) +Sender_Impl::Sender_exec_2_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, Components::CCMException)) { ACE_DEBUG ((LM_DEBUG, "Sender_Impl::Sender_exec_2_i::ccm_activate\n")); + + ::Components::ConsumerDescriptions_var c = + this->base_exec_->consumers (); + + CORBA::Object_var o = + this->context_->get_CCM_object (); + + Hello::Sender_var sender = + Hello::Sender::_narrow (comp_object.in () + ACE_ENV_ARG_PARAMETER); + + for (CORBA::ULong cnt = 0; + cnt != c->length (); + ++cnt) + { + sender->connect_consumer (c[cnt]->name (), + c[cnt] + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } } void @@ -110,7 +130,12 @@ Sender_Impl::Sender_exec_2_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) } extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr -createSenderExec_Impl (void) +createSenderExec_Impl (SenderSwap_exec_i *p) { - return new Sender_Impl::Sender_exec_2_i (); + Sender_exec_2_i *tmp = + new Sender_Impl::Sender_exec_1_i (); + + tmp->swap_exec (p); + + return tmp; } diff --git a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_2.h b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_2.h index f0eed902f72..352cabc6efd 100644 --- a/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_2.h +++ b/TAO/CIAO/DAnCE/examples/Hello/Sender/Sender_exec_2.h @@ -30,8 +30,10 @@ namespace Sender_Impl } /// Secondary construction. - Sender_exec_2_i (const char* local_message) + Sender_exec_2_i (const char* local_message + SenderSwap_exec_i *e) : message_ (CORBA::string_dup (local_message)) + , base_exec_ (e) { } @@ -88,6 +90,11 @@ namespace Sender_Impl ACE_THROW_SPEC ((CORBA::SystemException, Components::CCMException)); + void swap_exec (SenderSwap_exec_i *p) + { + this->base_exec_ = p; + } + protected: /// Copmponent specific context Sender_Exec_Context_var context_; @@ -95,6 +102,8 @@ namespace Sender_Impl private: CORBA::String_var message_; + SenderSwap_exec_i *base_exec_; + friend class Message_Impl_2; }; @@ -118,6 +127,6 @@ namespace Sender_Impl } extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr -createSenderExec_Impl (void); +createSenderExec_Impl (SenderSwap_exec_i *p); #endif /* SENDER_EXEC_H */ -- cgit v1.2.1