summaryrefslogtreecommitdiff
path: root/CIAO
diff options
context:
space:
mode:
authormsmit <msmit@remedy.nl>2010-02-08 13:51:41 +0000
committermsmit <msmit@remedy.nl>2010-02-08 13:51:41 +0000
commit410243a54cd57fa5c00e95e45b5cc6a00a57fd4f (patch)
tree5e4f6703176577d4cc22114472167e717b01cf39 /CIAO
parent6cfcaae8bf45751482789c6a2ff12f238c6e620a (diff)
downloadATCD-410243a54cd57fa5c00e95e45b5cc6a00a57fd4f.tar.gz
Mon Feb 8 13:49:04 UTC 2010 Marcel Smit <msmit@remedy.nl>
* connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver.idl: * connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.h: * connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.cpp: Add tests for thread switch. * connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.h: * connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.cpp: Code aligning.
Diffstat (limited to 'CIAO')
-rw-r--r--CIAO/ChangeLog11
-rw-r--r--CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver.idl3
-rw-r--r--CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.cpp263
-rw-r--r--CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.h64
-rw-r--r--CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.cpp63
-rw-r--r--CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.h34
6 files changed, 242 insertions, 196 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index 7f11494db95..27183b3fc2f 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,14 @@
+Mon Feb 8 13:49:04 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver.idl:
+ * connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.h:
+ * connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.cpp:
+ Add tests for thread switch.
+
+ * connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.h:
+ * connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.cpp:
+ Code aligning.
+
Mon Feb 8 13:33:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* bin/ciao_tests.lst:
diff --git a/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver.idl b/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver.idl
index 0e95cfa753a..c849128c8e5 100644
--- a/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver.idl
+++ b/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver.idl
@@ -16,8 +16,7 @@ module PSL_DeadlineTest
{
port CCM_DDS::TestTopic::DDS_Get info_get;
port CCM_DDS::TestTopic::DDS_Listen info_out;
- provides CCM_DDS::ConnectorStatusListener info_out_connector_status;
- };
+ };
};
#endif
diff --git a/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.cpp b/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.cpp
index 4895eaca806..b3c1c12b13e 100644
--- a/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.cpp
+++ b/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.cpp
@@ -15,48 +15,9 @@
namespace CIAO_PSL_DeadlineTest_Receiver_Impl
{
-//============================================================
- // Facet Executor Implementation Class: ConnectorStatusListener_exec_i
//============================================================
- ConnectorStatusListener_exec_i::ConnectorStatusListener_exec_i (void)
- {
- }
-
- ConnectorStatusListener_exec_i::~ConnectorStatusListener_exec_i (void)
- {
- }
-
- // Operations from ::CCM_DDS::ConnectorStatusListener
- void ConnectorStatusListener_exec_i::on_inconsistent_topic(
- ::DDS::Topic_ptr /*the_topic*/,
- const DDS::InconsistentTopicStatus & /*status*/){
- }
-
- void ConnectorStatusListener_exec_i::on_requested_incompatible_qos(
- ::DDS::DataReader_ptr /*the_reader*/,
- const DDS::RequestedIncompatibleQosStatus & /*status*/) {
- }
-
- void ConnectorStatusListener_exec_i::on_sample_rejected(
- ::DDS::DataReader_ptr /*the_reader*/,
- const DDS::SampleRejectedStatus & /*status*/) {
- }
-
- void ConnectorStatusListener_exec_i::on_offered_deadline_missed(
- ::DDS::DataWriter_ptr /*the_writer*/,
- const DDS::OfferedDeadlineMissedStatus & /*status*/) {
- }
-
- void ConnectorStatusListener_exec_i::on_offered_incompatible_qos(
- ::DDS::DataWriter_ptr /*the_writer*/,
- const DDS::OfferedIncompatibleQosStatus & /*status*/) {
- }
-
- void ConnectorStatusListener_exec_i::on_unexpected_status(
- ::DDS::Entity_ptr /*the_entity*/,
- ::DDS::StatusKind /*status_kind*/) {
- }
-
+ // read_action_Generator
+ //============================================================
read_action_Generator::read_action_Generator (Receiver_exec_i &callback)
: pulse_callback_ (callback)
{
@@ -79,10 +40,10 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
}
return 0;
}
+
//============================================================
- // Facet Executor Implementation Class: TestTopic_RawListener_exec_i
+ // TestTopic_RawListener_exec_i
//============================================================
-
TestTopic_RawListener_exec_i::TestTopic_RawListener_exec_i (void)
{
}
@@ -91,8 +52,6 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
{
}
- // Operations from ::CCM_DDS::TestTopic_RawListener
-
void
TestTopic_RawListener_exec_i::on_one_data (
const TestTopic & an_instance ,
@@ -110,13 +69,20 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
const ::CCM_DDS::ReadInfoSeq & /* info */)
{
}
+
//============================================================
- // Facet Executor Implementation Class: PortStatusListener_exec_i
+ // PortStatusListener_exec_i
//============================================================
- PortStatusListener_exec_i::PortStatusListener_exec_i (Atomic_Boolean &deadline_port_1, Atomic_Boolean &deadline_port_2,int port_nr)
- : deadline_port_1_(deadline_port_1),
- deadline_port_2_(deadline_port_2),
- port_nr_(port_nr)
+ PortStatusListener_exec_i::PortStatusListener_exec_i (Atomic_Boolean &deadline_port_1,
+ Atomic_Boolean &deadline_port_2,
+ Atomic_ThreadId &thread_id_1,
+ Atomic_ThreadId &thread_id_2,
+ int port_nr)
+ : deadline_port_1_ (deadline_port_1),
+ deadline_port_2_ (deadline_port_2),
+ thread_id_1_ (thread_id_1),
+ thread_id_2_ (thread_id_2),
+ port_nr_ (port_nr)
{
}
@@ -126,17 +92,19 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
// Operations from ::CCM_DDS::PortStatusListener
void
- PortStatusListener_exec_i::on_requested_deadline_missed (
+ PortStatusListener_exec_i::on_requested_deadline_missed (
::DDS::DataReader_ptr the_reader,
- const ::DDS::RequestedDeadlineMissedStatus & status)
+ const ::DDS::RequestedDeadlineMissedStatus & status)
{
- if((this->port_nr_ == 1) && (!CORBA::is_nil( the_reader)) && (status.total_count!= 0))
+ if (this->port_nr_ == 1 && !CORBA::is_nil( the_reader) && status.total_count!= 0)
{
this->deadline_port_1_ = true;
+ this->thread_id_1_ = ACE_Thread::self ();
}
- if((this->port_nr_ == 2)&& (!CORBA::is_nil( the_reader)) && (status.total_count!= 0))
+ if (this->port_nr_ == 2 && !CORBA::is_nil (the_reader) && status.total_count!= 0)
{
this->deadline_port_2_ = true;
+ this->thread_id_2_ = ACE_Thread::self ();
}
}
@@ -148,12 +116,14 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
}
//============================================================
- // Component Executor Implementation Class: Receiver_exec_iTestTopic_RawListener_exec_i ();
+ // Receiver_exec_i
//============================================================
Receiver_exec_i::Receiver_exec_i (void)
: rate_ (10),
deadline_port_1_ (false),
- deadline_port_2_ (false)
+ deadline_port_2_ (false),
+ thread_id_listener_1_ (0),
+ thread_id_listener_2_ (0)
{
this->ticker_ = new read_action_Generator (*this);
}
@@ -172,57 +142,60 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
}
TestTopic_Seq_var TestTopic_infos;
::CCM_DDS::ReadInfoSeq_var readinfoseq;
- try{
- this->reader_->read_all(TestTopic_infos.out(), readinfoseq.out());
- for(CORBA::ULong i = 0; i < readinfoseq->length(); ++i)
- {
- ACE_Time_Value tv;
- tv <<= readinfoseq[i].source_timestamp;
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ALL ReadInfo ")
- ACE_TEXT ("-> UTC date =%#T\n"),
- &tv));
- }
- for(CORBA::ULong i = 0; i < TestTopic_infos->length(); ++i)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ALL keyed test info : ")
- ACE_TEXT ("Number <%d> : received TestTopic_info for <%C> at %u\n"),
- i,
- TestTopic_infos[i].key.in (),
- TestTopic_infos[i].x));
- }
- }
+ try
+ {
+ this->reader_->read_all(TestTopic_infos.out(), readinfoseq.out());
+ for(CORBA::ULong i = 0; i < readinfoseq->length(); ++i)
+ {
+ ACE_Time_Value tv;
+ tv <<= readinfoseq[i].source_timestamp;
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ALL ReadInfo ")
+ ACE_TEXT ("-> UTC date =%#T\n"),
+ &tv));
+ }
+ for(CORBA::ULong i = 0; i < TestTopic_infos->length(); ++i)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ALL keyed test info : ")
+ ACE_TEXT ("Number <%d> : received TestTopic_info for <%C> at %u\n"),
+ i,
+ TestTopic_infos[i].key.in (),
+ TestTopic_infos[i].x));
+ }
+ }
catch( const CCM_DDS::InternalError& )
- {
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("internal error or no data\n")));
- }
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("internal error or no data\n")));
+ }
}
- // Component attributes.
+
// Port operations.
::CCM_DDS::TestTopic::CCM_Listener_ptr
Receiver_exec_i::get_info_out_data_listener (void)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("new TestTopic RAW listener\n")));
- return new TestTopic_RawListener_exec_i (/*this->received_*/);
+ return new TestTopic_RawListener_exec_i ();
}
::CCM_DDS::CCM_PortStatusListener_ptr
Receiver_exec_i::get_info_out_status (void)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("new PortStatuslistener\n")));
- return new PortStatusListener_exec_i ( this->deadline_port_1_,this->deadline_port_2_, 1);
+ return new PortStatusListener_exec_i (this->deadline_port_1_,
+ this->deadline_port_2_,
+ this->thread_id_listener_1_,
+ this->thread_id_listener_2_,
+ 1);
}
::CCM_DDS::CCM_PortStatusListener_ptr
Receiver_exec_i::get_info_get_status (void)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("new PortStatuslistener\n")));
- return new PortStatusListener_exec_i (this->deadline_port_1_,this->deadline_port_2_,2);
- }
-
- ::CCM_DDS::CCM_ConnectorStatusListener_ptr
- Receiver_exec_i::get_info_out_connector_status (void)
- {
- return new ConnectorStatusListener_exec_i ();
+ return new PortStatusListener_exec_i (this->deadline_port_1_,
+ this->deadline_port_2_,
+ this->thread_id_listener_1_,
+ this->thread_id_listener_2_,
+ 2);
}
// Operations from Components::SessionComponent.
@@ -232,7 +205,7 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
{
this->context_ =
::PSL_DeadlineTest::CCM_Receiver_Context::_narrow (ctx);
- if ( ::CORBA::is_nil (this->context_.in ()))
+ if (::CORBA::is_nil (this->context_.in ()))
{
throw ::CORBA::INTERNAL ();
}
@@ -255,7 +228,7 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
ACE_ERROR ((LM_INFO, ACE_TEXT ("Error: Listener control receptacle is null!\n")));
throw CORBA::INTERNAL ();
}
- lc->mode (::CCM_DDS::NOT_ENABLED);
+ lc->mode (::CCM_DDS::NOT_ENABLED);
// calculate the interval time
long usec = 1000000 / this->rate_;
@@ -279,19 +252,123 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
void
Receiver_exec_i::ccm_remove (void)
{
- if(!this->deadline_port_1_.value () || !this->deadline_port_2_.value ())
+ if (!this->deadline_port_1_.value ())
+ {
+
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: did not receive the expected ")
+ ACE_TEXT (" error 'on_requested_deadline_missed' on PortStatusListener I in Receiver")
+ ));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("OK : Have received the expected ")
+ ACE_TEXT ("'on_requested_deadline_missed' in PortStatusListener I in Receiver\n")
+ ));
+ }
+ if (!this->deadline_port_2_.value ())
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: did not receive the expected ")
- ACE_TEXT (" error 'on_requested_deadline_missed' on DDS_Listen and/or DDS_GET port in Receiver")
+ ACE_TEXT (" error 'on_requested_deadline_missed' on PortStatusListener II in Receiver")
));
}
else
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("OK : Have received the expected ")
- ACE_TEXT ("'on_requested_deadline_missed' in on DDS_Listen and DDS_GET port Receiver\n")
+ ACE_TEXT ("'on_requested_deadline_missed' in PortStatusListener II in Receiver\n")
));
}
+ //check thread switch for listener 1
+ if (this->thread_id_listener_1_.value () == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: "
+ "Thread ID for PortStatusListener I not set!\n"));
+ }
+ #if defined (CIAO_DDS4CCM_CONTEXT_SWITCH) && (CIAO_DDS4CCM_CONTEXT_SWITCH == 1)
+ else if (ACE_OS::thr_equal (this->thread_id_listener_1_.value (),
+ ACE_Thread::self ()))
+ {
+ ACE_DEBUG ((LM_DEBUG, "OK : "
+ "Thread switch for PortStatusListener I seems OK. "
+ "(DDS uses the CCM thread for its callback) "
+ "listener <%u> - component <%u>\n",
+ this->thread_id_listener_1_.value (),
+ ACE_Thread::self ()));
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: "
+ "Thread switch for PortStatusListener I "
+ "doesn't seem to work! "
+ "listener <%u> - component <%u>\n",
+ this->thread_id_listener_1_.value (),
+ ACE_Thread::self ()));
+ }
+ #else
+ else if (ACE_OS::thr_equal (this->thread_id_listener_1_.value (),
+ ACE_Thread::self ()))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: PortStatusListener I: "
+ "DDS seems to use a CCM thread for its callback: "
+ "listener <%u> - component <%u>\n",
+ this->thread_id_listener_1_.value (),
+ ACE_Thread::self ()));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, "OK : PortStatusListener I: "
+ "DDS seems to use its own thread for its callback: "
+ "listener <%u> - component <%u>\n",
+ this->thread_id_listener_1_.value (),
+ ACE_Thread::self ()));
+ }
+ #endif
+
+ //check thread switch for listener 2
+ if (this->thread_id_listener_2_.value () == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: "
+ "Thread ID for PortStatusListener II not set!\n"));
+ }
+ #if defined (CIAO_DDS4CCM_CONTEXT_SWITCH) && (CIAO_DDS4CCM_CONTEXT_SWITCH == 1)
+ else if (ACE_OS::thr_equal (this->thread_id_listener_2_.value (),
+ ACE_Thread::self ()))
+ {
+ ACE_DEBUG ((LM_DEBUG, "OK : "
+ "Thread switch for PortStatusListener II seems OK. "
+ "(DDS uses the CCM thread for its callback) "
+ "listener <%u> - component <%u>\n",
+ this->thread_id_listener_2_.value (),
+ ACE_Thread::self ()));
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: "
+ "Thread switch for PortStatusListener II "
+ "doesn't seem to work! "
+ "listener <%u> - component <%u>\n",
+ this->thread_id_listener_2_.value (),
+ ACE_Thread::self ()));
+ }
+ #else
+ else if (ACE_OS::thr_equal (this->thread_id_listener_2_.value (),
+ ACE_Thread::self ()))
+ {
+ ACE_ERROR ((LM_ERROR, "ERROR: PortStatusListener II: "
+ "DDS seems to use a CCM thread for its callback: "
+ "listener <%u> - component <%u>\n",
+ this->thread_id_listener_2_.value (),
+ ACE_Thread::self ()));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, "OK : PortStatusListener II: "
+ "DDS seems to use its own thread for its callback: "
+ "listener <%u> - component <%u>\n",
+ this->thread_id_listener_2_.value (),
+ ACE_Thread::self ()));
+ }
+ #endif
}
extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
diff --git a/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.h b/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.h
index 0b7fa8d02d7..5e9043a6c01 100644
--- a/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.h
+++ b/CIAO/connectors/dds4ccm/tests/PSLDeadline/Receiver/PSL_DeadlineTest_Receiver_exec.h
@@ -13,15 +13,20 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "tao/LocalObject.h"
-#include "ace/Task.h"
+#include "ace/OS_NS_Thread.h"
#include "ace/Reactor.h"
+#include "ace/Task.h"
namespace CIAO_PSL_DeadlineTest_Receiver_Impl
{
typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX, CORBA::Boolean > Atomic_Boolean;
-
+ typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX, ACE_thread_t> Atomic_ThreadId;
+
class Receiver_exec_i;
-
+
+ //============================================================
+ // TestTopic_RawListener_exec_i
+ //============================================================
class RECEIVER_EXEC_Export TestTopic_RawListener_exec_i
: public virtual ::CCM_DDS::TestTopic::CCM_Listener,
public virtual ::CORBA::LocalObject
@@ -41,33 +46,9 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
const ::CCM_DDS::ReadInfoSeq & info );
};
- class RECEIVER_EXEC_Export ConnectorStatusListener_exec_i
- : public virtual ::CCM_DDS::CCM_ConnectorStatusListener,
- public virtual ::CORBA::LocalObject
- {
- public:
- ConnectorStatusListener_exec_i (void);
- virtual ~ConnectorStatusListener_exec_i (void);
-
- virtual
- void on_inconsistent_topic( ::DDS::Topic_ptr the_topic,
- const DDS::InconsistentTopicStatus & status);
- virtual
- void on_requested_incompatible_qos( ::DDS::DataReader_ptr the_reader,
- const DDS::RequestedIncompatibleQosStatus & status);
- virtual
- void on_sample_rejected( ::DDS::DataReader_ptr the_reader,
- const DDS::SampleRejectedStatus & status);
- virtual
- void on_offered_deadline_missed( ::DDS::DataWriter_ptr the_writer,
- const DDS::OfferedDeadlineMissedStatus & status);
- virtual
- void on_offered_incompatible_qos( ::DDS::DataWriter_ptr the_writer,
- const DDS::OfferedIncompatibleQosStatus & status);
- virtual
- void on_unexpected_status( ::DDS::Entity_ptr the_entity,
- ::DDS::StatusKind status_kind);
- };
+ //============================================================
+ // read_action_Generator
+ //============================================================
class read_action_Generator
: public ACE_Event_Handler
{
@@ -76,21 +57,27 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
~read_action_Generator ();
- /// Handle the timeout.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg);
private:
- /// Maintains a handle that actually process the event
Receiver_exec_i &pulse_callback_;
};
+
+ //============================================================
+ // PortStatusListener_exec_i
+ //============================================================
class RECEIVER_EXEC_Export PortStatusListener_exec_i
: public virtual ::CCM_DDS::CCM_PortStatusListener,
public virtual ::CORBA::LocalObject
{
public:
- PortStatusListener_exec_i (Atomic_Boolean &,Atomic_Boolean &, int port_nr);
+ PortStatusListener_exec_i (Atomic_Boolean &,
+ Atomic_Boolean &,
+ Atomic_ThreadId &,
+ Atomic_ThreadId &,
+ int );
virtual ~PortStatusListener_exec_i (void);
virtual void
@@ -106,9 +93,14 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
private:
Atomic_Boolean &deadline_port_1_;
Atomic_Boolean &deadline_port_2_;
+ Atomic_ThreadId &thread_id_1_;
+ Atomic_ThreadId &thread_id_2_;
int port_nr_;
};
+ //============================================================
+ // Receiver_exec_i
+ //============================================================
class RECEIVER_EXEC_Export Receiver_exec_i
: public virtual Receiver_Exec,
public virtual ::CORBA::LocalObject
@@ -127,9 +119,6 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
virtual ::CCM_DDS::CCM_PortStatusListener_ptr
get_info_get_status (void);
- virtual ::CCM_DDS::CCM_ConnectorStatusListener_ptr
- get_info_out_connector_status (void);
-
// Operations from Components::SessionComponent.
virtual void
set_session_context (
@@ -146,8 +135,11 @@ namespace CIAO_PSL_DeadlineTest_Receiver_Impl
::CCM_DDS::TestTopic::Reader_var reader_;
read_action_Generator * ticker_;
CORBA::ULong rate_;
+
Atomic_Boolean deadline_port_1_;
Atomic_Boolean deadline_port_2_;
+ Atomic_ThreadId thread_id_listener_1_;
+ Atomic_ThreadId thread_id_listener_2_;
};
extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
diff --git a/CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.cpp b/CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.cpp
index 13bbd647a98..4c49156a772 100644
--- a/CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.cpp
+++ b/CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.cpp
@@ -13,8 +13,8 @@
namespace CIAO_SL_Disabled_Receiver_Impl
{
-//============================================================
- // Facet Executor Implementation Class: ConnectorStatusListener_exec_i
+ //============================================================
+ // read_action_Generator
//============================================================
read_action_Generator::read_action_Generator (Receiver_exec_i &callback)
: pulse_callback_ (callback)
@@ -38,8 +38,9 @@ namespace CIAO_SL_Disabled_Receiver_Impl
}
return 0;
}
+
//============================================================
- // Facet Executor Implementation Class: StateListener_exec_i
+ // StateListener_exec_i
//============================================================
StateListener_exec_i::StateListener_exec_i (Atomic_Boolean &no_operation)
:no_operation_(no_operation)
@@ -74,46 +75,20 @@ namespace CIAO_SL_Disabled_Receiver_Impl
void
StateListener_exec_i::on_deletion (const ::TestTopic & /*datum*/,
- const ::CCM_DDS::ReadInfo & /*info*/)
+ const ::CCM_DDS::ReadInfo & /*info*/)
{
this->no_operation_ = false;
}
- //============================================================
- // Facet Executor Implementation Class: PortStatusListener_exec_i
- //============================================================
- PortStatusListener_exec_i::PortStatusListener_exec_i ()
- {
- }
-
- PortStatusListener_exec_i::~PortStatusListener_exec_i (void)
- {
- }
-
- // Operations from ::CCM_DDS::PortStatusListener
- void
- PortStatusListener_exec_i::on_requested_deadline_missed (
- ::DDS::DataReader_ptr /* the_reader */,
- const ::DDS::RequestedDeadlineMissedStatus & /* status */)
- {
- }
-
- void
- PortStatusListener_exec_i::on_sample_lost (
- ::DDS::DataReader_ptr /* the_reader */,
- const ::DDS::SampleLostStatus & /* status */)
- {
- }
//============================================================
- // Component Executor Implementation Class: Receiver_exec_iTestTopic_RawListener_exec_i ();
+ // Receiver_exec_i
//============================================================
-
Receiver_exec_i::Receiver_exec_i (void)
: rate_ (10),
- no_operation_(true),
- updater_data_(false)
+ no_operation_ (true),
+ updater_data_ (false)
{
- this->ticker_ = new read_action_Generator (*this);
+ this->ticker_ = new read_action_Generator (*this);
}
Receiver_exec_i::~Receiver_exec_i (void)
@@ -133,7 +108,7 @@ namespace CIAO_SL_Disabled_Receiver_Impl
try
{
this->reader_->read_all(TestTopic_infos.out(), readinfoseq.out());
- for(CORBA::ULong i = 0; i < readinfoseq->length(); ++i)
+ for (CORBA::ULong i = 0; i < readinfoseq->length(); ++i)
{
this->updater_data_ = true;
ACE_Time_Value tv;
@@ -142,7 +117,7 @@ namespace CIAO_SL_Disabled_Receiver_Impl
ACE_TEXT ("-> UTC date =%#T\n"),
&tv));
}
- for(CORBA::ULong i = 0; i < TestTopic_infos->length(); ++i)
+ for (CORBA::ULong i = 0; i < TestTopic_infos->length(); ++i)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ALL keyed test info : ")
ACE_TEXT ("Number <%d> : received TestTopic_info for <%C> at %u\n"),
@@ -156,13 +131,13 @@ namespace CIAO_SL_Disabled_Receiver_Impl
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("internal error or no data\n")));
}
}
- // Component attributes.
+
// Port operations.
::CCM_DDS::CCM_PortStatusListener_ptr
Receiver_exec_i::get_info_out_status (void)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("new PortStatuslistener\n")));
- return new PortStatusListener_exec_i ();
+ return ::CCM_DDS::CCM_PortStatusListener::_nil ();
}
::CCM_DDS::TestTopic::CCM_StateListener_ptr
@@ -187,7 +162,7 @@ namespace CIAO_SL_Disabled_Receiver_Impl
void
Receiver_exec_i::configuration_complete (void)
{
- this->reader_ = this->context_->get_connection_info_out_data();
+ this->reader_ = this->context_->get_connection_info_out_data ();
}
void
@@ -225,18 +200,18 @@ namespace CIAO_SL_Disabled_Receiver_Impl
void
Receiver_exec_i::ccm_remove (void)
{
- if(!this->no_operation_.value ()|| !this->updater_data_.value())
+ if (!this->no_operation_.value ()|| !this->updater_data_.value())
{
- ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: did receive an unexpected ")
- ACE_TEXT (" operation from StateListener or Updater doesn't work in Receiver")
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Received an unexpected ")
+ ACE_TEXT (" operation. StateListener or Updater doesn't work in Receiver")
));
}
else
{
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("OK : Haven't received tan unexpected ")
- ACE_TEXT (" oparation from StateListener in Receiver")
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("OK : Haven't received an unexpected ")
+ ACE_TEXT (" oparation from StateListener in Receiver")
));
}
}
diff --git a/CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.h b/CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.h
index 010934d80ba..e0434eed7da 100644
--- a/CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.h
+++ b/CIAO/connectors/dds4ccm/tests/SLDisabled/Receiver/SL_Disabled_Receiver_exec.h
@@ -21,6 +21,10 @@ namespace CIAO_SL_Disabled_Receiver_Impl
typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX, CORBA::Boolean > Atomic_Boolean;
class Receiver_exec_i;
+
+ //============================================================
+ // read_action_Generator
+ //============================================================
class read_action_Generator
: public ACE_Event_Handler
{
@@ -29,33 +33,17 @@ namespace CIAO_SL_Disabled_Receiver_Impl
~read_action_Generator ();
- /// Handle the timeout.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg);
private:
- /// Maintains a handle that actually process the event
Receiver_exec_i &pulse_callback_;
};
- class RECEIVER_EXEC_Export PortStatusListener_exec_i
- : public virtual ::CCM_DDS::CCM_PortStatusListener,
- public virtual ::CORBA::LocalObject
- {
- public:
- PortStatusListener_exec_i (void);
- virtual ~PortStatusListener_exec_i (void);
- virtual void
- on_requested_deadline_missed (
- ::DDS::DataReader_ptr the_reader,
- const ::DDS::RequestedDeadlineMissedStatus & status);
-
- virtual void
- on_sample_lost (
- ::DDS::DataReader_ptr the_reader,
- const ::DDS::SampleLostStatus & status);
- };
+ //============================================================
+ // StateListener_exec_i
+ //============================================================
class RECEIVER_EXEC_Export StateListener_exec_i
: public virtual ::CCM_DDS::TestTopic::CCM_StateListener,
public virtual ::CORBA::LocalObject
@@ -84,6 +72,9 @@ namespace CIAO_SL_Disabled_Receiver_Impl
Atomic_Boolean &no_operation_;
};
+ //============================================================
+ // Receiver_exec_i
+ //============================================================
class RECEIVER_EXEC_Export Receiver_exec_i
: public virtual Receiver_Exec,
public virtual ::CORBA::LocalObject
@@ -108,15 +99,16 @@ namespace CIAO_SL_Disabled_Receiver_Impl
virtual void ccm_activate (void);
virtual void ccm_passivate (void);
virtual void ccm_remove (void);
- void read_all(void);
+ void read_all (void);
private:
::SL_Disabled::CCM_Receiver_Context_var context_;
::CCM_DDS::TestTopic::Reader_var reader_;
read_action_Generator * ticker_;
+
CORBA::ULong rate_;
Atomic_Boolean no_operation_;
- Atomic_Boolean updater_data_;
+ Atomic_Boolean updater_data_;
};
extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
create_SL_Disabled_Receiver_Impl (void);