LCOV - code coverage report
Current view: top level - DCPS - Qos_Helper.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 36 262 13.7 %
Date: 2023-04-30 01:32:43 Functions: 4 11 36.4 %

          Line data    Source code
       1             : /*
       2             :  *
       3             :  *
       4             :  * Distributed under the OpenDDS License.
       5             :  * See: http://www.opendds.org/license.html
       6             :  */
       7             : 
       8             : #include "DCPS/DdsDcps_pch.h" //Only the _pch include should start with DCPS/
       9             : 
      10             : #include "Qos_Helper.h"
      11             : #if !defined (__ACE_INLINE__)
      12             : #include "Qos_Helper.inl"
      13             : #endif /* __ACE_INLINE__ */
      14             : 
      15             : #include "debug.h"
      16             : #include "DCPS_Utils.h"
      17             : 
      18             : OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
      19             : 
      20             : namespace OpenDDS {
      21             : namespace DCPS {
      22             : 
      23           0 : bool Qos_Helper::valid(const DDS::DomainParticipantQos& qos)
      24             : {
      25           0 :   if (!valid(qos.user_data)) {
      26           0 :     if (log_level >= LogLevel::Notice) {
      27           0 :       ACE_ERROR((LM_NOTICE,
      28             :         "(%P|%t) NOTICE: Qos_Helper::valid::DomainParticipantQos, invalid user_data qos.\n"));
      29             :     }
      30           0 :     return false;
      31             :   }
      32             : 
      33           0 :   if (!valid(qos.entity_factory)) {
      34           0 :     if (log_level >= LogLevel::Notice) {
      35           0 :       ACE_ERROR((LM_NOTICE,
      36             :         "(%P|%t) NOTICE: Qos_Helper::valid::DomainParticipantQos, invalid entity_factory qos.\n"));
      37             :     }
      38           0 :     return false;
      39             :   }
      40             : 
      41           0 :   if (!valid(qos.property)) {
      42           0 :     if (log_level >= LogLevel::Notice) {
      43           0 :       ACE_ERROR((LM_NOTICE,
      44             :         "(%P|%t) NOTICE: Qos_Helper::valid::DomainParticipantQos, invalid property qos.\n"));
      45             :     }
      46           0 :     return false;
      47             :   }
      48             : 
      49           0 :   return true;
      50             : }
      51             : 
      52           0 : bool Qos_Helper::valid(const DDS::TopicQos& qos)
      53             : {
      54           0 :   if (!valid(qos.topic_data)) {
      55           0 :     if (log_level >= LogLevel::Notice) {
      56           0 :       ACE_ERROR((LM_NOTICE,
      57             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid topic_data qos.\n"));
      58             :     }
      59           0 :     return false;
      60             :   }
      61             : 
      62           0 :   if (!valid(qos.durability)) {
      63           0 :     if (log_level >= LogLevel::Notice) {
      64           0 :       ACE_ERROR((LM_NOTICE,
      65             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid durability qos.\n"));
      66             :     }
      67           0 :     return false;
      68             :   }
      69             : 
      70             : #ifndef OPENDDS_NO_PERSISTENCE_PROFILE
      71           0 :   if (!valid(qos.durability_service)) {
      72           0 :     if (log_level >= LogLevel::Notice) {
      73           0 :       ACE_ERROR((LM_NOTICE,
      74             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid durability_service qos.\n"));
      75             :     }
      76           0 :     return false;
      77             :   }
      78             : #endif
      79             : 
      80           0 :   if (!valid(qos.deadline)) {
      81           0 :     if (log_level >= LogLevel::Notice) {
      82           0 :       ACE_ERROR((LM_NOTICE,
      83             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid deadline qos.\n"));
      84             :     }
      85           0 :     return false;
      86             :   }
      87             : 
      88           0 :   if (!valid(qos.latency_budget)) {
      89           0 :     if (log_level >= LogLevel::Notice) {
      90           0 :       ACE_ERROR((LM_NOTICE,
      91             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid latency_budget qos.\n"));
      92             :     }
      93           0 :     return false;
      94             :   }
      95             : 
      96           0 :   if (!valid(qos.liveliness)) {
      97           0 :     if (log_level >= LogLevel::Notice) {
      98           0 :       ACE_ERROR((LM_NOTICE,
      99             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid liveliness qos.\n"));
     100             :     }
     101           0 :     return false;
     102             :   }
     103             : 
     104           0 :   if (!valid(qos.destination_order)) {
     105           0 :     if (log_level >= LogLevel::Notice) {
     106           0 :       ACE_ERROR((LM_NOTICE,
     107             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid destination_order qos.\n"));
     108             :     }
     109           0 :     return false;
     110             :   }
     111             : 
     112           0 :   if (!valid(qos.history)) {
     113           0 :     if (log_level >= LogLevel::Notice) {
     114           0 :       ACE_ERROR((LM_NOTICE,
     115             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid history qos.\n"));
     116             :     }
     117           0 :     return false;
     118             :   }
     119             : 
     120           0 :   if (!valid(qos.resource_limits)) {
     121           0 :     if (log_level >= LogLevel::Notice) {
     122           0 :       ACE_ERROR((LM_NOTICE,
     123             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid resource_limits qos.\n"));
     124             :     }
     125           0 :     return false;
     126             :   }
     127             : 
     128           0 :   if (!valid(qos.transport_priority)) {
     129           0 :     if (log_level >= LogLevel::Notice) {
     130           0 :       ACE_ERROR((LM_NOTICE,
     131             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid transport_priority qos.\n"));
     132             :     }
     133           0 :     return false;
     134             :   }
     135             : 
     136           0 :   if (!valid(qos.lifespan)) {
     137           0 :     if (log_level >= LogLevel::Notice) {
     138           0 :       ACE_ERROR((LM_NOTICE,
     139             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid lifespan qos.\n"));
     140             :     }
     141           0 :     return false;
     142             :   }
     143             : 
     144           0 :   if (!valid(qos.ownership)) {
     145           0 :     if (log_level >= LogLevel::Notice) {
     146           0 :       ACE_ERROR((LM_NOTICE,
     147             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid ownership qos.\n"));
     148             :     }
     149           0 :     return false;
     150             :   }
     151             : 
     152           0 :   if (!valid(qos.representation)) {
     153           0 :     if (log_level >= LogLevel::Notice) {
     154           0 :       ACE_ERROR((LM_NOTICE,
     155             :         "(%P|%t) NOTICE: Qos_Helper::valid::TopicQos, invalid representation qos.\n"));
     156             :     }
     157           0 :     return false;
     158             :   }
     159             : 
     160           0 :   return true;
     161             : }
     162             : 
     163           0 : bool Qos_Helper::valid(const DDS::DataWriterQos& qos)
     164             : {
     165           0 :   if (!valid(qos.durability)) {
     166           0 :     if (log_level >= LogLevel::Notice) {
     167           0 :       ACE_ERROR((LM_NOTICE,
     168             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid durability qos.\n"));
     169             :     }
     170           0 :     return false;
     171             :   }
     172             : 
     173             : #ifndef OPENDDS_NO_PERSISTENCE_PROFILE
     174           0 :   if (!valid(qos.durability_service)) {
     175           0 :     if (log_level >= LogLevel::Notice) {
     176           0 :       ACE_ERROR((LM_NOTICE,
     177             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid durability_service qos.\n"));
     178             :     }
     179           0 :     return false;
     180             :   }
     181             : #endif
     182             : 
     183           0 :   if (!valid(qos.deadline)) {
     184           0 :     if (log_level >= LogLevel::Notice) {
     185           0 :       ACE_ERROR((LM_NOTICE,
     186             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid deadline qos.\n"));
     187             :     }
     188           0 :     return false;
     189             :   }
     190             : 
     191           0 :   if (!valid(qos.latency_budget)) {
     192           0 :     if (log_level >= LogLevel::Notice) {
     193           0 :       ACE_ERROR((LM_NOTICE,
     194             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid latency_budget qos.\n"));
     195             :     }
     196           0 :     return false;
     197             :   }
     198             : 
     199           0 :   if (!valid(qos.liveliness)) {
     200           0 :     if (log_level >= LogLevel::Notice) {
     201           0 :       ACE_ERROR((LM_NOTICE,
     202             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid liveliness qos.\n"));
     203             :     }
     204           0 :     return false;
     205             :   }
     206             : 
     207           0 :   if (!valid(qos.destination_order)) {
     208           0 :     if (log_level >= LogLevel::Notice) {
     209           0 :       ACE_ERROR((LM_NOTICE,
     210             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid destination_order qos.\n"));
     211             :     }
     212           0 :     return false;
     213             :   }
     214             : 
     215           0 :   if (!valid(qos.history)) {
     216           0 :     if (log_level >= LogLevel::Notice) {
     217           0 :       ACE_ERROR((LM_NOTICE,
     218             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid history qos.\n"));
     219             :     }
     220           0 :     return false;
     221             :   }
     222             : 
     223           0 :   if (!valid(qos.resource_limits)) {
     224           0 :     if (log_level >= LogLevel::Notice) {
     225           0 :       ACE_ERROR((LM_NOTICE,
     226             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid resource_limits qos.\n"));
     227             :     }
     228           0 :     return false;
     229             :   }
     230             : 
     231           0 :   if (!valid(qos.transport_priority)) {
     232           0 :     if (log_level >= LogLevel::Notice) {
     233           0 :       ACE_ERROR((LM_NOTICE,
     234             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid transport_priority qos.\n"));
     235             :     }
     236           0 :     return false;
     237             :   }
     238             : 
     239           0 :   if (!valid(qos.lifespan)) {
     240           0 :     if (log_level >= LogLevel::Notice) {
     241           0 :       ACE_ERROR((LM_NOTICE,
     242             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid lifespan qos.\n"));
     243             :     }
     244           0 :     return false;
     245             :   }
     246             : 
     247           0 :   if (!valid(qos.user_data)) {
     248           0 :     if (log_level >= LogLevel::Notice) {
     249           0 :       ACE_ERROR((LM_NOTICE,
     250             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid user_data qos.\n"));
     251             :     }
     252           0 :     return false;
     253             :   }
     254             : 
     255           0 :   if (!valid(qos.ownership)) {
     256           0 :     if (log_level >= LogLevel::Notice) {
     257           0 :       ACE_ERROR((LM_NOTICE,
     258             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid ownership qos.\n"));
     259             :     }
     260           0 :     return false;
     261             :   }
     262             : 
     263             : #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE
     264           0 :   if (!valid(qos.ownership_strength)) {
     265           0 :     if (log_level >= LogLevel::Notice) {
     266           0 :       ACE_ERROR((LM_NOTICE,
     267             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid ownership_strength qos.\n"));
     268             :     }
     269           0 :     return false;
     270             :   }
     271             : #endif
     272             : 
     273           0 :   if (!valid(qos.writer_data_lifecycle)) {
     274           0 :     if (log_level >= LogLevel::Notice) {
     275           0 :       ACE_ERROR((LM_NOTICE,
     276             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid writer_data_lifecycle qos.\n"));
     277             :     }
     278           0 :     return false;
     279             :   }
     280             : 
     281           0 :   if (!valid(qos.representation)) {
     282           0 :     if (log_level >= LogLevel::Notice) {
     283           0 :       ACE_ERROR((LM_NOTICE,
     284             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataWriterQos, invalid data representation qos.\n"));
     285             :     }
     286           0 :     return false;
     287             :   }
     288             : 
     289           0 :   return true;
     290             : }
     291             : 
     292           0 : bool Qos_Helper::valid(const DDS::PublisherQos& qos)
     293             : {
     294             : 
     295           0 :   if (!valid(qos.presentation)) {
     296           0 :     if (log_level >= LogLevel::Notice) {
     297           0 :       ACE_ERROR((LM_NOTICE,
     298             :         "(%P|%t) NOTICE: Qos_Helper::valid::PublisherQos, invalid presentation qos.\n"));
     299             :     }
     300           0 :     return false;
     301             :   }
     302             : 
     303           0 :   if (!valid(qos.partition)) {
     304           0 :     if (log_level >= LogLevel::Notice) {
     305           0 :       ACE_ERROR((LM_NOTICE,
     306             :         "(%P|%t) NOTICE: Qos_Helper::valid::PublisherQos, invalid partition qos.\n"));
     307             :     }
     308           0 :     return false;
     309             :   }
     310             : 
     311           0 :   if (!valid(qos.group_data)) {
     312           0 :     if (log_level >= LogLevel::Notice) {
     313           0 :       ACE_ERROR((LM_NOTICE,
     314             :         "(%P|%t) NOTICE: Qos_Helper::valid::PublisherQos, invalid group_data qos.\n"));
     315             :     }
     316           0 :     return false;
     317             :   }
     318             : 
     319           0 :   if (!valid(qos.entity_factory)) {
     320           0 :     if (log_level >= LogLevel::Notice) {
     321           0 :       ACE_ERROR((LM_NOTICE,
     322             :         "(%P|%t) NOTICE: Qos_Helper::valid::PublisherQos, sinvalid entity_factory qos.\n"));
     323             :     }
     324           0 :     return false;
     325             :   }
     326             : 
     327           0 :   return true;
     328             : }
     329             : 
     330           0 : bool Qos_Helper::valid(const DDS::DataReaderQos& qos)
     331             : {
     332           0 :   if (!valid(qos.durability)) {
     333           0 :     if (log_level >= LogLevel::Notice) {
     334           0 :       ACE_ERROR((LM_NOTICE,
     335             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid durability qos.\n"));
     336             :     }
     337           0 :     return false;
     338             :   }
     339             : 
     340           0 :   if (!valid(qos.deadline)) {
     341           0 :     if (log_level >= LogLevel::Notice) {
     342           0 :       ACE_ERROR((LM_NOTICE,
     343             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid deadline qos.\n"));
     344             :     }
     345           0 :     return false;
     346             :   }
     347             : 
     348           0 :   if (!valid(qos.latency_budget)) {
     349           0 :     if (log_level >= LogLevel::Notice) {
     350           0 :       ACE_ERROR((LM_NOTICE,
     351             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid latency_budget qos.\n"));
     352             :     }
     353           0 :     return false;
     354             :   }
     355             : 
     356           0 :   if (!valid(qos.liveliness)) {
     357           0 :     if (log_level >= LogLevel::Notice) {
     358           0 :       ACE_ERROR((LM_NOTICE,
     359             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid liveliness qos.\n"));
     360             :     }
     361           0 :     return false;
     362             :   }
     363             : 
     364           0 :   if (!valid(qos.reliability)) {
     365           0 :     if (log_level >= LogLevel::Notice) {
     366           0 :       ACE_ERROR((LM_NOTICE,
     367             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid reliability qos.\n"));
     368             :     }
     369           0 :     return false;
     370             :   }
     371             : 
     372           0 :   if (!valid(qos.destination_order)) {
     373           0 :     if (log_level >= LogLevel::Notice) {
     374           0 :       ACE_ERROR((LM_NOTICE,
     375             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid destination_order qos.\n"));
     376             :     }
     377           0 :     return false;
     378             :   }
     379             : 
     380           0 :   if (!valid(qos.history)) {
     381           0 :     if (log_level >= LogLevel::Notice) {
     382           0 :       ACE_ERROR((LM_NOTICE,
     383             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid history qos.\n"));
     384             :     }
     385           0 :     return false;
     386             :   }
     387             : 
     388           0 :   if (!valid(qos.resource_limits)) {
     389           0 :     if (log_level >= LogLevel::Notice) {
     390           0 :       ACE_ERROR((LM_NOTICE,
     391             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid resource_limits qos.\n"));
     392             :     }
     393           0 :     return false;
     394             :   }
     395             : 
     396           0 :   if (!valid(qos.user_data)) {
     397           0 :     if (log_level >= LogLevel::Notice) {
     398           0 :       ACE_ERROR((LM_NOTICE,
     399             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid user_data qos.\n"));
     400             :     }
     401           0 :     return false;
     402             :   }
     403             : 
     404           0 :   if (!valid(qos.time_based_filter)) {
     405           0 :     if (log_level >= LogLevel::Notice) {
     406           0 :       ACE_ERROR((LM_NOTICE,
     407             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid time_based_filter qos.\n"));
     408             :     }
     409           0 :     return false;
     410             :   }
     411             : 
     412           0 :   if (!valid(qos.reader_data_lifecycle)) {
     413           0 :     if (log_level >= LogLevel::Notice) {
     414           0 :       ACE_ERROR((LM_NOTICE,
     415             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid reader_data_lifecycle qos.\n"));
     416             :     }
     417           0 :     return false;
     418             :   }
     419             : 
     420           0 :   if (!valid(qos.ownership)) {
     421           0 :     if (log_level >= LogLevel::Notice) {
     422           0 :       ACE_ERROR((LM_NOTICE,
     423             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid ownership qos.\n"));
     424             :     }
     425           0 :     return false;
     426             :   }
     427             : 
     428           0 :   if (!valid(qos.representation)) {
     429           0 :     if (log_level >= LogLevel::Notice) {
     430           0 :       ACE_ERROR((LM_NOTICE,
     431             :         "(%P|%t) NOTICE: Qos_Helper::valid::DataReaderQos, invalid representation qos.\n"));
     432             :     }
     433           0 :     return false;
     434             :   }
     435             : 
     436           0 :   return true;
     437             : }
     438             : 
     439           0 : bool Qos_Helper::valid(const DDS::SubscriberQos& qos)
     440             : {
     441           0 :   if (!valid(qos.presentation)) {
     442           0 :     if (log_level >= LogLevel::Notice) {
     443           0 :       ACE_ERROR((LM_NOTICE,
     444             :         "(%P|%t) NOTICE: Qos_Helper::valid::SubscriberQos, invalid presentation qos.\n"));
     445             :     }
     446           0 :     return false;
     447             :   }
     448             : 
     449           0 :   if (!valid(qos.partition)) {
     450           0 :     if (log_level >= LogLevel::Notice) {
     451           0 :       ACE_ERROR((LM_NOTICE,
     452             :         "(%P|%t) NOTICE: Qos_Helper::valid::SubscriberQos, invalid partition qos.\n"));
     453             :     }
     454           0 :     return false;
     455             :   }
     456             : 
     457           0 :   if (!valid(qos.group_data)) {
     458           0 :     if (log_level >= LogLevel::Notice) {
     459           0 :       ACE_ERROR((LM_NOTICE,
     460             :         "(%P|%t) NOTICE: Qos_Helper::valid::SubscriberQos, invalid group_data qos.\n"));
     461             :     }
     462           0 :     return false;
     463             :   }
     464             : 
     465           0 :   if (!valid(qos.entity_factory)) {
     466           0 :     if (log_level >= LogLevel::Notice) {
     467           0 :       ACE_ERROR((LM_NOTICE,
     468             :         "(%P|%t) NOTICE: Qos_Helper::valid::SubscriberQos, invalid entity_factory qos.\n"));
     469             :     }
     470           0 :     return false;
     471             :   }
     472             : 
     473           0 :   return true;
     474             : }
     475             : 
     476           0 : bool Qos_Helper::valid(const DDS::DomainParticipantFactoryQos& qos)
     477             : {
     478           0 :   if (!valid(qos.entity_factory)) {
     479           0 :     if (log_level >= LogLevel::Notice) {
     480           0 :       ACE_ERROR((LM_NOTICE,
     481             :         "(%P|%t) NOTICE: Qos_Helper::valid::DomainParticipantFactoryQos, invalid entity_factory qos.\n"));
     482             :     }
     483           0 :     return false;
     484             :   }
     485             : 
     486           0 :   return true;
     487             : }
     488             : 
     489           2 : DataWriterQosBuilder::DataWriterQosBuilder(DDS::Publisher_var publisher)
     490             : {
     491           2 :   const DDS::ReturnCode_t ret = publisher->get_default_datawriter_qos(qos_);
     492           2 :   if (ret != DDS::RETCODE_OK && log_level >= LogLevel::Warning) {
     493           1 :     ACE_ERROR((LM_WARNING,
     494             :                ACE_TEXT("(%P|%t) WARNING: DataWriterQosBuilder: ")
     495             :                ACE_TEXT("could not get_default_datawriter_qos: %C\n"),
     496             :                retcode_to_string(ret)));
     497             :   }
     498           2 : }
     499             : 
     500           2 : DataWriterQosBuilder::DataWriterQosBuilder(DDS::Topic_var topic,
     501           2 :                                            DDS::Publisher_var publisher)
     502             : {
     503           2 :   DDS::TopicQos tqos;
     504           2 :   DDS::ReturnCode_t ret = topic->get_qos(tqos);
     505           2 :   if (ret != DDS::RETCODE_OK && log_level >= LogLevel::Warning) {
     506           1 :     ACE_ERROR((LM_WARNING,
     507             :                ACE_TEXT("(%P|%t) WARNING: DataWriterQosBuilder: ")
     508             :                ACE_TEXT("could not get_qos on topic: %C\n"),
     509             :                retcode_to_string(ret)));
     510             :   }
     511           2 :   ret = publisher->get_default_datawriter_qos(qos_);
     512           2 :   if (ret != DDS::RETCODE_OK && log_level >= LogLevel::Warning) {
     513           1 :     ACE_ERROR((LM_WARNING,
     514             :                ACE_TEXT("(%P|%t) WARNING: DataWriterQosBuilder: ")
     515             :                ACE_TEXT("could not get_default_datawriter_qos: %C\n"),
     516             :                retcode_to_string(ret)));
     517             :   }
     518           2 :   ret = publisher->copy_from_topic_qos(qos_, tqos);
     519           2 :   if (ret != DDS::RETCODE_OK && log_level >= LogLevel::Warning) {
     520           1 :     ACE_ERROR((LM_WARNING,
     521             :                ACE_TEXT("(%P|%t) WARNING: DataWriterQosBuilder: ")
     522             :                ACE_TEXT("could not copy_from_topic: %C\n"),
     523             :                retcode_to_string(ret)));
     524             :   }
     525           2 : }
     526             : 
     527           2 : DataReaderQosBuilder::DataReaderQosBuilder(DDS::Subscriber_var subscriber)
     528             : {
     529           2 :   const DDS::ReturnCode_t ret = subscriber->get_default_datareader_qos(qos_);
     530           2 :   if (ret != DDS::RETCODE_OK && log_level >= LogLevel::Warning) {
     531           1 :     ACE_ERROR((LM_WARNING,
     532             :                ACE_TEXT("(%P|%t) WARNING: DataReaderQosBuilder: ")
     533             :                ACE_TEXT("could not get_default_datareader_qos: %C\n"),
     534             :                retcode_to_string(ret)));
     535             :   }
     536           2 : }
     537             : 
     538           2 : DataReaderQosBuilder::DataReaderQosBuilder(DDS::Topic_var topic,
     539           2 :                                            DDS::Subscriber_var subscriber)
     540             : {
     541           2 :   DDS::TopicQos tqos;
     542           2 :   DDS::ReturnCode_t ret = topic->get_qos(tqos);
     543           2 :   if (ret != DDS::RETCODE_OK && log_level >= LogLevel::Warning) {
     544           1 :     ACE_ERROR((LM_WARNING,
     545             :                ACE_TEXT("(%P|%t) WARNING: DataReaderQosBuilder: ")
     546             :                ACE_TEXT("could not get_qos on topic: %C\n"),
     547             :                retcode_to_string(ret)));
     548             :   }
     549           2 :   ret = subscriber->get_default_datareader_qos(qos_);
     550           2 :   if (ret != DDS::RETCODE_OK && log_level >= LogLevel::Warning) {
     551           1 :     ACE_ERROR((LM_WARNING,
     552             :                ACE_TEXT("(%P|%t) WARNING: DataReaderQosBuilder: ")
     553             :                ACE_TEXT("could not get_default_datareader_qos: %C\n"),
     554             :                retcode_to_string(ret)));
     555             :   }
     556           2 :   ret = subscriber->copy_from_topic_qos(qos_, tqos);
     557           2 :   if (ret != DDS::RETCODE_OK && log_level >= LogLevel::Warning) {
     558           1 :     ACE_ERROR((LM_WARNING,
     559             :                ACE_TEXT("(%P|%t) WARNING: DataReaderQosBuilder: ")
     560             :                ACE_TEXT("could not copy_from_topic: %C\n"),
     561             :                retcode_to_string(ret)));
     562             :   }
     563           2 : }
     564             : 
     565             : } // namespace DCPS
     566             : } // namespace OpenDDS
     567             : 
     568             : OPENDDS_END_VERSIONED_NAMESPACE_DECL

Generated by: LCOV version 1.16