RTI Connext Modern C++ API  Version 7.0.0
dds::sub::qos::DataReaderQos Class Reference

<<value-type>> Container of the QoS policies that a dds::sub::DataReader supports More...

#include <dds/sub/qos/DataReaderQos.hpp>

Public Member Functions

 DataReaderQos ()
 Creates a DataReaderQos with the default value for each policy. More...
 
 DataReaderQos (const dds::topic::qos::TopicQos &topic_qos)
 Creates a DataReaderQos with the given TopicQos. More...
 
DataReaderQosoperator= (const dds::topic::qos::TopicQos &topic_qos)
 Copies into this DataReaderQos those policies that are also in TopicQos. More...
 
template<typename POLICY >
const POLICY & policy () const
 Gets a QoS policy by const reference. More...
 
template<typename POLICY >
POLICY & policy ()
 Gets a QoS policy by reference. More...
 
template<typename Policy >
DataReaderQospolicy (const Policy &p)
 Sets a policy. More...
 
template<typename Policy >
DataReaderQosoperator<< (const Policy &p)
 Sets a policy. More...
 
template<typename Policy >
const DataReaderQosoperator>> (Policy &p) const
 Copies the values of a policy. More...
 

Related Functions

(Note that these are not member functions.)

std::string to_string (const DataReaderQos &qos, const rti::core::QosPrintFormat &format=rti::core::QosPrintFormat())
 <<extension>> Obtains a string representation of the dds::sub::qos::DataReaderQos More...
 
std::string to_string (const DataReaderQos &qos, const DataReaderQos &base, const rti::core::QosPrintFormat &format=rti::core::QosPrintFormat())
 <<extension>> Obtains a string representation of the dds::sub::qos::DataReaderQos More...
 
std::string to_string (const DataReaderQos &qos, const rti::core::qos_print_all_t &qos_print_all, const rti::core::QosPrintFormat &format=rti::core::QosPrintFormat())
 <<extension>> Obtains a string representation of the dds::sub::qos::DataReaderQos More...
 
std::ostream & operator<< (std::ostream &out, const rti::sub::qos::DataReaderQos &qos)
 <<extension>> Prints a dds::sub::qos::DataReaderQos to an output stream. More...
 

Detailed Description

<<value-type>> Container of the QoS policies that a dds::sub::DataReader supports

DataReaderQos policies

A DataReaderQos contains the following policies:

To get or set policies use the policy() getters and setters or operator << (see examples).

You must set certain members in a consistent manner:

dds::core::policy::Deadline .period >= dds::core::policy::TimeBasedFilter .minimum_separation

dds::core::policy::History .depth <= dds::core::policy::ResourceLimits .max_samples_per_instance

dds::core::policy::ResourceLimits .max_samples_per_instance <= dds::core::policy::ResourceLimits .max_samples dds::core::policy::ResourceLimits .initial_samples <= dds::core::policy::ResourceLimits .max_samples

dds::core::policy::ResourceLimits .initial_instances <= dds::core::policy::ResourceLimits .max_instances

rti::core::policy::DataReaderResourceLimits .initial_remote_writers_per_instance <= rti::core::policy::DataReaderResourceLimits .max_remote_writers_per_instance

rti::core::policy::DataReaderResourceLimits .initial_infos <= rti::core::policy::DataReaderResourceLimits .max_infos

rti::core::policy::DataReaderResourceLimits .max_remote_writers_per_instance <= rti::core::policy::DataReaderResourceLimits .max_remote_writers

rti::core::policy::DataReaderResourceLimits .max_samples_per_remote_writer <= dds::core::policy::ResourceLimits .max_samples

length of dds::core::policy::UserData .value <= dds::domain::qos::DomainParticipantQos::resource_limits .reader_user_data_max_length

If any of the above are not true, dds::sub::DataReader::qos(const dds::sub::qos::DataReaderQos&) will fail with dds::core::InconsistentPolicyError and the dds::sub::DataReader constructors will fail with dds::core::Error

See also
Qos Use Cases

Constructor & Destructor Documentation

◆ DataReaderQos() [1/2]

dds::sub::qos::DataReaderQos::DataReaderQos ( )

Creates a DataReaderQos with the default value for each policy.

Note
If you configure Qos in XML, obtain the default value from the default QosProvider, since it can be overriden by configuration:

◆ DataReaderQos() [2/2]

dds::sub::qos::DataReaderQos::DataReaderQos ( const dds::topic::qos::TopicQos topic_qos)

Creates a DataReaderQos with the given TopicQos.

A dds::topic::qos::TopicQos contains a subset of the policies of a DataReaderQos. This constructor copies those common policies into this instance while initializing the policies that are only defined in DataReaderQos to their default vaues.

Parameters
topic_qosThe TopicQos bring copied.

Example:

DatareaderQos reader_qos(topic.qos());

Member Function Documentation

