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   // 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 }
00103 
00104 OPENDDS_END_VERSIONED_NAMESPACE_DECL
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1