Fast DDS  Version 3.0.0
Fast DDS
Loading...
Searching...
No Matches

Class Publisher, used to send data to associated subscribers. More...

#include <Publisher.hpp>

Inheritance diagram for Publisher:

Public Member Functions

virtual ~Publisher ()
 Destructor.
 
FASTDDS_EXPORTED_API ReturnCode_t enable () override
 This operation enables the Publisher.
 
FASTDDS_EXPORTED_API const PublisherQosget_qos () const
 Allows accessing the Publisher Qos.
 
FASTDDS_EXPORTED_API ReturnCode_t get_qos (PublisherQos &qos) const
 Retrieves the Publisher Qos.
 
FASTDDS_EXPORTED_API ReturnCode_t set_qos (const PublisherQos &qos)
 Allows modifying the Publisher Qos.
 
FASTDDS_EXPORTED_API const PublisherListenerget_listener () const
 Retrieves the attached PublisherListener.
 
FASTDDS_EXPORTED_API ReturnCode_t set_listener (PublisherListener *listener)
 Modifies the PublisherListener, sets the mask to StatusMask::all()
 
FASTDDS_EXPORTED_API ReturnCode_t set_listener (PublisherListener *listener, const StatusMask &mask)
 Modifies the PublisherListener.
 
FASTDDS_EXPORTED_API DataWritercreate_datawriter (Topic *topic, const DataWriterQos &qos, DataWriterListener *listener=nullptr, const StatusMask &mask=StatusMask::all(), std::shared_ptr< fastdds::rtps::IPayloadPool > payload_pool=nullptr)
 This operation creates a DataWriter.
 
FASTDDS_EXPORTED_API DataWritercreate_datawriter_with_profile (Topic *topic, const std::string &profile_name, DataWriterListener *listener=nullptr, const StatusMask &mask=StatusMask::all(), std::shared_ptr< fastdds::rtps::IPayloadPool > payload_pool=nullptr)
 This operation creates a DataWriter.
 
FASTDDS_EXPORTED_API ReturnCode_t delete_datawriter (const DataWriter *writer)
 This operation deletes a DataWriter that belongs to the Publisher.
 
FASTDDS_EXPORTED_API DataWriterlookup_datawriter (const std::string &topic_name) const
 This operation retrieves a previously created DataWriter belonging to the Publisher that is attached to a Topic with a matching topic_name.
 
FASTDDS_EXPORTED_API ReturnCode_t suspend_publications ()
 Indicates to FastDDS that the contained DataWriters are about to be modified.
 
FASTDDS_EXPORTED_API ReturnCode_t resume_publications ()
 Indicates to FastDDS that the modifications to the DataWriters are complete.
 
FASTDDS_EXPORTED_API ReturnCode_t begin_coherent_changes ()
 Signals the beginning of a set of coherent cache changes using the Datawriters attached to the publisher.
 
FASTDDS_EXPORTED_API ReturnCode_t end_coherent_changes ()
 Signals the end of a set of coherent cache changes.
 
FASTDDS_EXPORTED_API ReturnCode_t wait_for_acknowledgments (const fastdds::dds::Duration_t &max_wait)
 This operation blocks the calling thread until either all data written by the reliable DataWriter entities is acknowledged by all matched reliable DataReader entities, or else the duration specified by the max_wait parameter elapses, whichever happens first.
 
FASTDDS_EXPORTED_API const DomainParticipantget_participant () const
 This operation returns the DomainParticipant to which the Publisher belongs.
 
FASTDDS_EXPORTED_API ReturnCode_t delete_contained_entities ()
 Deletes all contained DataWriters.
 
FASTDDS_EXPORTED_API ReturnCode_t set_default_datawriter_qos (const DataWriterQos &qos)
 This operation sets a default value of the DataWriter QoS policies which will be used for newly created DataWriter entities in the case where the QoS policies are defaulted in the create_datawriter operation.
 
FASTDDS_EXPORTED_API const DataWriterQosget_default_datawriter_qos () const
 This operation returns the default value of the DataWriter QoS, that is, the QoS policies which will be used for newly created DataWriter entities in the case where the QoS policies are defaulted in the create_datawriter operation.
 
FASTDDS_EXPORTED_API ReturnCode_t get_default_datawriter_qos (DataWriterQos &qos) const
 This operation retrieves the default value of the DataWriter QoS, that is, the QoS policies which will be used for newly created DataWriter entities in the case where the QoS policies are defaulted in the create_datawriter operation.
 
FASTDDS_EXPORTED_API ReturnCode_t get_datawriter_qos_from_profile (const std::string &profile_name, DataWriterQos &qos) const
 Fills the DataWriterQos with the values of the XML profile.
 
FASTDDS_EXPORTED_API const InstanceHandle_tget_instance_handle () const
 Returns the Publisher's handle.
 
