Function rmw_dds_common::qos_profile_check_compatible

Function Documentation

rmw_ret_t rmw_dds_common::qos_profile_check_compatible(const rmw_qos_profile_t publisher_qos, const rmw_qos_profile_t subscription_qos, rmw_qos_compatibility_type_t *compatibility, char *reason, size_t reason_size)

Check if two QoS profiles are compatible.

Two QoS profiles are compatible if a publisher and subcription using the QoS policies can communicate with each other.

This implements the rmw API rmw_qos_profile_check_compatible(). See rmw_qos_profile_check_compatible() for more information.

Parameters
  • publisher_qos[in] The QoS profile used for a publisher.

  • subscription_qos[in] The QoS profile used for a subscription.

  • compatibility[out] RMW_QOS_COMPATIBILITY_OK if the QoS profiles are compatible, or RMW_QOS_COMPATIBILITY_WARNING if the QoS profiles might be compatible, or RMW_QOS_COMPATIBILITY_ERROR if the QoS profiles are not compatible.

  • reason[out] A detailed reason for a QoS incompatibility or potential incompatibility. Must be pre-allocated by the caller. This parameter is optional and may be set to nullptr if the reason information is not desired.

  • reason_size[in] Size of the string buffer reason, if one is provided. If reason is nullptr, then this parameter must be zero.

Returns

RMW_RET_OK if the check was successful, or

Returns

RMW_RET_INVALID_ARGUMENT if compatiblity is nullptr, or

Returns

RMW_RET_INVALID_ARGUMENT if reason is nullptr and reason_size is not zero, or

Returns

RMW_RET_ERROR if there is an unexpected error.