RTI Connext Modern C++ API Version 7.2.0
rti::core::policy::RemoteParticipantPurgeKind_def Struct Reference

<<extension>> The definition of the dds::core::safe_enum RemoteParticipantPurgeKind More...

#include <PolicyKind.hpp>

Public Types

enum  type {
  LIVELINESS_BASED ,
  NO_PURGE
}
 The underlying enum type. More...
 

Detailed Description

<<extension>> The definition of the dds::core::safe_enum RemoteParticipantPurgeKind

Available behaviors for halting communication with remote participants (and their contained entities) with which discovery communication has been lost.

When discovery communication with a remote participant has been lost, the local participant must make a decision about whether to continue attempting to communicate with that participant and its contained entities. This "kind" is used to select the desired behavior.

This "kind" does not pertain to the situation in which a remote participant has been gracefully deleted and notification of that deletion have been successfully received by its peers. In that case, the local participant will immediately stop attempting to communicate with those entities and will remove the associated remote entity records from its internal database.

See also
rti::core::policy::DiscoveryConfig::remote_participant_purge_kind

Member Enumeration Documentation

◆ type

The underlying enum type.

Enumerator
LIVELINESS_BASED 

[default] Maintain knowledge of the remote participant for as long as it maintains its liveliness contract.

A participant will continue attempting communication with its peers, even if discovery communication with them is lost, as long as the remote participants maintain their liveliness. If both discovery communication and participant liveliness are lost, however, the local participant will remove all records of the remote participant and its contained endpoints, and no further data communication with them will occur until and unless they are rediscovered.

The liveliness contract a participant promises to its peers – its "liveliness lease duration" – is specified in its rti::core::policy::DiscoveryConfig::participant_liveliness_lease_duration QoS field. It maintains that contract by writing data to those other participants with a writer that has a dds::core::policy::LivelinessKind of dds::core::policy::LivelinessKind::AUTOMATIC or dds::core::policy::LivelinessKind::MANUAL_BY_PARTICIPANT and by asserting itself (at the rti::core::policy::DiscoveryConfig::participant_liveliness_assert_period) over the Simple Discovery Protocol.

NO_PURGE 

Never "forget" a remote participant with which discovery communication has been lost.

If a participant with this behavior loses discovery communication with a remote participant, it will nevertheless remember that remote participant and its endpoints and continue attempting to communicate with them indefinitely.

This value has consequences for a participant's resource usage. If discovery communication with a remote participant is lost, but the same participant is later rediscovered, any relevant records that remain in the database will be reused. However, if it is not rediscovered, the records will continue to take up space in the database for as long as the local participant remains in existence.