#include <QOS_DataReader_T.h>
Public Member Functions | |
QOS_DataReader_T (void) | |
~QOS_DataReader_T (void) | |
void | read_qos (DDS_QOS_TYPE &, const XML_QOS_TYPE) |
Private Types | |
typedef QOS_DwDrTp_Base_T < XML_QOS_TYPE, DDS_QOS_TYPE > | DwDrTpBase |
Starting point for parsing the DataReader QOS settings.
Definition at line 15 of file QOS_DataReader_T.h.
typedef QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE> QOS_DataReader_T< XML_QOS_TYPE, DDS_QOS_TYPE >::DwDrTpBase [private] |
Definition at line 25 of file QOS_DataReader_T.h.
OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL QOS_DataReader_T< XML_QOS_TYPE, DDS_QOS_TYPE >::QOS_DataReader_T | ( | void | ) | [inline] |
Definition at line 8 of file QOS_DataReader_T.cpp.
QOS_DataReader_T< XML_QOS_TYPE, DDS_QOS_TYPE >::~QOS_DataReader_T | ( | void | ) | [inline] |
Definition at line 13 of file QOS_DataReader_T.cpp.
void QOS_DataReader_T< XML_QOS_TYPE, DDS_QOS_TYPE >::read_qos | ( | DDS_QOS_TYPE & | dds_qos, | |
const XML_QOS_TYPE | xml_qos | |||
) | [inline] |
Reimplemented from QOS_DwDrTp_Base_T< XML_QOS_TYPE, DDS_QOS_TYPE >.
Definition at line 19 of file QOS_DataReader_T.cpp.
References ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, QosCommon::get_duration(), LM_TRACE, and QOS_DwDrTp_Base_T< XML_QOS_TYPE, DDS_QOS_TYPE >::read_qos().
00020 { 00021 // First start parsing the QOS settings which the DataWriter, the DataReader, 00022 // and the Topic have in common 00023 00024 DwDrTpBase::read_qos (dds_qos, xml_qos); 00025 00026 // Now parse the topic-only QOS settings. 00027 00028 // if (xml_qos->user_data ()) 00029 // { 00030 // TODO: Have a good look at this. 00031 00032 // const std::string value = *xml_qos->user_data ()->value (); 00033 // 00034 // ACE_DEBUG ((LM_TRACE, 00035 // ACE_TEXT ("QOS_DataReader_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ") 00036 // ACE_TEXT ("Set user_data to <%C>\n"), 00037 // value.c_str ())); 00038 // 00039 // dds_qos.user_data.value = 00040 // *xml_qos->user_data ()->value (); 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 }