QOS_DataReader_T.cpp
Go to the documentation of this file.00001
00002 #include "dds/DdsDcpsInfrastructureC.h"
00003 #include "QOS_Common.h"
00004
00005 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
00006
00007 template <typename XML_QOS_TYPE, typename DDS_QOS_TYPE>
00008 QOS_DataReader_T<XML_QOS_TYPE, DDS_QOS_TYPE>::QOS_DataReader_T (void)
00009 {
00010 }
00011
00012 template <typename XML_QOS_TYPE, typename DDS_QOS_TYPE>
00013 QOS_DataReader_T<XML_QOS_TYPE, DDS_QOS_TYPE>::~QOS_DataReader_T (void)
00014 {
00015 }
00016
00017 template <typename XML_QOS_TYPE, typename DDS_QOS_TYPE>
00018 void
00019 QOS_DataReader_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos (DDS_QOS_TYPE& dds_qos, const XML_QOS_TYPE xml_qos)
00020 {
00021
00022
00023
00024 DwDrTpBase::read_qos (dds_qos, xml_qos);
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 if (xml_qos->time_based_filter_p ())
00043 {
00044 if (xml_qos->time_based_filter ().minimum_separation_p ())
00045 {
00046 const std::string nsec = xml_qos->time_based_filter ().minimum_separation ().nanosec ();
00047 const std::string sec = xml_qos->time_based_filter ().minimum_separation ().sec ();
00048
00049 QosCommon::get_duration (dds_qos.time_based_filter.minimum_separation,
00050 sec.c_str (),
00051 nsec.c_str ());
00052
00053 if (OpenDDS::DCPS::DCPS_debug_level > 9)
00054 {
00055 ACE_DEBUG ((LM_TRACE,
00056 ACE_TEXT ("QOS_DataReader_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
00057 ACE_TEXT ("Set time_based_filter minimum_separation to <%d:%u>\n"),
00058 dds_qos.time_based_filter.minimum_separation.sec,
00059 dds_qos.time_based_filter.minimum_separation.nanosec));
00060 }
00061 }
00062 }
00063 if (xml_qos->reader_data_lifecycle_p ())
00064 {
00065 if (xml_qos->reader_data_lifecycle ().autopurge_nowriter_samples_delay_p ())
00066 {
00067 const std::string nsec = xml_qos->reader_data_lifecycle ().autopurge_nowriter_samples_delay ().nanosec ();
00068 const std::string sec = xml_qos->reader_data_lifecycle ().autopurge_nowriter_samples_delay ().sec ();
00069
00070 QosCommon::get_duration (dds_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay,
00071 sec.c_str (),
00072 nsec.c_str ());
00073
00074 if (OpenDDS::DCPS::DCPS_debug_level > 9)
00075 {
00076 ACE_DEBUG ((LM_TRACE,
00077 ACE_TEXT ("QOS_DataReader_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
00078 ACE_TEXT ("Set reader_data_lifecycle autopurge_nowriter_samples_delay to <%d:%u>\n"),
00079 dds_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.sec,
00080 dds_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec));
00081 }
00082 }
00083 if (xml_qos->reader_data_lifecycle ().autopurge_disposed_samples_delay_p ())
00084 {
00085 const std::string nsec = xml_qos->reader_data_lifecycle ().autopurge_disposed_samples_delay ().nanosec ();
00086 const std::string sec = xml_qos->reader_data_lifecycle ().autopurge_disposed_samples_delay ().sec ();
00087
00088 QosCommon::get_duration (dds_qos.reader_data_lifecycle.autopurge_disposed_samples_delay,
00089 sec.c_str (),
00090 nsec.c_str ());
00091
00092 if (OpenDDS::DCPS::DCPS_debug_level > 9)
00093 {
00094 ACE_DEBUG ((LM_TRACE,
00095 ACE_TEXT ("QOS_DataReader_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
00096 ACE_TEXT ("Set reader_data_lifecycle autopurge_disposed_samples_delay to <%d:%u>\n"),
00097 dds_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.sec,
00098 dds_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.nanosec));
00099 }
00100 }
00101 }
00102 }
00103
00104 OPENDDS_END_VERSIONED_NAMESPACE_DECL