summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormhengstmengel <mhengstmengel@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-12-06 12:16:43 +0000
committermhengstmengel <mhengstmengel@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-12-06 12:16:43 +0000
commitb0ca06406af4d1bd77969ee590ed210d718f0ea3 (patch)
tree6fdad36a1acf91b26fedd1b8108a708b5e1f5553
parente5794cc95295908a5dff4dc325c938999fb447d4 (diff)
downloadATCD-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.
-rw-r--r--CIAO/ChangeLog11
-rw-r--r--CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp21
-rw-r--r--CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h5
-rw-r--r--CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp72
-rw-r--r--CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h2
-rwxr-xr-xCIAO/connectors/ami4ccm/tests/GetComp/descriptors/run_test.pl4
-rwxr-xr-xCIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.cpp32
-rwxr-xr-xCIAO/connectors/tests/AMIDDS/Sender/AmiDds_Sender_exec.h1
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);