FASTDDS_EXPORTED_API bool get_datawriters (std::vector< DataWriter * > &writers) const
 Fills the given vector with all the datawriters of this publisher.
 
FASTDDS_EXPORTED_API bool has_datawriters () const
 This operation checks if the publisher has DataWriters.
 
- Public Member Functions inherited from DomainEntity
 DomainEntity (const StatusMask &mask=StatusMask::all())
 Constructor.
 
- Public Member Functions inherited from Entity
FASTDDS_EXPORTED_API Entity (const StatusMask &mask=StatusMask::all())
 Constructor.
 
void close ()
 This operation disables the Entity before closing it.
 
FASTDDS_EXPORTED_API const StatusMaskget_status_mask () const
 Retrieves the set of relevant statuses for the Entity.
 
FASTDDS_EXPORTED_API const StatusMaskget_status_changes () const
 Retrieves the set of triggered statuses in the Entity.
 
const InstanceHandle_tget_instance_handle () const
 Retrieves the instance handler that represents the Entity.
 
FASTDDS_EXPORTED_API bool is_enabled () const
 Checks if the Entity is enabled.
 
FASTDDS_EXPORTED_API bool operator== (const Entity &other) const
 
FASTDDS_EXPORTED_API StatusConditionget_statuscondition ()
 Allows access to the StatusCondition associated with the Entity.
 

Static Public Member Functions

static FASTDDS_EXPORTED_API ReturnCode_t copy_from_topic_qos (fastdds::dds::DataWriterQos &writer_qos, const fastdds::dds::TopicQos &topic_qos)
 Copies TopicQos into the corresponding DataWriterQos.
 

