Class BuiltinProtocols

Class Documentation

class BuiltinProtocols

Class BuiltinProtocols that contains builtin endpoints implementing the discovery and liveliness protocols.

Public Functions

bool initBuiltinProtocols(RTPSParticipantImpl *p_part, BuiltinAttributes &attributes)

Initialize the builtin protocols.

Parameters:
  • attributes – Discovery configuration attributes

  • p_part – Pointer to the Participant implementation

Returns:

True if correct.

void enable()

Enable the builtin protocols

bool updateMetatrafficLocators(LocatorList_t &loclist)

Update the metatraffic locatorlist after it was created. Because when you create the EDP readers you are not sure the selected endpoints can be used.

Parameters:

loclist – LocatorList to update

Returns:

True on success

void filter_server_remote_locators(NetworkFactory &nf)

Traverses the list of discover servers filtering out unsupported or not allowed remote locators

Parameters:

nf – NetworkFactory used to make the filtering

bool addLocalWriter(RTPSWriter *w, const TopicAttributes &topicAtt, const fastdds::dds::WriterQos &wqos)

Add a local Writer to the BuiltinProtocols.

Parameters:
  • w – Pointer to the RTPSWriter

  • topicAtt – Attributes of the associated topic

  • wqos – QoS policies dictated by the publisher

Returns:

True if correct.

bool addLocalReader(RTPSReader *R, const TopicAttributes &topicAtt, const fastdds::dds::ReaderQos &rqos, const fastdds::rtps::ContentFilterProperty *content_filter = nullptr)

Add a local Reader to the BuiltinProtocols.

Parameters:
  • R – Pointer to the RTPSReader.

  • topicAtt – Attributes of the associated topic

  • rqos – QoS policies dictated by the subscriber

  • content_filter – Optional content filtering information.

Returns:

True if correct.

bool updateLocalWriter(RTPSWriter *W, const TopicAttributes &topicAtt, const fastdds::dds::WriterQos &wqos)

Update a local Writer QOS

Parameters:
  • W – Writer to update

  • topicAtt – Attributes of the associated topic

  • wqos – New Writer QoS

Returns:

bool updateLocalReader(RTPSReader *R, const TopicAttributes &topicAtt, const fastdds::dds::ReaderQos &qos, const fastdds::rtps::ContentFilterProperty *content_filter = nullptr)

Update a local Reader QOS

Parameters:
  • R – Reader to update

  • topicAtt – Attributes of the associated topic

  • qos – New Reader QoS

  • content_filter – Optional content filtering information.

Returns:

bool removeLocalWriter(RTPSWriter *W)

Remove a local Writer from the builtinProtocols.

Parameters:

W – Pointer to the writer.

Returns:

True if correctly removed.

bool removeLocalReader(RTPSReader *R)

Remove a local Reader from the builtinProtocols.

Parameters:

R – Pointer to the reader.

Returns:

True if correctly removed.

void announceRTPSParticipantState()

Announce RTPSParticipantState (force the sending of a DPD message.)

void stopRTPSParticipantAnnouncement()

Stop the RTPSParticipant Announcement (used in tests to avoid multiple packets being send)

void resetRTPSParticipantAnnouncement()

Reset to timer to make periodic RTPSParticipant Announcements.

inline eprosima::shared_mutex &getDiscoveryMutex() const

Get Discovery mutex

Returns:

Associated Mutex

Public Members

BuiltinAttributes m_att

BuiltinAttributes of the builtin protocols.

RTPSParticipantImpl *mp_participantImpl

Pointer to the RTPSParticipantImpl.

PDP *mp_PDP

Pointer to the PDPSimple.

WLP *mp_WLP

Pointer to the WLP.

fastdds::dds::builtin::TypeLookupManager *tlm_

Pointer to the TypeLookupManager.

LocatorList_t m_metatrafficMulticastLocatorList

Locator list for metatraffic.

LocatorList_t m_metatrafficUnicastLocatorList

Locator List for metatraffic unicast.

LocatorList_t m_initialPeersList

Initial peers.

std::list<eprosima::fastdds::rtps::RemoteServerAttributes> m_DiscoveryServers

Known discovery and backup server container.