diff options
author | mhengstmengel <mhengstmengel@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-12-06 12:16:43 +0000 |
---|---|---|
committer | mhengstmengel <mhengstmengel@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-12-06 12:16:43 +0000 |
commit | b0ca06406af4d1bd77969ee590ed210d718f0ea3 (patch) | |
tree | 6fdad36a1acf91b26fedd1b8108a708b5e1f5553 | |
parent | e5794cc95295908a5dff4dc325c938999fb447d4 (diff) | |
download | ATCD-b0ca06406af4d1bd77969ee590ed210d718f0ea3.tar.gz |
Mon Dec 6 12:15:12 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
* connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.cpp:
* connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.h:
* connectors/ami4ccm/tests/GetComp/descriptors/run_test.pl:
* connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
* connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
* connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
* connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
Resolve some memory leaks, reported by valgrind built.
8 files changed, 105 insertions, 43 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index 1b64a331304..d11b6e3cc21 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,3 +1,14 @@ +Mon Dec 6 12:15:12 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl> + + * connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.cpp: + * connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.h: + * connectors/ami4ccm/tests/GetComp/descriptors/run_test.pl: + * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp: + * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h: + * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h: + * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp: + Resolve some memory leaks, reported by valgrind built. + Mon Dec 6 11:24:12 UTC 2010 Marcel Smit <msmit@remedy.nl> * connectors/dds4ccm/tests/OneFile/Single/OneFile_Connector.mpc: diff --git a/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp b/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp index 96f37121ebe..64ee846368d 100644 --- a/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp +++ b/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp @@ -6,7 +6,10 @@ namespace CIAO_Hello_Receiver_Impl { - MyFoo_exec_i::MyFoo_exec_i (void) : get_rw_ (false), get_ro_ (false) + MyFoo_exec_i::MyFoo_exec_i ( + ::Hello::CCM_Receiver_Context_ptr ctx) + : ciao_context_ ( + ::Hello::CCM_Receiver_Context::_duplicate (ctx)) { } @@ -96,7 +99,21 @@ namespace CIAO_Hello_Receiver_Impl ::Hello::CCM_MyFoo_ptr Receiver_exec_i::get_do_my_foo (void) { - return new MyFoo_exec_i (); + if ( ::CORBA::is_nil (this->ciao_do_my_foo_.in ())) + { + MyFoo_exec_i *tmp = 0; + ACE_NEW_RETURN ( + tmp, + MyFoo_exec_i ( + this->context_.in ()), + ::Hello::CCM_MyFoo::_nil ()); + + this->ciao_do_my_foo_ = tmp; + } + + return + ::Hello::CCM_MyFoo::_duplicate ( + this->ciao_do_my_foo_.in ()); } void diff --git a/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h b/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h index e785da3f319..91a26023d43 100644 --- a/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h +++ b/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h @@ -20,7 +20,7 @@ namespace CIAO_Hello_Receiver_Impl public virtual ::CORBA::LocalObject { public: - MyFoo_exec_i (void); + MyFoo_exec_i (::Hello::CCM_Receiver_Context_ptr ctx); virtual ~MyFoo_exec_i (void); virtual ::CORBA::Long foo (const char * in_str, ::CORBA::String_out answer); @@ -33,6 +33,7 @@ namespace CIAO_Hello_Receiver_Impl virtual CORBA::Short ro_attrib (); private: + ::Hello::CCM_Receiver_Context_var ciao_context_; bool get_rw_; bool get_ro_; }; @@ -57,6 +58,8 @@ namespace CIAO_Hello_Receiver_Impl private: ::Hello::CCM_Receiver_Context_var context_; + ::Hello::CCM_MyFoo_var ciao_do_my_foo_; + }; extern "C" HELLO_RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr diff --git a/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp b/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp index abefabc5468..12db6b8f969 100644 --- a/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp +++ b/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp @@ -171,37 +171,37 @@ namespace CIAO_Hello_Sender_Impl ::Hello::AMI4CCM_MyFoo_var my_foo_ami_ = context_->get_connection_sendc_run_my_foo(); + if (CORBA::is_nil (my_foo_ami_)) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT("ERROR Sender (ASYNCH) :") + ACE_TEXT("\tfoo_ami is NIL !!!\n"))); + return 1; + } + ::Hello::CCM_AMI4CCM_MyFooReplyHandler_var cb = + new MyFoo_callback_exec_i (); + for (int i = 0; i < 5; ++i) { - if (CORBA::is_nil (my_foo_ami_)) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT("ERROR Sender (ASYNCH) :") - ACE_TEXT("\tfoo_ami is NIL !!!\n"))); - return 1; - } - else - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT("Sender (ASYNCH) :") - ACE_TEXT("\tInvoke Asynchronous calls\n"))); - my_foo_ami_->sendc_foo (new MyFoo_callback_exec_i (), - "Do something asynchronous"); - my_foo_ami_->sendc_hello (new MyFoo_callback_exec_i ()); - my_foo_ami_->sendc_get_rw_attrib(new MyFoo_callback_exec_i ()); - my_foo_ami_->sendc_get_rw_attrib(new MyFoo_callback_exec_i ()); - my_foo_ami_->sendc_set_rw_attrib(new MyFoo_callback_exec_i (), 15); - my_foo_ami_->sendc_get_ro_attrib(new MyFoo_callback_exec_i ()); - my_foo_ami_->sendc_get_ro_attrib(new MyFoo_callback_exec_i ()); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT("Sender (ASYNCH) :\tInvoked Asynchronous calls\n"))); - } + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Sender (ASYNCH) :") + ACE_TEXT("\tInvoke Asynchronous calls\n"))); + my_foo_ami_->sendc_foo (cb.in (), + "Do something asynchronous"); + my_foo_ami_->sendc_hello (cb.in ()); + my_foo_ami_->sendc_get_rw_attrib(cb.in ()); + my_foo_ami_->sendc_get_rw_attrib(cb.in ()); + my_foo_ami_->sendc_set_rw_attrib(cb.in (), 15); + my_foo_ami_->sendc_get_ro_attrib(cb.in ()); + my_foo_ami_->sendc_get_ro_attrib(cb.in ()); + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT("Sender (ASYNCH) :\tInvoked Asynchronous calls\n"))); } ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Sender (ASYNCH) :\tInvoke Asynchronous calls ") ACE_TEXT("to test except handling\n"))); - my_foo_ami_->sendc_foo (new MyFoo_callback_exec_i (), ""); - my_foo_ami_->sendc_set_rw_attrib(new MyFoo_callback_exec_i (), 0); + my_foo_ami_->sendc_foo (cb.in (), ""); + my_foo_ami_->sendc_set_rw_attrib(cb.in (), 0); ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Sender (ASYNCH) :\tInvoked Asynchronous call.\n"))); return 0; @@ -223,14 +223,14 @@ namespace CIAO_Hello_Sender_Impl context_->get_connection_run_my_foo (); //run synch calls - char * out_str = 0; + CORBA::String_var out_str; for (int i = 0; i < 5; ++i) { CORBA::Long result = my_foo_ami_->foo ("Do something synchronous", - out_str); + out_str.out ()); ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Sender (SYNCH):\tInvoked synchronous call (FOO)") - ACE_TEXT(" result <%u> answer <%C>\n"), result, out_str)); + ACE_TEXT(" result <%u> answer <%C>\n"), result, out_str.in ())); CORBA::Long answer; my_foo_ami_->hello (answer); @@ -282,10 +282,10 @@ namespace CIAO_Hello_Sender_Impl } try { - CORBA::Long result = my_foo_ami_->foo ("", out_str); + CORBA::Long result = my_foo_ami_->foo ("", out_str.out ()); ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Sender (SYNCH) :\tInvoked synchronous call result ") - ACE_TEXT("<%u> answer <%C>\n"), result, out_str)); + ACE_TEXT("<%u> answer <%C>\n"), result, out_str.in ())); } catch (const Hello::InternalError& ex) { @@ -351,13 +351,13 @@ namespace CIAO_Hello_Sender_Impl void Sender_exec_i::ccm_activate (void) { - asynch_foo_generator* asynch_foo_gen = + this->asynch_foo_gen_ = new asynch_foo_generator (this->context_.in ()); - asynch_foo_gen->activate (THR_NEW_LWP | THR_JOINABLE, 1); + this->asynch_foo_gen_->activate (THR_NEW_LWP | THR_JOINABLE, 1); - synch_foo_generator* synch_foo_gen = + this->synch_foo_gen_ = new synch_foo_generator (this->context_.in()); - synch_foo_gen->activate (THR_NEW_LWP | THR_JOINABLE, 1); + this->synch_foo_gen_->activate (THR_NEW_LWP | THR_JOINABLE, 1); } void @@ -368,6 +368,10 @@ namespace CIAO_Hello_Sender_Impl void Sender_exec_i::ccm_remove (void) { + delete this->asynch_foo_gen_; + this->asynch_foo_gen_ = 0; + delete this->synch_foo_gen_; + this->synch_foo_gen_ = 0; } extern "C" ::Components::EnterpriseComponent_ptr diff --git a/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h b/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h index 79d7699fcb1..6418953be67 100644 --- a/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h +++ b/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h @@ -106,6 +106,8 @@ namespace CIAO_Hello_Sender_Impl private: ::Hello::CCM_Sender_Context_var context_; + asynch_foo_generator* asynch_foo_gen_; + synch_foo_generator* synch_foo_gen_; }; extern "C" HELLO_SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr diff --git a/CIAO/connectors/ami4ccm/tests/GetComp/descriptors/run_test.pl b/CIAO/connectors/ami4ccm/tests/GetComp/descriptors/run_test.pl index e18f3332e9f..6a03b7f01d4 100755 --- a/CIAO/connectors/ami4ccm/tests/GetComp/descriptors/run_test.pl +++ b/CIAO/connectors/ami4ccm/tests/GetComp/descriptors/run_test.pl @@ -201,7 +201,7 @@ 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 ($tg_executor->ProcessStartWaitInterval ()); +$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ()); if ($pl_status != 0) { print STDERR "ERROR: dance_plan_launcher returned $pl_status\n"; @@ -227,7 +227,7 @@ print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_fil $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 ()); +$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ()); if ($pl_status != 0) { print STDERR "ERROR: dance_plan_launcher returned $pl_status\n"; diff --git a/CIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.cpp b/CIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.cpp index 33650b4719f..4b5bda2c9ed 100755 --- a/CIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.cpp +++ b/CIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.cpp @@ -170,10 +170,13 @@ namespace CIAO_AmiDds_Sender_Impl } else { + ::AmiDds::CCM_AMI4CCM_MyFooReplyHandler_var cb = + new MyFoo_callback_exec_i (); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Sender (AMI4CCM)) :\t") ACE_TEXT("Invoke Asynchronous call nr %u\n"),(i + 1))); - my_foo_ami->sendc_hello (new MyFoo_callback_exec_i ()); + my_foo_ami->sendc_hello (cb.in ()); } } return result; @@ -270,26 +273,47 @@ namespace CIAO_AmiDds_Sender_Impl } } + ACE_Reactor* + Sender_exec_i::reactor (void) + { + ACE_Reactor* reactor = 0; + ::CORBA::Object_var ccm_object = + this->context_->get_CCM_object(); + if (! ::CORBA::is_nil (ccm_object.in ())) + { + ::CORBA::ORB_var orb = ccm_object->_get_orb (); + if (! ::CORBA::is_nil (orb.in ())) + { + reactor = orb->orb_core ()->reactor (); + } + } + if (reactor == 0) + { + throw ::CORBA::INTERNAL (); + } + return reactor; + } + void Sender_exec_i::start (void) { long sec = 3L; long const usec = 0L; - if (this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->schedule_timer ( + if (this->reactor ()->schedule_timer ( this->ticker_, 0, ACE_Time_Value (sec, usec), ACE_Time_Value (sec, usec)) == -1) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("Sender_exec_i::start : ") - ACE_TEXT ("Error scheduling timer"))); + 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_); + this->reactor ()->cancel_timer (this->ticker_); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Sender_exec_i::stop : Timer canceled.\n"))); delete this->ticker_; } diff --git a/CIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.h b/CIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.h index 49902dc8693..e3ac699a772 100755 --- a/CIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.h +++ b/CIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.h @@ -71,6 +71,7 @@ namespace CIAO_AmiDds_Sender_Impl void tick (void); private: + ACE_Reactor* reactor (void); void start (void); void stop (void); void add_instances_of_topic (void); |