#include <Qos_Helper.h>
valid - the values are in acceptable ranges without respect to any other values.
consistent - the values are consistent with each other. The spec sometimes calls this "compatible" but I this compatible should be reserved for matching QoS of subscriptions and publications. The spec is confusing in its inconsistency of the use of "compatible" and "consistent".
The qos supported in current implementation: Liveliness : kind = AUTOMATIC Reliability : kind = RELIABLE | BEST_EFFORT max_blocking_time History : kind = KEEP_ALL | KEEP_LAST depth > 1 RESOURCE_LIMITS : max_samples_per_instance
Other than these supported qos, any qos that is different from the initial value is invalid.
None of the supported QoS in the first implementation are changeable. The changed value will be checked per the QoS table in the DDS specification.
Definition at line 94 of file Qos_Helper.h.
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::DomainParticipantFactoryQos & | qos1, | |
const DDS::DomainParticipantFactoryQos & | qos2 | |||
) | [static] |
Definition at line 1469 of file Qos_Helper.inl.
References changeable(), and DDS::DomainParticipantFactoryQos::entity_factory.
01471 { 01472 return changeable(qos1.entity_factory, qos2.entity_factory); 01473 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::SubscriberQos & | qos1, | |
const DDS::SubscriberQos & | qos2 | |||
) | [static] |
Definition at line 1458 of file Qos_Helper.inl.
References changeable(), DDS::SubscriberQos::entity_factory, DDS::SubscriberQos::group_data, DDS::SubscriberQos::partition, and DDS::SubscriberQos::presentation.
01460 { 01461 return 01462 changeable(qos1.presentation, qos2.presentation) 01463 && changeable(qos1.partition, qos2.partition) 01464 && changeable(qos1.group_data, qos2.group_data) 01465 && changeable(qos1.entity_factory, qos2.entity_factory); 01466 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::DataReaderQos & | qos1, | |
const DDS::DataReaderQos & | qos2 | |||
) | [static] |
Definition at line 1439 of file Qos_Helper.inl.
References changeable(), DDS::DataReaderQos::deadline, DDS::DataReaderQos::destination_order, DDS::DataReaderQos::durability, DDS::DataReaderQos::history, DDS::DataReaderQos::latency_budget, DDS::DataReaderQos::liveliness, DDS::DataReaderQos::ownership, DDS::DataReaderQos::reader_data_lifecycle, DDS::DataReaderQos::reliability, DDS::DataReaderQos::resource_limits, DDS::DataReaderQos::time_based_filter, and DDS::DataReaderQos::user_data.
01441 { 01442 return 01443 changeable(qos1.durability, qos2.durability) 01444 && changeable(qos1.deadline, qos2.deadline) 01445 && changeable(qos1.latency_budget, qos2.latency_budget) 01446 && changeable(qos1.liveliness, qos2.liveliness) 01447 && changeable(qos1.reliability, qos2.reliability) 01448 && changeable(qos1.destination_order, qos2.destination_order) 01449 && changeable(qos1.history, qos2.history) 01450 && changeable(qos1.resource_limits, qos2.resource_limits) 01451 && changeable(qos1.user_data, qos2.user_data) 01452 && changeable(qos1.time_based_filter, qos2.time_based_filter) 01453 && changeable(qos1.reader_data_lifecycle, qos2.reader_data_lifecycle) 01454 && changeable(qos1.ownership, qos2.ownership); 01455 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::PublisherQos & | qos1, | |
const DDS::PublisherQos & | qos2 | |||
) | [static] |
Definition at line 1428 of file Qos_Helper.inl.
References changeable(), DDS::PublisherQos::entity_factory, DDS::PublisherQos::group_data, DDS::PublisherQos::partition, and DDS::PublisherQos::presentation.
01430 { 01431 return 01432 changeable(qos1.presentation, qos2.presentation) 01433 && changeable(qos1.partition, qos2.partition) 01434 && changeable(qos1.group_data, qos2.group_data) 01435 && changeable(qos1.entity_factory, qos2.entity_factory); 01436 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::DataWriterQos & | qos1, | |
const DDS::DataWriterQos & | qos2 | |||
) | [static] |
Definition at line 1403 of file Qos_Helper.inl.
References changeable(), DDS::DataWriterQos::deadline, DDS::DataWriterQos::destination_order, DDS::DataWriterQos::durability, DDS::DataWriterQos::durability_service, DDS::DataWriterQos::history, DDS::DataWriterQos::latency_budget, DDS::DataWriterQos::lifespan, DDS::DataWriterQos::liveliness, DDS::DataWriterQos::ownership, DDS::DataWriterQos::ownership_strength, DDS::DataWriterQos::resource_limits, DDS::DataWriterQos::transport_priority, DDS::DataWriterQos::user_data, and DDS::DataWriterQos::writer_data_lifecycle.
01405 { 01406 return 01407 changeable(qos1.durability, qos2.durability) 01408 #ifndef OPENDDS_NO_PERSISTENCE_PROFILE 01409 && changeable(qos1.durability_service, qos2.durability_service) 01410 #endif 01411 && changeable(qos1.deadline, qos2.deadline) 01412 && changeable(qos1.latency_budget, qos2.latency_budget) 01413 && changeable(qos1.liveliness, qos2.liveliness) 01414 && changeable(qos1.destination_order, qos2.destination_order) 01415 && changeable(qos1.history, qos2.history) 01416 && changeable(qos1.resource_limits, qos2.resource_limits) 01417 && changeable(qos1.transport_priority, qos2.transport_priority) 01418 && changeable(qos1.lifespan, qos2.lifespan) 01419 && changeable(qos1.user_data, qos2.user_data) 01420 && changeable(qos1.ownership, qos2.ownership) 01421 #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE 01422 && changeable(qos1.ownership_strength, qos2.ownership_strength) 01423 #endif 01424 && changeable(qos1.writer_data_lifecycle, qos2.writer_data_lifecycle); 01425 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::TopicQos & | qos1, | |
const DDS::TopicQos & | qos2 | |||
) | [static] |
Definition at line 1382 of file Qos_Helper.inl.
References changeable(), DDS::TopicQos::deadline, DDS::TopicQos::destination_order, DDS::TopicQos::durability, DDS::TopicQos::durability_service, DDS::TopicQos::history, DDS::TopicQos::latency_budget, DDS::TopicQos::lifespan, DDS::TopicQos::liveliness, DDS::TopicQos::ownership, DDS::TopicQos::resource_limits, DDS::TopicQos::topic_data, and DDS::TopicQos::transport_priority.
01384 { 01385 return 01386 changeable(qos1.topic_data, qos2.topic_data) 01387 && changeable(qos1.durability, qos2.durability) 01388 #ifndef OPENDDS_NO_PERSISTENCE_PROFILE 01389 && changeable(qos1.durability_service, qos2.durability_service) 01390 #endif 01391 && changeable(qos1.deadline, qos2.deadline) 01392 && changeable(qos1.latency_budget, qos2.latency_budget) 01393 && changeable(qos1.liveliness, qos2.liveliness) 01394 && changeable(qos1.destination_order, qos2.destination_order) 01395 && changeable(qos1.history, qos2.history) 01396 && changeable(qos1.resource_limits, qos2.resource_limits) 01397 && changeable(qos1.transport_priority, qos2.transport_priority) 01398 && changeable(qos1.lifespan, qos2.lifespan) 01399 && changeable(qos1.ownership, qos2.ownership); 01400 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::DomainParticipantQos & | qos1, | |
const DDS::DomainParticipantQos & | qos2 | |||
) | [static] |
Definition at line 1373 of file Qos_Helper.inl.
References changeable(), DDS::DomainParticipantQos::entity_factory, and DDS::DomainParticipantQos::user_data.
01375 { 01376 return 01377 changeable(qos1.user_data, qos2.user_data) 01378 && changeable(qos1.entity_factory, qos2.entity_factory); 01379 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::ReaderDataLifecycleQosPolicy & | qos1, | |
const DDS::ReaderDataLifecycleQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::WriterDataLifecycleQosPolicy & | qos1, | |
const DDS::WriterDataLifecycleQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::EntityFactoryQosPolicy & | qos1, | |
const DDS::EntityFactoryQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::ResourceLimitsQosPolicy & | qos1, | |
const DDS::ResourceLimitsQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::HistoryQosPolicy & | qos1, | |
const DDS::HistoryQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::DestinationOrderQosPolicy & | qos1, | |
const DDS::DestinationOrderQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::ReliabilityQosPolicy & | qos1, | |
const DDS::ReliabilityQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::PartitionQosPolicy & | qos1, | |
const DDS::PartitionQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::TimeBasedFilterQosPolicy & | qos1, | |
const DDS::TimeBasedFilterQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::LivelinessQosPolicy & | qos1, | |
const DDS::LivelinessQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::OwnershipStrengthQosPolicy & | qos1, | |
const DDS::OwnershipStrengthQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::OwnershipQosPolicy & | qos1, | |
const DDS::OwnershipQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::LatencyBudgetQosPolicy & | qos1, | |
const DDS::LatencyBudgetQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::DeadlineQosPolicy & | qos1, | |
const DDS::DeadlineQosPolicy & | qos2 | |||
) | [static] |
TBD: These QoS are not supported currently, they are changeable, but need a compatibility check between the publisher and subscriber ends when changing the QoS.
Definition at line 1265 of file Qos_Helper.inl.
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::PresentationQosPolicy & | qos1, | |
const DDS::PresentationQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::DurabilityServiceQosPolicy & | qos1, | |
const DDS::DurabilityServiceQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::DurabilityQosPolicy & | qos1, | |
const DDS::DurabilityQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::LifespanQosPolicy & | qos1, | |
const DDS::LifespanQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::TransportPriorityQosPolicy & | qos1, | |
const DDS::TransportPriorityQosPolicy & | qos2 | |||
) | [static] |
Definition at line 1209 of file Qos_Helper.inl.
01212 { 01213 // formal/07-01-01 specifies that this is changeable. OpenDDS as 01214 // of Version 1.3 does not support dynamic modification of the 01215 // priority of a single DataWriter TRANSPORT_PRIORITY.value. 01216 // 01217 // return true; 01218 return qos1 == qos2; 01219 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::GroupDataQosPolicy & | qos1, | |
const DDS::GroupDataQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::TopicDataQosPolicy & | qos1, | |
const DDS::TopicDataQosPolicy & | qos2 | |||
) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::changeable | ( | const DDS::UserDataQosPolicy & | qos1, | |
const DDS::UserDataQosPolicy & | qos2 | |||
) | [static] |
Definition at line 1188 of file Qos_Helper.inl.
Referenced by changeable(), OpenDDS::DCPS::TopicImpl::set_qos(), OpenDDS::DCPS::SubscriberImpl::set_qos(), OpenDDS::DCPS::ReplayerImpl::set_qos(), OpenDDS::DCPS::PublisherImpl::set_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_qos(), OpenDDS::DCPS::DomainParticipantFactoryImpl::set_qos(), OpenDDS::DCPS::DataWriterImpl::set_qos(), and OpenDDS::DCPS::DataReaderImpl::set_qos().
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::DomainParticipantFactoryQos & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::SubscriberQos & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::DataReaderQos & | qos | ) | [static] |
Definition at line 869 of file Qos_Helper.inl.
References consistent(), DDS::DataReaderQos::deadline, DDS::DataReaderQos::history, DDS::DataReaderQos::resource_limits, and DDS::DataReaderQos::time_based_filter.
00870 { 00871 return 00872 consistent(qos.deadline, qos.time_based_filter) && 00873 consistent(qos.resource_limits, qos.history); 00874 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::PublisherQos & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::DataWriterQos & | qos | ) | [static] |
Definition at line 834 of file Qos_Helper.inl.
References consistent(), DDS::DataWriterQos::durability_service, DDS::DataWriterQos::history, and DDS::DataWriterQos::resource_limits.
00835 { 00836 // Leverage existing validation functions for related QoS 00837 // policies. 00838 00839 #ifndef OPENDDS_NO_PERSISTENCE_PROFILE 00840 DDS::HistoryQosPolicy const ds_history = { 00841 qos.durability_service.history_kind, 00842 qos.durability_service.history_depth 00843 }; 00844 00845 DDS::ResourceLimitsQosPolicy const ds_resource_limits = { 00846 qos.durability_service.max_samples, 00847 qos.durability_service.max_instances, 00848 qos.durability_service.max_samples_per_instance 00849 }; 00850 00851 return 00852 consistent(qos.resource_limits, qos.history) 00853 && consistent(ds_resource_limits, ds_history); 00854 #else 00855 ACE_UNUSED_ARG(qos); 00856 return true; 00857 #endif 00858 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::TopicQos & | qos | ) | [static] |
Definition at line 806 of file Qos_Helper.inl.
References consistent(), DDS::TopicQos::durability_service, DDS::TopicQos::history, and DDS::TopicQos::resource_limits.
00807 { 00808 // Leverage existing validation functions for related QoS 00809 // policies. 00810 00811 #ifndef OPENDDS_NO_PERSISTENCE_PROFILE 00812 DDS::HistoryQosPolicy const ds_history = { 00813 qos.durability_service.history_kind, 00814 qos.durability_service.history_depth 00815 }; 00816 00817 DDS::ResourceLimitsQosPolicy const ds_resource_limits = { 00818 qos.durability_service.max_samples, 00819 qos.durability_service.max_instances, 00820 qos.durability_service.max_samples_per_instance 00821 }; 00822 00823 return 00824 consistent(qos.resource_limits, qos.history) 00825 && consistent(ds_resource_limits, ds_history); 00826 #else 00827 ACE_UNUSED_ARG(qos); 00828 return true; 00829 #endif 00830 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::DomainParticipantQos & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::DeadlineQosPolicy & | deadline, | |
const DDS::TimeBasedFilterQosPolicy & | time_based_filter | |||
) | [static] |
Definition at line 793 of file Qos_Helper.inl.
References DDS::TimeBasedFilterQosPolicy::minimum_separation, and DDS::DeadlineQosPolicy::period.
00795 { 00796 return time_based_filter.minimum_separation <= deadline.period; 00797 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::consistent | ( | const DDS::ResourceLimitsQosPolicy & | resource_limits, | |
const DDS::HistoryQosPolicy & | history | |||
) | [static] |
Definition at line 776 of file Qos_Helper.inl.
References DDS::HistoryQosPolicy::depth, DDS::LENGTH_UNLIMITED, DDS::ResourceLimitsQosPolicy::max_samples, max_samples, and DDS::ResourceLimitsQosPolicy::max_samples_per_instance.
Referenced by consistent(), copy_from_topic_qos(), OpenDDS::DCPS::DomainParticipantFactoryImpl::create_participant(), OpenDDS::DCPS::DomainParticipantImpl::create_topic_i(), OpenDDS::DCPS::SubscriberImpl::set_default_datareader_qos(), OpenDDS::DCPS::PublisherImpl::set_default_datawriter_qos(), OpenDDS::DCPS::DomainParticipantFactoryImpl::set_default_participant_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_default_publisher_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_default_subscriber_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_default_topic_qos(), OpenDDS::DCPS::TopicImpl::set_qos(), OpenDDS::DCPS::SubscriberImpl::set_qos(), OpenDDS::DCPS::ReplayerImpl::set_qos(), OpenDDS::DCPS::PublisherImpl::set_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_qos(), OpenDDS::DCPS::DomainParticipantFactoryImpl::set_qos(), OpenDDS::DCPS::DataWriterImpl::set_qos(), OpenDDS::DCPS::DataReaderImpl::set_qos(), OpenDDS::DCPS::SubscriberImpl::validate_datareader_qos(), OpenDDS::DCPS::PublisherImpl::validate_datawriter_qos(), OpenDDS::DCPS::DomainParticipantImpl::validate_publisher_qos(), and OpenDDS::DCPS::DomainParticipantImpl::validate_subscriber_qos().
00779 { 00780 CORBA::Long const max_samples_per_instance = 00781 resource_limits.max_samples_per_instance; 00782 CORBA::Long const max_samples = resource_limits.max_samples; 00783 00784 return 00785 (max_samples_per_instance == DDS::LENGTH_UNLIMITED 00786 || (max_samples_per_instance >= history.depth 00787 && (max_samples == DDS::LENGTH_UNLIMITED 00788 || max_samples >= max_samples_per_instance))); 00789 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::copy_from_topic_qos | ( | DDS::DataWriterQos & | a_datareader_qos, | |
const DDS::TopicQos & | a_topic_qos | |||
) | [static] |
Definition at line 1497 of file Qos_Helper.inl.
References consistent(), DDS::DataWriterQos::deadline, DDS::DataWriterQos::destination_order, DDS::DataWriterQos::durability, DDS::DataWriterQos::durability_service, DDS::DataWriterQos::history, DDS::DataWriterQos::latency_budget, DDS::DataWriterQos::lifespan, DDS::DataWriterQos::liveliness, DDS::DataWriterQos::ownership, DDS::DataWriterQos::reliability, DDS::DataWriterQos::resource_limits, DDS::DataWriterQos::transport_priority, and valid().
01499 { 01500 if (!Qos_Helper::valid(a_topic_qos) || !Qos_Helper::consistent(a_topic_qos)) { 01501 return false; 01502 } 01503 // Some members in the DataWriterQos are not contained 01504 // in the TopicQos. The caller needs initialize them. 01505 a_datawriter_qos.durability = a_topic_qos.durability; 01506 #ifndef OPENDDS_NO_PERSISTENCE_PROFILE 01507 a_datawriter_qos.durability_service = a_topic_qos.durability_service; 01508 #endif 01509 a_datawriter_qos.deadline = a_topic_qos.deadline; 01510 a_datawriter_qos.latency_budget = a_topic_qos.latency_budget; 01511 a_datawriter_qos.liveliness = a_topic_qos.liveliness; 01512 a_datawriter_qos.reliability = a_topic_qos.reliability; 01513 a_datawriter_qos.destination_order = a_topic_qos.destination_order; 01514 a_datawriter_qos.history = a_topic_qos.history; 01515 a_datawriter_qos.resource_limits = a_topic_qos.resource_limits; 01516 a_datawriter_qos.transport_priority = a_topic_qos.transport_priority; 01517 a_datawriter_qos.lifespan = a_topic_qos.lifespan; 01518 a_datawriter_qos.ownership = a_topic_qos.ownership; 01519 return true; 01520 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::copy_from_topic_qos | ( | DDS::DataReaderQos & | a_datareader_qos, | |
const DDS::TopicQos & | a_topic_qos | |||
) | [static] |
Definition at line 1476 of file Qos_Helper.inl.
References consistent(), DDS::DataReaderQos::deadline, DDS::DataReaderQos::destination_order, DDS::DataReaderQos::durability, DDS::DataReaderQos::history, DDS::DataReaderQos::latency_budget, DDS::DataReaderQos::liveliness, DDS::DataReaderQos::ownership, DDS::DataReaderQos::reliability, DDS::DataReaderQos::resource_limits, and valid().
Referenced by OpenDDS::DCPS::SubscriberImpl::copy_from_topic_qos(), OpenDDS::DCPS::PublisherImpl::copy_from_topic_qos(), OpenDDS::DCPS::SubscriberImpl::validate_datareader_qos(), and OpenDDS::DCPS::PublisherImpl::validate_datawriter_qos().
01478 { 01479 if (!Qos_Helper::valid(a_topic_qos) || !Qos_Helper::consistent(a_topic_qos)) { 01480 return false; 01481 } 01482 // the caller can get the default before calling this 01483 // method if it wants to. 01484 a_datareader_qos.durability = a_topic_qos.durability; 01485 a_datareader_qos.deadline = a_topic_qos.deadline; 01486 a_datareader_qos.latency_budget = a_topic_qos.latency_budget; 01487 a_datareader_qos.liveliness = a_topic_qos.liveliness; 01488 a_datareader_qos.reliability = a_topic_qos.reliability; 01489 a_datareader_qos.destination_order = a_topic_qos.destination_order; 01490 a_datareader_qos.history = a_topic_qos.history; 01491 a_datareader_qos.resource_limits = a_topic_qos.resource_limits; 01492 a_datareader_qos.ownership = a_topic_qos.ownership; 01493 return true; 01494 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::DomainParticipantFactoryQos & | qos | ) | [static] |
Definition at line 1182 of file Qos_Helper.inl.
References DDS::DomainParticipantFactoryQos::entity_factory, and valid().
01183 { 01184 return valid(qos.entity_factory); 01185 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::SubscriberQos & | qos | ) | [static] |
Definition at line 1172 of file Qos_Helper.inl.
References DDS::SubscriberQos::entity_factory, DDS::SubscriberQos::group_data, DDS::SubscriberQos::partition, DDS::SubscriberQos::presentation, and valid().
01173 { 01174 return 01175 valid(qos.presentation) 01176 && valid(qos.partition) 01177 && valid(qos.group_data) 01178 && valid(qos.entity_factory); 01179 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::DataReaderQos & | qos | ) | [static] |
Definition at line 1154 of file Qos_Helper.inl.
References DDS::DataReaderQos::deadline, DDS::DataReaderQos::destination_order, DDS::DataReaderQos::durability, DDS::DataReaderQos::history, DDS::DataReaderQos::latency_budget, DDS::DataReaderQos::liveliness, DDS::DataReaderQos::ownership, DDS::DataReaderQos::reader_data_lifecycle, DDS::DataReaderQos::reliability, DDS::DataReaderQos::resource_limits, DDS::DataReaderQos::time_based_filter, DDS::DataReaderQos::user_data, and valid().
01155 { 01156 return 01157 valid(qos.durability) 01158 && valid(qos.deadline) 01159 && valid(qos.latency_budget) 01160 && valid(qos.liveliness) 01161 && valid(qos.reliability) 01162 && valid(qos.destination_order) 01163 && valid(qos.history) 01164 && valid(qos.resource_limits) 01165 && valid(qos.user_data) 01166 && valid(qos.time_based_filter) 01167 && valid(qos.reader_data_lifecycle) 01168 && valid(qos.ownership); 01169 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::PublisherQos & | qos | ) | [static] |
Definition at line 1144 of file Qos_Helper.inl.
References DDS::PublisherQos::entity_factory, DDS::PublisherQos::group_data, DDS::PublisherQos::partition, DDS::PublisherQos::presentation, and valid().
01145 { 01146 return 01147 valid(qos.presentation) 01148 && valid(qos.partition) 01149 && valid(qos.group_data) 01150 && valid(qos.entity_factory); 01151 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::DataWriterQos & | qos | ) | [static] |
Definition at line 1120 of file Qos_Helper.inl.
References DDS::DataWriterQos::deadline, DDS::DataWriterQos::destination_order, DDS::DataWriterQos::durability, DDS::DataWriterQos::durability_service, DDS::DataWriterQos::history, DDS::DataWriterQos::latency_budget, DDS::DataWriterQos::lifespan, DDS::DataWriterQos::liveliness, DDS::DataWriterQos::ownership, DDS::DataWriterQos::ownership_strength, DDS::DataWriterQos::resource_limits, DDS::DataWriterQos::transport_priority, DDS::DataWriterQos::user_data, valid(), and DDS::DataWriterQos::writer_data_lifecycle.
01121 { 01122 return 01123 valid(qos.durability) 01124 #ifndef OPENDDS_NO_PERSISTENCE_PROFILE 01125 && valid(qos.durability_service) 01126 #endif 01127 && valid(qos.deadline) 01128 && valid(qos.latency_budget) 01129 && valid(qos.liveliness) 01130 && valid(qos.destination_order) 01131 && valid(qos.history) 01132 && valid(qos.resource_limits) 01133 && valid(qos.transport_priority) 01134 && valid(qos.lifespan) 01135 && valid(qos.user_data) 01136 && valid(qos.ownership) 01137 #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE 01138 && valid(qos.ownership_strength) 01139 #endif 01140 && valid(qos.writer_data_lifecycle); 01141 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::TopicQos & | qos | ) | [static] |
Definition at line 1100 of file Qos_Helper.inl.
References DDS::TopicQos::deadline, DDS::TopicQos::destination_order, DDS::TopicQos::durability, DDS::TopicQos::durability_service, DDS::TopicQos::history, DDS::TopicQos::latency_budget, DDS::TopicQos::lifespan, DDS::TopicQos::liveliness, DDS::TopicQos::ownership, DDS::TopicQos::resource_limits, DDS::TopicQos::topic_data, DDS::TopicQos::transport_priority, and valid().
01101 { 01102 return 01103 valid(qos.topic_data) 01104 && valid(qos.durability) 01105 #ifndef OPENDDS_NO_PERSISTENCE_PROFILE 01106 && valid(qos.durability_service) 01107 #endif 01108 && valid(qos.deadline) 01109 && valid(qos.latency_budget) 01110 && valid(qos.liveliness) 01111 && valid(qos.destination_order) 01112 && valid(qos.history) 01113 && valid(qos.resource_limits) 01114 && valid(qos.transport_priority) 01115 && valid(qos.lifespan) 01116 && valid(qos.ownership); 01117 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::DomainParticipantQos & | qos | ) | [static] |
Definition at line 1094 of file Qos_Helper.inl.
References DDS::DomainParticipantQos::entity_factory, DDS::DomainParticipantQos::user_data, and valid().
01095 { 01096 return valid(qos.user_data) && valid(qos.entity_factory); 01097 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::ReaderDataLifecycleQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::WriterDataLifecycleQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::EntityFactoryQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::ResourceLimitsQosPolicy & | qos | ) | [static] |
Definition at line 1039 of file Qos_Helper.inl.
References DDS::LENGTH_UNLIMITED, DDS::ResourceLimitsQosPolicy::max_instances, DDS::ResourceLimitsQosPolicy::max_samples, and DDS::ResourceLimitsQosPolicy::max_samples_per_instance.
01040 { 01041 return 01042 (qos.max_samples == DDS::LENGTH_UNLIMITED 01043 || qos.max_samples > 0) 01044 && (qos.max_instances == DDS::LENGTH_UNLIMITED 01045 || qos.max_instances > 0) 01046 && (qos.max_samples_per_instance == DDS::LENGTH_UNLIMITED 01047 || qos.max_samples_per_instance > 0); 01048 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::HistoryQosPolicy & | qos | ) | [static] |
Definition at line 1028 of file Qos_Helper.inl.
References DDS::HistoryQosPolicy::depth, DDS::KEEP_ALL_HISTORY_QOS, DDS::KEEP_LAST_HISTORY_QOS, DDS::HistoryQosPolicy::kind, and DDS::LENGTH_UNLIMITED.
01029 { 01030 return 01031 (qos.kind == DDS::KEEP_LAST_HISTORY_QOS 01032 || qos.kind == DDS::KEEP_ALL_HISTORY_QOS) 01033 && (qos.depth == DDS::LENGTH_UNLIMITED 01034 || qos.depth > 0); 01035 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::DestinationOrderQosPolicy & | qos | ) | [static] |
Definition at line 1020 of file Qos_Helper.inl.
References DDS::BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, DDS::BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS, and DDS::DestinationOrderQosPolicy::kind.
01021 { 01022 return qos.kind == DDS::BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS 01023 || qos.kind == DDS::BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS; 01024 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::ReliabilityQosPolicy & | qos | ) | [static] |
Definition at line 1012 of file Qos_Helper.inl.
References DDS::BEST_EFFORT_RELIABILITY_QOS, DDS::ReliabilityQosPolicy::kind, and DDS::RELIABLE_RELIABILITY_QOS.
01013 { 01014 return 01015 qos.kind == DDS::BEST_EFFORT_RELIABILITY_QOS 01016 || qos.kind == DDS::RELIABLE_RELIABILITY_QOS; 01017 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::PartitionQosPolicy & | qos | ) | [static] |
Definition at line 1003 of file Qos_Helper.inl.
01004 { 01005 // All strings are valid, although we may not accept all 01006 // wildcard patterns. For now we treat unsupported wildcard 01007 // patterns literally instead of as wildcards. 01008 return true; 01009 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::TimeBasedFilterQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::LivelinessQosPolicy & | qos | ) | [static] |
Definition at line 985 of file Qos_Helper.inl.
References DDS::AUTOMATIC_LIVELINESS_QOS, DDS::LivelinessQosPolicy::kind, DDS::LivelinessQosPolicy::lease_duration, DDS::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, DDS::MANUAL_BY_TOPIC_LIVELINESS_QOS, and OpenDDS::DCPS::valid_duration().
00986 { 00987 return 00988 (qos.kind == DDS::AUTOMATIC_LIVELINESS_QOS 00989 || qos.kind == DDS::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS 00990 || qos.kind == DDS::MANUAL_BY_TOPIC_LIVELINESS_QOS) 00991 00992 && valid_duration(qos.lease_duration); 00993 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::OwnershipStrengthQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::OwnershipQosPolicy & | qos | ) | [static] |
Definition at line 966 of file Qos_Helper.inl.
References DDS::EXCLUSIVE_OWNERSHIP_QOS, DDS::OwnershipQosPolicy::kind, and DDS::SHARED_OWNERSHIP_QOS.
00967 { 00968 return 00969 qos.kind == DDS::SHARED_OWNERSHIP_QOS 00970 #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE 00971 || qos.kind == DDS::EXCLUSIVE_OWNERSHIP_QOS 00972 #endif 00973 ; 00974 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::LatencyBudgetQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::DeadlineQosPolicy & | qos | ) | [static] |
Definition at line 954 of file Qos_Helper.inl.
References DDS::DeadlineQosPolicy::period, and OpenDDS::DCPS::valid_duration().
00955 { 00956 return valid_duration(qos.period); 00957 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::PresentationQosPolicy & | qos | ) | [static] |
Definition at line 945 of file Qos_Helper.inl.
References DDS::PresentationQosPolicy::access_scope, DDS::GROUP_PRESENTATION_QOS, DDS::INSTANCE_PRESENTATION_QOS, and DDS::TOPIC_PRESENTATION_QOS.
00946 { 00947 return 00948 (qos.access_scope == DDS::INSTANCE_PRESENTATION_QOS 00949 || qos.access_scope == DDS::TOPIC_PRESENTATION_QOS 00950 || qos.access_scope == DDS::GROUP_PRESENTATION_QOS); 00951 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::DurabilityServiceQosPolicy & | qos | ) | [static] |
Definition at line 1053 of file Qos_Helper.inl.
References DDS::DurabilityServiceQosPolicy::history_depth, DDS::DurabilityServiceQosPolicy::history_kind, DDS::DurabilityServiceQosPolicy::max_instances, DDS::DurabilityServiceQosPolicy::max_samples, DDS::DurabilityServiceQosPolicy::max_samples_per_instance, OpenDDS::DCPS::non_negative_duration(), DDS::DurabilityServiceQosPolicy::service_cleanup_delay, and valid().
01054 { 01055 // Leverage existing validation functions for related QoS 01056 // policies. 01057 DDS::HistoryQosPolicy const history = { 01058 qos.history_kind, 01059 qos.history_depth 01060 }; 01061 01062 DDS::ResourceLimitsQosPolicy const resource_limits = { 01063 qos.max_samples, 01064 qos.max_instances, 01065 qos.max_samples_per_instance 01066 }; 01067 01068 return 01069 non_negative_duration(qos.service_cleanup_delay) 01070 && valid(history) 01071 && valid(resource_limits); 01072 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::DurabilityQosPolicy & | qos | ) | [static] |
Definition at line 935 of file Qos_Helper.inl.
References DDS::DurabilityQosPolicy::kind, DDS::PERSISTENT_DURABILITY_QOS, DDS::TRANSIENT_DURABILITY_QOS, DDS::TRANSIENT_LOCAL_DURABILITY_QOS, and DDS::VOLATILE_DURABILITY_QOS.
00936 { 00937 return 00938 (qos.kind == DDS::VOLATILE_DURABILITY_QOS 00939 || qos.kind == DDS::TRANSIENT_LOCAL_DURABILITY_QOS 00940 || qos.kind == DDS::TRANSIENT_DURABILITY_QOS 00941 || qos.kind == DDS::PERSISTENT_DURABILITY_QOS); 00942 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::LifespanQosPolicy & | qos | ) | [static] |
Definition at line 928 of file Qos_Helper.inl.
References DDS::LifespanQosPolicy::duration, and OpenDDS::DCPS::valid_duration().
00929 { 00930 return valid_duration(qos.duration); 00931 }
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::TransportPriorityQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::GroupDataQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::TopicDataQosPolicy & | qos | ) | [static] |
ACE_INLINE bool OpenDDS::DCPS::Qos_Helper::valid | ( | const DDS::UserDataQosPolicy & | qos | ) | [static] |
Definition at line 903 of file Qos_Helper.inl.
Referenced by copy_from_topic_qos(), OpenDDS::DCPS::DomainParticipantFactoryImpl::create_participant(), OpenDDS::DCPS::DomainParticipantImpl::create_topic_i(), OpenDDS::DCPS::SubscriberImpl::set_default_datareader_qos(), OpenDDS::DCPS::PublisherImpl::set_default_datawriter_qos(), OpenDDS::DCPS::DomainParticipantFactoryImpl::set_default_participant_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_default_publisher_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_default_subscriber_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_default_topic_qos(), OpenDDS::DCPS::TopicImpl::set_qos(), OpenDDS::DCPS::SubscriberImpl::set_qos(), OpenDDS::DCPS::ReplayerImpl::set_qos(), OpenDDS::DCPS::PublisherImpl::set_qos(), OpenDDS::DCPS::DomainParticipantImpl::set_qos(), OpenDDS::DCPS::DomainParticipantFactoryImpl::set_qos(), OpenDDS::DCPS::DataWriterImpl::set_qos(), OpenDDS::DCPS::DataReaderImpl::set_qos(), valid(), OpenDDS::DCPS::SubscriberImpl::validate_datareader_qos(), OpenDDS::DCPS::PublisherImpl::validate_datawriter_qos(), OpenDDS::DCPS::DomainParticipantImpl::validate_publisher_qos(), and OpenDDS::DCPS::DomainParticipantImpl::validate_subscriber_qos().