diff options
Diffstat (limited to 'CIAO')
20 files changed, 98 insertions, 28 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index 21db1bb5ed2..48217f4a1d9 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,12 +1,41 @@ +Fri Dec 18 08:32:09 UTC 2009 Marcel Smit <msmit@remedy.nl> + + * connectors/dds4ccm/impl/ndds/DDS_Get_T.h: + * connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp: + * connectors/dds4ccm/impl/ndds/DDS_Listen_T.h: + * connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp: + * connectors/dds4ccm/impl/ndds/DDS_Read_T.h: + * connectors/dds4ccm/impl/ndds/DDS_Read_T.cpp: + * connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h: + * connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp: + * connectors/dds4ccm/impl/ndds/DDS_Update_T.h: + * connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp: + * connectors/dds4ccm/impl/ndds/DDS_Write_T.h: + * connectors/dds4ccm/impl/ndds/DDS_Write_T.cpp: + Added a datareader/writer in order to separate the + dds lifecycle from the ccm lifecycle. + + * connectors/dds4ccm/impl/ndds/DataReader.cpp: + * connectors/dds4ccm/impl/ndds/DataWriter.cpp: + * connectors/dds4ccm/impl/ndds/Publisher.cpp: + * connectors/dds4ccm/impl/ndds/SampleInfo.h: + * connectors/dds4ccm/impl/ndds/Subscriber.cpp: + * connectors/dds4ccm/impl/ndds/Topic.cpp: + Don't call impl () recursive. Use impl_ to check + for nil. + + * connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl: + Turned off CIAO en DAnCE trace. + Thu Dec 17 20:43:31 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl> * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp - Change cdp for test. + Change cdp for test. Thu Dec 17 18:42:31 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl> * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp - Add profile to connectorFour. + Add profile to connectorFour. Thu Dec 17 13:08:14 UTC 2009 Marcel Smit <msmit@remedy.nl> diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp index 9c57d3478b9..ce62299d6f7 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp @@ -49,6 +49,8 @@ DDS_Get_T<DDS_TYPE, CCM_TYPE>::init ( profile_name, this->status_.in (), ::CIAO::DDS4CCM::RTI::PortStatusListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ()); + this->rti_reader_.set_impl (rd); this->data_ = ::DDS::CCM_DataReader::_narrow (reader); this->dds_get_.data_reader (reader); this->dds_read_.data_reader (reader); @@ -62,6 +64,8 @@ DDS_Get_T<DDS_TYPE, CCM_TYPE>::init ( drqos, this->status_.in (), ::CIAO::DDS4CCM::RTI::PortStatusListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ()); + this->rti_reader_.set_impl (rd); this->data_ = ::DDS::CCM_DataReader::_narrow (reader); this->dds_get_.data_reader (reader); this->dds_read_.data_reader (reader); @@ -98,7 +102,13 @@ template <typename DDS_TYPE, typename CCM_TYPE> DDS_Get_T<DDS_TYPE, CCM_TYPE>::get_dds_entity (void) { CIAO_TRACE ("DDS_Get_T<DDS_TYPE, CCM_TYPE>::get_dds_entity"); - - return this->data_.in (); + if (this->rti_reader_.get_impl ()) + { + return dynamic_cast < ::DDS::CCM_DataReader *> (this->rti_reader_.get_impl ()); + } + else + { + return 0; + } } diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h index 2d8271749fc..2ac783e66e3 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h @@ -47,6 +47,7 @@ private: ::DDS::DataReaderListener_var status_; ::CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE> dds_get_; ::CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> dds_read_; + ::CIAO::DDS4CCM::RTI::RTI_DataReader_i rti_reader_; //@} }; diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp index c353319eec7..dce2e99a128 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp @@ -58,6 +58,8 @@ DDS_Listen_T<DDS_TYPE, CCM_TYPE>::init ( profile_name, this->data_listener_.in (), ::CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ()); + this->rti_reader_.set_impl (rd); this->data_reader_ = ::DDS::CCM_DataReader::_narrow (reader); this->dds_read_.data_reader (this->data_reader_.in ()); } diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h index aa183a8de83..5b0037cf320 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h @@ -43,8 +43,8 @@ private: ::DDS::CCM_DataReader_var data_reader_; ::CCM_DDS::CCM_DataListenerControl_var data_control_; ::DDS::DataReaderListener_var data_listener_; - CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> dds_read_; - CIAO::DDS4CCM::RTI::RTI_DataReader_i rti_reader_; + ::CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> dds_read_; + ::CIAO::DDS4CCM::RTI::RTI_DataReader_i rti_reader_; //@} }; diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Read_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Read_T.cpp index 5341abe254e..ab689b310d3 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Read_T.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Read_T.cpp @@ -50,6 +50,8 @@ DDS_Read_T<DDS_TYPE, CCM_TYPE>::init ( profile_name, this->status_.in (), ::CIAO::DDS4CCM::RTI::PortStatusListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ()); + this->rti_reader_.set_impl (rd); this->data_ = ::DDS::CCM_DataReader::_narrow (reader); this->dds_read_.data_reader (reader); } @@ -62,6 +64,8 @@ DDS_Read_T<DDS_TYPE, CCM_TYPE>::init ( drqos, this->status_.in (), ::CIAO::DDS4CCM::RTI::PortStatusListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ()); + this->rti_reader_.set_impl (rd); this->data_ = ::DDS::CCM_DataReader::_narrow (reader); this->dds_read_.data_reader (reader); } diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Read_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Read_T.h index efa3fe34fbe..0867a2a0ba0 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Read_T.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Read_T.h @@ -41,7 +41,8 @@ private: //@{ ::DDS::CCM_DataReader_var data_; ::DDS::DataReaderListener_var status_; - CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> dds_read_; + ::CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> dds_read_; + ::CIAO::DDS4CCM::RTI::RTI_DataReader_i rti_reader_; //@} }; diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp index abd22055055..c5e9ae87a87 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp @@ -54,6 +54,8 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::init ( profile_name, this->data_listener_.in (), ::CIAO::DDS4CCM::RTI::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ()); + this->rti_reader_.set_impl (rd); this->data_reader_ = ::DDS::CCM_DataReader::_narrow (reader); this->dds_read_.data_reader (this->data_reader_.in ()); } @@ -66,6 +68,8 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::init ( drqos, this->data_listener_.in (), ::CIAO::DDS4CCM::RTI::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ()); + this->rti_reader_.set_impl (rd); this->data_reader_ = ::DDS::CCM_DataReader::_narrow (reader); this->dds_read_.data_reader (this->data_reader_.in ()); } diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h index cb4fe187165..9d4361f5631 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h @@ -43,7 +43,8 @@ private: ::DDS::CCM_DataReader_var data_reader_; ::CCM_DDS::CCM_StateListenerControl_var data_control_; ::DDS::DataReaderListener_var data_listener_; - CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> dds_read_; + ::CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> dds_read_; + ::CIAO::DDS4CCM::RTI::RTI_DataReader_i rti_reader_; //@} }; diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp index cf0daea8a90..2102f000347 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp @@ -4,6 +4,7 @@ #include "dds4ccm/impl/ndds/DataReaderStateListener_T.h" #include "dds4ccm/impl/ndds/DataWriterListener_T.h" #include "dds4ccm/impl/ndds/Updater_T.h" +#include "dds4ccm/impl/ndds/DataWriter.h" #include "ciao/Logger/Log_Macros.h" @@ -41,6 +42,8 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE>::init ( profile_name, this->data_listener_.in (), ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataWriter *rw = dynamic_cast < DDSDataWriter *> (dwv_tmp.in ()); + this->rti_writer_.set_impl (rw); this->data_writer_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp); this->dds_update_.data_writer (dwv_tmp); } @@ -53,6 +56,8 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE>::init ( dwqos, this->data_listener_.in (), ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataWriter *rw = dynamic_cast < DDSDataWriter *> (dwv_tmp.in ()); + this->rti_writer_.set_impl (rw); this->data_writer_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp); this->dds_update_.data_writer (dwv_tmp); } diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h index 0fc5882f589..e8818b75a42 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h @@ -34,7 +34,8 @@ private: //@{ ::DDS::CCM_DataWriter_var data_writer_; ::DDS::DataWriterListener_var data_listener_; - CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE> dds_update_; + ::CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE> dds_update_; + ::CIAO::DDS4CCM::RTI::RTI_DataWriter_i rti_writer_; //@} }; diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Write_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Write_T.cpp index 9b3c9ef31f1..40e7186f339 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Write_T.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Write_T.cpp @@ -44,6 +44,8 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE>::init ( profile_name, this->writer_listener_.in (), ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataWriter *rw = dynamic_cast < DDSDataWriter *> (dwv_tmp.in ()); + this->rti_writer_.set_impl (rw); this->writer_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp); this->writer_t_.data_writer (dwv_tmp); } @@ -56,6 +58,8 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE>::init ( dwqos, this->writer_listener_.in (), ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); + DDSDataWriter *rw = dynamic_cast < DDSDataWriter *> (dwv_tmp.in ()); + this->rti_writer_.set_impl (rw); this->writer_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp); this->writer_t_.data_writer (dwv_tmp); } diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Write_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Write_T.h index a8e1f8f97d7..d2c4abce0b7 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Write_T.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Write_T.h @@ -42,6 +42,7 @@ private: ::DDS::CCM_DataWriter_var writer_; ::DDS::DataWriterListener_var writer_listener_; ::CIAO::DDS4CCM::RTI::Writer_T<DDS_TYPE, CCM_TYPE> writer_t_; + ::CIAO::DDS4CCM::RTI::RTI_DataWriter_i rti_writer_; //@} }; diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp index 8c91a3006ee..60a856bf229 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp @@ -253,7 +253,7 @@ namespace CIAO DDSDataReader * RTI_DataReader_i::get_impl (void) { - return this->impl (); + return this->impl_; } void diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp index 9c738e55df5..d5d69c72d46 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp @@ -184,7 +184,7 @@ namespace CIAO DDSDataWriter * RTI_DataWriter_i::get_impl (void) { - return this->impl (); + return this->impl_; } void diff --git a/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp b/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp index 5792dad0c7e..6aec294c463 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp @@ -291,7 +291,7 @@ namespace CIAO DDSPublisher * RTI_Publisher_i::get_impl (void) { - return this->impl (); + return this->impl_; } void diff --git a/CIAO/connectors/dds4ccm/impl/ndds/SampleInfo.h b/CIAO/connectors/dds4ccm/impl/ndds/SampleInfo.h index e9009afdf7c..1c314b8c479 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/SampleInfo.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/SampleInfo.h @@ -23,23 +23,30 @@ operator<<= (::CCM_DDS::AccessStatus & access_status, const ::DDS_SampleStateKin } inline void -operator<<= (::CCM_DDS::InstanceStatus & instance_status, const ::DDS_InstanceStateKind & instance_state) -{ - if (instance_state == DDS_ALIVE_INSTANCE_STATE) - instance_status = ::CCM_DDS::INSTANCE_CREATED; - else if (instance_state == DDS_NOT_ALIVE_DISPOSED_INSTANCE_STATE) - instance_status = ::CCM_DDS::INSTANCE_DELETED; - else if (instance_state == DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE) - instance_status = ::CCM_DDS::INSTANCE_UPDATED; -} - -inline void operator<<= (::CCM_DDS::ReadInfo& ccm_dds_readinfo, const ::DDS_SampleInfo& sample_info) { ccm_dds_readinfo.source_timestamp <<= sample_info.source_timestamp; ccm_dds_readinfo.access_status <<= sample_info.sample_state; - ccm_dds_readinfo.instance_status <<= sample_info.instance_state; ccm_dds_readinfo.instance_handle <<= sample_info.instance_handle; + + //instance_status new + if (sample_info.instance_state == DDS_ALIVE_INSTANCE_STATE && + sample_info.view_state == DDS_NEW_VIEW_STATE) + { + ccm_dds_readinfo.instance_status = ::CCM_DDS::INSTANCE_CREATED; + } + //instance_status deleted + else if (sample_info.instance_state == DDS_NOT_ALIVE_DISPOSED_INSTANCE_STATE) + { + ccm_dds_readinfo.instance_status = ::CCM_DDS::INSTANCE_DELETED; + } + //instance_status updated + else if ((sample_info.instance_state == DDS_ALIVE_INSTANCE_STATE && + sample_info.view_state == DDS_NOT_NEW_VIEW_STATE) || + sample_info.instance_state == DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE) + { + ccm_dds_readinfo.instance_status = ::CCM_DDS::INSTANCE_UPDATED; + } } #endif diff --git a/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.cpp b/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.cpp index 77c0efc1e64..461113e92b6 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.cpp @@ -292,7 +292,7 @@ namespace CIAO DDSSubscriber * RTI_Subscriber_i::get_impl (void) { - return this->impl (); + return this->impl_; } void diff --git a/CIAO/connectors/dds4ccm/impl/ndds/Topic.cpp b/CIAO/connectors/dds4ccm/impl/ndds/Topic.cpp index 38ef25183a0..31129fa2e5b 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/Topic.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/Topic.cpp @@ -116,7 +116,7 @@ namespace CIAO DDSTopic * RTI_Topic_i::get_impl (void) { - return this->impl (); + return this->impl_; } void diff --git a/CIAO/connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl index 59ab249390a..cff39cf4cd5 100755 --- a/CIAO/connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl @@ -44,8 +44,8 @@ $tg_executor = 0; $status = 0; $cdp_file = "Plan.cdp"; -$ENV{"DANCE_TRACE_ENABLE"} = 1; -$ENV{"CIAO_TRACE_ENABLE"} = 1; +$ENV{"DANCE_TRACE_ENABLE"} = 0; +$ENV{"CIAO_TRACE_ENABLE"} = 0; sub create_targets { # naming service |