◆ operator=()

DataReaderQos& dds::sub::qos::DataReaderQos::operator= ( const dds::topic::qos::TopicQos topic_qos)
inline

Copies into this DataReaderQos those policies that are also in TopicQos.

A dds::topic::qos::TopicQos contains a subset of the policies of a DataReaderQos. This assignment operator copies those common policies into this instance while leaving the policies that are only defined in DataReaderQos unaltered.

Parameters
topic_qosThe TopicQos to copy the common policies from.

For example:

// Load a TopicQos from a Qos profile
TopicQos topic_qos = dds::core::QosProvider::Default().topic_qos("MyLibrary::MyProfile");
// Create a DataReaderQos with the default policies
// Overwrite the policies that are also defined in topic_qos
reader_qos = topic_qos;

◆ policy() [1/3]

template<typename POLICY >
const POLICY& dds::sub::qos::DataReaderQos::policy ( ) const

Gets a QoS policy by const reference.

Template Parameters
PolicyOne of the DataReaderQos policies
See also
Setting Qos Values

◆ policy() [2/3]

template<typename POLICY >
POLICY& dds::sub::qos::DataReaderQos::policy ( )

Gets a QoS policy by reference.

Template Parameters
PolicyOne of the DataReaderQos policies
See also
Setting Qos Values

◆ policy() [3/3]

template<typename Policy >
DataReaderQos& dds::sub::qos::DataReaderQos::policy ( const Policy &  p)
inline

Sets a policy.

See also
policy()
Setting Qos Values

◆ operator<<()

template<typename Policy >
DataReaderQos& dds::sub::qos::DataReaderQos::operator<< ( const Policy &  p)
inline

Sets a policy.

See also
policy()
Setting Qos Values

◆ operator>>()

template<typename Policy >
const DataReaderQos& dds::sub::qos::DataReaderQos::operator>> ( Policy &  p) const
inline

Copies the values of a policy.

Parameters
pThe destination where to copy the current value of the Policy
See also
policy()
Setting Qos Values

Friends And Related Function Documentation

◆ to_string() [1/3]

std::string to_string ( const DataReaderQos qos,
const rti::core::QosPrintFormat format = rti::core::QosPrintFormat() 
)
related

<<extension>> Obtains a string representation of the dds::sub::qos::DataReaderQos

Parameters
qosThe qos object to convert to a string
formatThe optional print format used to format the output string.

The several to_string overloads allow formatting the output and printing only the differences with respect to another Qos object.

// When no QosPrintFormat is supplied, the default is used. Similarly, since
// no base profile has been specified we will only print the differences
// with respect to the documented default for DataReaderQos
// In this overload we are specifying the print format used to format the output
// string.
QosPrintFormat format; // ...;
str = to_string(qos, format);
// Here, the differences between qos and base will be included in the output
// string. If the two qos objects are the same, the resulting string will
// be empty.
DataReaderQos base; // ...;
str = to_string(qos, base);
// We could also specify the format at this point
str = to_string(qos, base, format);
// Instead of supplying a base profile, the sentinel value qos_print_all can
// be supplied. This will result in the entire Qos object being printed (as
// opposed to only the differences with respect to a base qos).

This overload uses the default print format and only prints the differences between qos and the documented default.

Returns
The string representation of the qos

◆ to_string() [2/3]

std::string to_string ( const DataReaderQos qos,
const DataReaderQos base,
const rti::core::QosPrintFormat format = rti::core::QosPrintFormat() 
)
related

<<extension>> Obtains a string representation of the dds::sub::qos::DataReaderQos

Parameters
qosThe qos object to convert to a string
baseThe base qos. Only the differences between base and qos are included in the output string. If you want to print everything within the QoS, use the overload that accepts a rti::core::qos_print_all_t.
formatThe optional print format used to format the output string.

This overload prints the differences between qos and base. If no print format is specified, the default will be used.

Returns
The string representation of the qos

◆ to_string() [3/3]

std::string to_string ( const DataReaderQos qos,
const rti::core::qos_print_all_t qos_print_all,
const rti::core::QosPrintFormat format = rti::core::QosPrintFormat() 
)
related

<<extension>> Obtains a string representation of the dds::sub::qos::DataReaderQos

Parameters
qosThe qos object to convert to a string
qos_print_allThe sentinel value indicating that the entire QoS should be converted to a string. The other overloads of this API only print the differences with respect to a base profile, or to the documented default.
formatThe optional print format used to format the output string.

This overload prints all of the policies within qos. If no print format is specified, the default will be used.

The only valid value for the qos_print_all argument is rti::core::qos_print_all

For example:

Returns
The string representation of the qos

◆ operator<<()

std::ostream & operator<< ( std::ostream &  out,
const rti::sub::qos::DataReaderQos &  qos 
)
related

<<extension>> Prints a dds::sub::qos::DataReaderQos to an output stream.