From 5b164a28d5e7ae175ae80c843fd144d99abf3eb0 Mon Sep 17 00:00:00 2001 From: msmit Date: Wed, 19 Aug 2009 09:05:39 +0000 Subject: Wed Aug 19 09:07:17 UTC 2009 Marcel Smit * tests/AMI_CCM/AMI/AMI_exec.h: * tests/AMI_CCM/AMI/AMI_exec.cpp: * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp: * tests/AMI_CCM/Sender/Hello_Sender_exec.h: * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp: The Sender component is now able to pass a string through the AMI component to the Receiver component. --- modules/CIAO/ChangeLog | 10 ++++++ modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.cpp | 18 +++++++--- modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.h | 4 ++- .../tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp | 12 +++---- .../tests/AMI_CCM/Sender/Hello_Sender_exec.cpp | 38 +++++++++++++++++++++- .../CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.h | 17 ++++++++++ 6 files changed, 86 insertions(+), 13 deletions(-) diff --git a/modules/CIAO/ChangeLog b/modules/CIAO/ChangeLog index ff5d966334c..3097bbaf477 100644 --- a/modules/CIAO/ChangeLog +++ b/modules/CIAO/ChangeLog @@ -1,3 +1,13 @@ +Wed Aug 19 09:07:17 UTC 2009 Marcel Smit + + * tests/AMI_CCM/AMI/AMI_exec.h: + * tests/AMI_CCM/AMI/AMI_exec.cpp: + * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp: + * tests/AMI_CCM/Sender/Hello_Sender_exec.h: + * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp: + The Sender component is now able to pass a string through the + AMI component to the Receiver component. + Wed Aug 19 07:58:49 UTC 2009 Marcel Smit * tests/AMI_CCM/AMI: diff --git a/modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.cpp b/modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.cpp index 525c9449ce1..5ba60bcd804 100644 --- a/modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.cpp +++ b/modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.cpp @@ -37,8 +37,10 @@ namespace CIAO_Hello_AMI_AMI_Impl // Facet Executor Implementation Class: AMI_ami_foo_exec_i //============================================================ - AMI_ami_foo_exec_i::AMI_ami_foo_exec_i (void) + AMI_ami_foo_exec_i::AMI_ami_foo_exec_i (::CCM_AMI::AMI_foo_ptr foo_receiver) : + foo_receiver_ (::CCM_AMI::AMI_foo::_duplicate (foo_receiver)) { + } AMI_ami_foo_exec_i::~AMI_ami_foo_exec_i (void) @@ -49,10 +51,14 @@ namespace CIAO_Hello_AMI_AMI_Impl void AMI_ami_foo_exec_i::sendc_asynch_foo ( - const char * /* in_str */, + const char * in_str, ::CCM_AMI::AMI_foo_callback_ptr /* foo_callback */) { - /* Your code here. */ + printf ("\n\n\n\n\nAMI: Received string <%s>!!!!\n", in_str); + printf ("AMI: Try to pass it on to the Receiver component\n"); + char* out_str; + CORBA::Long result; + result = foo_receiver_->asynch_foo (CORBA::string_dup (in_str), out_str); } //============================================================ @@ -76,8 +82,10 @@ namespace CIAO_Hello_AMI_AMI_Impl ::CCM_AMI::CCM_AMI_ami_foo_ptr AMI_exec_i::get_perform_asynch_foo (void) { - /* Your code here. */ - return ::CCM_AMI::CCM_AMI_ami_foo::_nil (); + ::CCM_AMI::AMI_foo_var receiver_foo = + this->context_->get_connection_receiver_foo (); + + return new AMI_ami_foo_exec_i (receiver_foo); } // Operations from Components::SessionComponent. diff --git a/modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.h b/modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.h index f287fc1cbe9..683e56fe7a4 100644 --- a/modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.h +++ b/modules/CIAO/tests/AMI_CCM/AMI/AMI_exec.h @@ -48,7 +48,7 @@ namespace CIAO_Hello_AMI_AMI_Impl public virtual ::CORBA::LocalObject { public: - AMI_ami_foo_exec_i (void); + AMI_ami_foo_exec_i (::CCM_AMI::AMI_foo_ptr foo_receiver); virtual ~AMI_ami_foo_exec_i (void); // Operations and attributes from ::CCM_AMI::AMI_ami_foo @@ -60,6 +60,8 @@ namespace CIAO_Hello_AMI_AMI_Impl sendc_asynch_foo ( const char * in_str, ::CCM_AMI::AMI_foo_callback_ptr foo_callback); + private: + ::CCM_AMI::AMI_foo_var foo_receiver_; }; class AMI_exec_i diff --git a/modules/CIAO/tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp b/modules/CIAO/tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp index d91a0856c05..48aa91839a3 100644 --- a/modules/CIAO/tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp +++ b/modules/CIAO/tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp @@ -49,11 +49,12 @@ namespace CIAO_Hello_AMI_Receiver_Impl ::CORBA::Long AMI_foo_exec_i::asynch_foo ( - const char * /* in_str */, - ::CORBA::String_out /* answer */) + const char * in_str, + ::CORBA::String_out answer) { - /* Your code here. */ - return 0; + printf ("\n\n\n\n\nReceived string <%s>!!!!\n", in_str); + answer = CORBA::string_dup ("This is my answer : Bla\n"); + return 15; } //============================================================ @@ -77,8 +78,7 @@ namespace CIAO_Hello_AMI_Receiver_Impl ::CCM_AMI::CCM_AMI_foo_ptr Receiver_exec_i::get_do_asynch_foo (void) { - /* Your code here. */ - return ::CCM_AMI::CCM_AMI_foo::_nil (); + return new AMI_foo_exec_i (); } // Operations from Components::SessionComponent. diff --git a/modules/CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.cpp b/modules/CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.cpp index 9d3aa3c5cbe..9aa6eba64ca 100644 --- a/modules/CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.cpp +++ b/modules/CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.cpp @@ -33,6 +33,35 @@ namespace CIAO_Hello_AMI_Sender_Impl { +pulse_generator::pulse_generator (::CCM_AMI::AMI_ami_foo_ptr foo_ami) + : foo_ami_ (::CCM_AMI::AMI_ami_foo::_duplicate (foo_ami)) +{ + printf ("pulse_generator::pulse_generator\n"); +} + +pulse_generator::~pulse_generator () +{ +} + +int pulse_generator::svc () +{ + printf ("pulse_generator::svc"); + ACE_OS::sleep (10); + for (int i = 0; i < 5; ++i) + { + if (CORBA::is_nil (foo_ami_)) + printf ("foo_receiver is NIL !!!\n"); + else + { + foo_ami_->sendc_asynch_foo ("@#$%~!@$&%$^&*#$%@!# Do something funny %^*&%^$%^#%#@!$%", + 0); + printf ("asynch_foo called\n"); + } + ACE_OS::sleep (2); + } + return 0; +} + //============================================================ // Facet Executor Implementation Class: AMI_foo_callback_exec_i //============================================================ @@ -111,7 +140,14 @@ namespace CIAO_Hello_AMI_Sender_Impl void Sender_exec_i::ccm_activate (void) { - /* Your code here. */ + printf ("\n\nCCM active\n"); + ::CCM_AMI::AMI_ami_foo_var foo = + this->context_->get_connection_run_asynch_foo (); + + this->pulser_= new pulse_generator (foo); + + this->pulser_->activate (THR_NEW_LWP | THR_JOINABLE, + 1); } void diff --git a/modules/CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.h b/modules/CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.h index e03bedb565d..7686f737e9e 100644 --- a/modules/CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.h +++ b/modules/CIAO/tests/AMI_CCM/Sender/Hello_Sender_exec.h @@ -45,6 +45,22 @@ namespace CIAO_Hello_AMI_Sender_Impl { + class pulse_generator : public virtual ACE_Task_Base + { + public: + pulse_generator (::CCM_AMI::AMI_ami_foo_ptr foo_ami); + + ~pulse_generator (); + + virtual int svc (void); + + private: + /// Maintains a handle that actually process the event + ::CCM_AMI::AMI_ami_foo_var foo_ami_; + + }; + + class AMI_foo_callback_exec_i : public virtual ::CCM_AMI::CCM_AMI_foo_callback, public virtual ::CORBA::LocalObject @@ -102,6 +118,7 @@ namespace CIAO_Hello_AMI_Sender_Impl private: ::Hello_AMI::CCM_Sender_Context_var context_; + pulse_generator* pulser_; }; extern "C" HELLO_SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr -- cgit v1.2.1