Protected Member Functions

 Publisher (PublisherImpl *p, const StatusMask &mask=StatusMask::all())
 Create a publisher, assigning its pointer to the associated implementation.
 
 Publisher (DomainParticipant *dp, const PublisherQos &qos=PUBLISHER_QOS_DEFAULT, PublisherListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
 
- Protected Member Functions inherited from Entity
FASTDDS_EXPORTED_API void set_instance_handle (const InstanceHandle_t &handle)
 Setter for the Instance Handle.
 

Protected Attributes

PublisherImplimpl_
 
- Protected Attributes inherited from Entity
StatusMask status_mask_
 StatusMask with relevant statuses set to 1.
 
StatusCondition status_condition_
 Condition associated to the Entity.
 
InstanceHandle_t instance_handle_
 InstanceHandle associated to the Entity.
 
bool enable_
 Boolean that states if the Entity is enabled or disabled.
 

Friends

class PublisherImpl
 
class DomainParticipantImpl
 
class ::dds::pub::Publisher
 

Detailed Description

Class Publisher, used to send data to associated subscribers.

Constructor & Destructor Documentation

◆ Publisher() [1/2]

Publisher ( PublisherImpl p,
const StatusMask mask = StatusMask::all() 
)
protected

Create a publisher, assigning its pointer to the associated implementation.

Don't use directly, create Publisher using create_publisher from DomainParticipant.

◆ Publisher() [2/2]

Publisher ( DomainParticipant dp,
const PublisherQos qos = PUBLISHER_QOS_DEFAULT,
PublisherListener listener = nullptr,
const StatusMask mask = StatusMask::all() 
)
protected

◆ ~Publisher()

virtual ~Publisher ( )
virtual

Destructor.

Member Function Documentation

◆ begin_coherent_changes()

FASTDDS_EXPORTED_API ReturnCode_t begin_coherent_changes ( )

Signals the beginning of a set of coherent cache changes using the Datawriters attached to the publisher.

Returns
RETCODE_OK if successful, an error code otherwise
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED

◆ copy_from_topic_qos()

static FASTDDS_EXPORTED_API ReturnCode_t copy_from_topic_qos ( fastdds::dds::DataWriterQos writer_qos,
const fastdds::dds::TopicQos topic_qos 
)
static

Copies TopicQos into the corresponding DataWriterQos.

Parameters
[out]writer_qos
[in]topic_qos
Returns
RETCODE_OK if successful, an error code otherwise
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED

◆ create_datawriter()

FASTDDS_EXPORTED_API DataWriter * create_datawriter ( Topic topic,
const DataWriterQos qos,
DataWriterListener listener = nullptr,
const StatusMask mask = StatusMask::all(),
std::shared_ptr< fastdds::rtps::IPayloadPool payload_pool = nullptr 
)

This operation creates a DataWriter.

The returned DataWriter will be attached and belongs to the Publisher.

Parameters
topicTopic the DataWriter will be listening
qosQoS of the DataWriter.
listenerPointer to the listener (default: nullptr).
maskStatusMask that holds statuses the listener responds to (default: all).
payload_poolIPayloadPool shared pointer that defines writer payload (default: nullptr).
Returns
Pointer to the created DataWriter. nullptr if failed.

◆ create_datawriter_with_profile()

FASTDDS_EXPORTED_API DataWriter * create_datawriter_with_profile ( Topic topic,
const std::string &  profile_name,
DataWriterListener listener = nullptr,
const StatusMask mask = StatusMask::all(),
std::shared_ptr< fastdds::rtps::IPayloadPool payload_pool = nullptr 
)

This operation creates a DataWriter.

The returned DataWriter will be attached and belongs to the Publisher.

Parameters
topicTopic the DataWriter will be listening
profile_nameDataWriter profile name.
listenerPointer to the listener (default: nullptr).
maskStatusMask that holds statuses the listener responds to (default: all).
payload_poolIPayloadPool shared pointer that defines writer payload (default: nullptr).
Returns
Pointer to the created DataWriter. nullptr if failed.

◆ delete_contained_entities()

FASTDDS_EXPORTED_API ReturnCode_t delete_contained_entities ( )

Deletes all contained DataWriters.

Returns
RETCODE_OK if successful, an error code otherwise

◆ delete_datawriter()

FASTDDS_EXPORTED_API ReturnCode_t delete_datawriter ( const DataWriter writer)

This operation deletes a DataWriter that belongs to the Publisher.

The delete_datawriter operation must be called on the same Publisher object used to create the DataWriter. If delete_datawriter is called on a different Publisher, the operation will have no effect and it will return false.

The deletion of the DataWriter will automatically unregister all instances. Depending on the settings of the WRITER_DATA_LIFECYCLE QosPolicy, the deletion of the DataWriter may also dispose all instances.

Parameters
writerDataWriter to delete
Returns
RETCODE_PRECONDITION_NOT_MET if it does not belong to this Publisher, RETCODE_OK if it is correctly deleted and RETCODE_ERROR otherwise.

◆ enable()

FASTDDS_EXPORTED_API ReturnCode_t enable ( )
overridevirtual

This operation enables the Publisher.

Returns
RETCODE_OK is successfully enabled. RETCODE_PRECONDITION_NOT_MET if the participant creating this Publisher is not enabled.

Reimplemented from Entity.

◆ end_coherent_changes()

FASTDDS_EXPORTED_API ReturnCode_t end_coherent_changes ( )

Signals the end of a set of coherent cache changes.

Returns
RETCODE_OK if successful, an error code otherwise
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED

◆ get_datawriter_qos_from_profile()

FASTDDS_EXPORTED_API ReturnCode_t get_datawriter_qos_from_profile ( const std::string &  profile_name,
DataWriterQos qos 
) const

Fills the DataWriterQos with the values of the XML profile.

Parameters
profile_nameDataWriter profile name.
qosDataWriterQos object where the qos is returned.
Returns
RETCODE_OK if the profile exists. RETCODE_BAD_PARAMETER otherwise.

◆ get_datawriters()

FASTDDS_EXPORTED_API bool get_datawriters ( std::vector< DataWriter * > &  writers) const

Fills the given vector with all the datawriters of this publisher.

Parameters
writersVector where the DataWriters are returned
Returns
true

◆ get_default_datawriter_qos() [1/2]

FASTDDS_EXPORTED_API const DataWriterQos & get_default_datawriter_qos ( ) const

This operation returns the default value of the DataWriter QoS, that is, the QoS policies which will be used for newly created DataWriter entities in the case where the QoS policies are defaulted in the create_datawriter operation.

The values retrieved by get_default_datawriter_qos will match the set of values specified on the last successful call to set_default_datawriter_qos, or else, if the call was never made, the default values.

Returns
Current default WriterQos

◆ get_default_datawriter_qos() [2/2]

FASTDDS_EXPORTED_API ReturnCode_t get_default_datawriter_qos ( DataWriterQos qos) const

This operation retrieves the default value of the DataWriter QoS, that is, the QoS policies which will be used for newly created DataWriter entities in the case where the QoS policies are defaulted in the create_datawriter operation.

The values retrieved by get_default_datawriter_qos will match the set of values specified on the last successful call to set_default_datawriter_qos, or else, if the call was never made, the default values.

Parameters
qosReference to the current default WriterQos.
Returns
RETCODE_OK

◆ get_instance_handle()

FASTDDS_EXPORTED_API const InstanceHandle_t & get_instance_handle ( ) const

Returns the Publisher's handle.

Returns
InstanceHandle of this Publisher.

◆ get_listener()

FASTDDS_EXPORTED_API const PublisherListener * get_listener ( ) const

Retrieves the attached PublisherListener.

Returns
PublisherListener pointer

◆ get_participant()

FASTDDS_EXPORTED_API const DomainParticipant * get_participant ( ) const

This operation returns the DomainParticipant to which the Publisher belongs.

Returns
Pointer to the DomainParticipant

◆ get_qos() [1/2]

FASTDDS_EXPORTED_API const PublisherQos & get_qos ( ) const

Allows accessing the Publisher Qos.

Returns
PublisherQos reference

◆ get_qos() [2/2]

FASTDDS_EXPORTED_API ReturnCode_t get_qos ( PublisherQos qos) const

Retrieves the Publisher Qos.

Returns
RETCODE_OK

◆ has_datawriters()

FASTDDS_EXPORTED_API bool has_datawriters ( ) const

This operation checks if the publisher has DataWriters.

Returns
true if the publisher has one or several DataWriters, false otherwise

◆ lookup_datawriter()

FASTDDS_EXPORTED_API DataWriter * lookup_datawriter ( const std::string &  topic_name) const

This operation retrieves a previously created DataWriter belonging to the Publisher that is attached to a Topic with a matching topic_name.

If no such DataWriter exists, the operation will return nullptr.

If multiple DataWriter attached to the Publisher satisfy this condition, then the operation will return one of them. It is not specified which one.

Parameters
topic_nameName of the Topic
Returns
Pointer to a previously created DataWriter associated to a Topic with the requested topic_name

◆ resume_publications()

FASTDDS_EXPORTED_API ReturnCode_t resume_publications ( )

Indicates to FastDDS that the modifications to the DataWriters are complete.

Returns
RETCODE_OK if successful, an error code otherwise
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED

◆ set_default_datawriter_qos()

FASTDDS_EXPORTED_API ReturnCode_t set_default_datawriter_qos ( const DataWriterQos qos)

This operation sets a default value of the DataWriter QoS policies which will be used for newly created DataWriter entities in the case where the QoS policies are defaulted in the create_datawriter operation.

This operation will check that the resulting policies are self consistent; if they are not, the operation will have no effect and return false.

The special value DATAWRITER_QOS_DEFAULT may be passed to this operation to indicate that the default QoS should be reset back to the initial values the factory would use, that is the values that would be used if the set_default_datawriter_qos operation had never been called.

Parameters
qosDataWriterQos to be set
Returns
RETCODE_INCONSISTENT_POLICY if the Qos is not self consistent and RETCODE_OK if the qos is changed correctly.

◆ set_listener() [1/2]

FASTDDS_EXPORTED_API ReturnCode_t set_listener ( PublisherListener listener)

Modifies the PublisherListener, sets the mask to StatusMask::all()

Parameters
listenernew value for the PublisherListener
Returns
RETCODE_OK

◆ set_listener() [2/2]

FASTDDS_EXPORTED_API ReturnCode_t set_listener ( PublisherListener listener,
const StatusMask mask 
)

Modifies the PublisherListener.

Parameters
listenernew value for the PublisherListener
maskStatusMask that holds statuses the listener responds to
Returns
RETCODE_OK

◆ set_qos()

FASTDDS_EXPORTED_API ReturnCode_t set_qos ( const PublisherQos qos)

Allows modifying the Publisher Qos.

The given Qos must be supported by the PublisherQos.

Parameters
qosPublisherQos to be set
Returns
RETCODE_IMMUTABLE_POLICY if any of the Qos cannot be changed, RETCODE_INCONSISTENT_POLICY if the Qos is not self consistent and RETCODE_OK if the qos is changed correctly.

◆ suspend_publications()

FASTDDS_EXPORTED_API ReturnCode_t suspend_publications ( )

Indicates to FastDDS that the contained DataWriters are about to be modified.

Returns
RETCODE_OK if successful, an error code otherwise
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED

◆ wait_for_acknowledgments()

FASTDDS_EXPORTED_API ReturnCode_t wait_for_acknowledgments ( const fastdds::dds::Duration_t max_wait)

This operation blocks the calling thread until either all data written by the reliable DataWriter entities is acknowledged by all matched reliable DataReader entities, or else the duration specified by the max_wait parameter elapses, whichever happens first.

A return value of true indicates that all the samples written have been acknowledged by all reliable matched data readers; a return value of false indicates that max_wait elapsed before all the data was acknowledged.

Parameters
max_waitMaximum blocking time for this operation
Returns
RETCODE_TIMEOUT if the function takes more than the maximum blocking time established, RETCODE_OK if the Publisher receives the acknowledgments and RETCODE_ERROR otherwise.

Friends And Related Symbol Documentation

◆ ::dds::pub::Publisher

friend class ::dds::pub::Publisher
friend

◆ DomainParticipantImpl

friend class DomainParticipantImpl
friend

◆ PublisherImpl

friend class PublisherImpl
friend

Member Data Documentation

◆ impl_

PublisherImpl* impl_
protected

The documentation for this class was generated from the following file: