Class Subscriber
Defined in File Subscriber.hpp
Inheritance Relationships
Base Type
public eprosima::fastdds::dds::DomainEntity
(Class DomainEntity)
Class Documentation
-
class Subscriber : public eprosima::fastdds::dds::DomainEntity
Class Subscriber, contains the public API that allows the user to control the reception of messages. This class should not be instantiated directly. DomainRTPSParticipant class should be used to correctly create this element.
Public Functions
-
inline virtual ~Subscriber()
Destructor.
- virtual RTPS_DllAPI ReturnCode_t enable () override
This operation enables the Subscriber.
- Returns
RETCODE_OK is successfully enabled. RETCODE_PRECONDITION_NOT_MET if the participant creating this Subscriber is not enabled.
- RTPS_DllAPI const SubscriberQos & get_qos () const
Allows accessing the Subscriber Qos.
- Returns
SubscriberQos reference
- RTPS_DllAPI ReturnCode_t get_qos (SubscriberQos &qos) const
Retrieves the Subscriber Qos.
- Parameters
qos – SubscriberQos where the qos is returned
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t set_qos (const SubscriberQos &qos)
Allows modifying the Subscriber Qos. The given Qos must be supported by the SubscriberQos.
- Parameters
qos – new value for SubscriberQos
- 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.
- RTPS_DllAPI const SubscriberListener * get_listener () const
Retrieves the attached SubscriberListener.
- Returns
Pointer to the SubscriberListener
- RTPS_DllAPI ReturnCode_t set_listener (SubscriberListener *listener)
Modifies the SubscriberListener, sets the mask to StatusMask::all()
- Parameters
listener – new value for SubscriberListener
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t set_listener (SubscriberListener *listener, const StatusMask &mask)
Modifies the SubscriberListener.
- Parameters
listener – new value for the SubscriberListener
mask – StatusMask that holds statuses the listener responds to.
- Returns
RETCODE_OK
- RTPS_DllAPI DataReader * create_datareader (TopicDescription *topic, const DataReaderQos &reader_qos, DataReaderListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
This operation creates a DataReader. The returned DataReader will be attached and belong to the Subscriber.
- Parameters
topic – Topic the DataReader will be listening.
reader_qos – QoS of the DataReader.
listener – Pointer to the listener (default: nullptr)
mask – StatusMask that holds statuses the listener responds to (default: all).
- Returns
Pointer to the created DataReader. nullptr if failed.
- RTPS_DllAPI DataReader * create_datareader_with_profile (TopicDescription *topic, const std::string &profile_name, DataReaderListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
This operation creates a DataReader. The returned DataReader will be attached and belongs to the Subscriber.
- Parameters
topic – Topic the DataReader will be listening.
profile_name – DataReader profile name.
listener – Pointer to the listener (default: nullptr)
mask – StatusMask that holds statuses the listener responds to (default: all).
- Returns
Pointer to the created DataReader. nullptr if failed.
- RTPS_DllAPI ReturnCode_t delete_datareader (const DataReader *reader)
This operation deletes a DataReader that belongs to the Subscriber.
The delete_datareader operation must be called on the same Subscriber object used to create the DataReader. If delete_datareader is called on a different Subscriber, the operation will have no effect and it will return an error.
- Parameters
reader – DataReader to delete
- Returns
RETCODE_PRECONDITION_NOT_MET if the datareader does not belong to this subscriber, RETCODE_OK if it is correctly deleted and RETCODE_ERROR otherwise.
- RTPS_DllAPI DataReader * lookup_datareader (const std::string &topic_name) const
This operation retrieves a previously-created DataReader belonging to the Subscriber that is attached to a Topic with a matching topic_name. If no such DataReader exists, the operation will return nullptr.
If multiple DataReaders attached to the Subscriber satisfy this condition, then the operation will return one of them. It is not specified which one.
- Parameters
topic_name – Name of the topic associated to the DataReader
- Returns
Pointer to a previously created DataReader created on a Topic with that topic_name
- RTPS_DllAPI ReturnCode_t get_datareaders (std::vector< DataReader * > &readers) const
This operation allows the application to access the DataReader objects.
- Parameters
readers – Vector of DataReader where the list of existing readers is returned
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t get_datareaders (std::vector< DataReader * > &readers, const std::vector< SampleStateKind > &sample_states, const std::vector< ViewStateKind > &view_states, const std::vector< InstanceStateKind > &instance_states) const
This operation allows the application to access the DataReader objects that contain samples with the specified sample_states, view_states, and instance_states.
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED
- Parameters
readers – [out] Vector of DataReader where the list of existing readers is returned
sample_states – Vector of SampleStateKind
view_states – Vector of ViewStateKind
instance_states – Vector of InstanceStateKind
- Returns
RETCODE_OK
- RTPS_DllAPI bool has_datareaders () const
This operation checks if the subscriber has DataReaders
- Returns
true if the subscriber has one or several DataReaders, false in other case
- RTPS_DllAPI ReturnCode_t begin_access ()
Indicates that the application is about to access the data samples in any of the DataReader objects attached to the Subscriber.
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t end_access ()
Indicates that the application has finished accessing the data samples in DataReader objects managed by the Subscriber.
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t notify_datareaders () const
This operation invokes the operation on_data_available on the DataReaderListener objects attached to contained DataReader entities.
This operation is typically invoked from the on_data_on_readers operation in the SubscriberListener. That way the SubscriberListener can delegate to the DataReaderListener objects the handling of the data.
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t delete_contained_entities ()
Deletes all contained DataReaders. If the DataReaders have any QueryCondition or ReadCondition, they are deleted before the DataReader itself.
- Returns
RETCODE_OK if successful, an error code otherwise
- RTPS_DllAPI ReturnCode_t set_default_datareader_qos (const DataReaderQos &qos)
This operation sets a default value of the DataReader QoS policies which will be used for newly created DataReader entities in the case where the QoS policies are defaulted in the create_datareader 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 DATAREADER_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_datareader_qos operation had never been called.
- Parameters
qos – new value for DataReaderQos to set as default
- Returns
RETCODE_INCONSISTENT_POLICY if the Qos is not self consistent and RETCODE_OK if the qos is changed correctly.
- RTPS_DllAPI const DataReaderQos & get_default_datareader_qos () const
This operation returns the default value of the DataReader QoS, that is, the QoS policies which will be used for newly created DataReader entities in the case where the QoS policies are defaulted in the create_datareader operation.
The values retrieved get_default_datareader_qos will match the set of values specified on the last successful call to get_default_datareader_qos, or else, if the call was never made, the default values.
- Returns
Current default DataReaderQos.
- RTPS_DllAPI DataReaderQos & get_default_datareader_qos ()
This operation returns the default value of the DataReader QoS, that is, the QoS policies which will be used for newly created DataReader entities in the case where the QoS policies are defaulted in the create_datareader operation.
The values retrieved get_default_datareader_qos will match the set of values specified on the last successful call to get_default_datareader_qos, or else, if the call was never made, the default values.
- Returns
Current default DataReaderQos.
- RTPS_DllAPI ReturnCode_t get_default_datareader_qos (DataReaderQos &qos) const
This operation retrieves the default value of the DataReader QoS, that is, the QoS policies which will be used for newly created DataReader entities in the case where the QoS policies are defaulted in the create_datareader operation.
The values retrieved get_default_datareader_qos will match the set of values specified on the last successful call to get_default_datareader_qos, or else, if the call was never made, the default values.
- Parameters
qos – DataReaderQos where the default_qos is returned
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t get_datareader_qos_from_profile (const std::string &profile_name, DataReaderQos &qos) const
Fills the DataReaderQos with the values of the XML profile.
- Parameters
profile_name – DataReader profile name.
qos – DataReaderQos object where the qos is returned.
- Returns
RETCODE_OK if the profile exists. RETCODE_BAD_PARAMETER otherwise.
- RTPS_DllAPI const DomainParticipant * get_participant () const
This operation returns the DomainParticipant to which the Subscriber belongs.
- Returns
DomainParticipant Pointer
- RTPS_DllAPI const InstanceHandle_t & get_instance_handle () const
Returns the Subscriber’s handle.
- Returns
InstanceHandle of this Subscriber.
Public Static Functions
- static RTPS_DllAPI ReturnCode_t copy_from_topic_qos (DataReaderQos &reader_qos, const TopicQos &topic_qos)
Copies TopicQos into the corresponding DataReaderQos.
Warning
Not supported yet. Currently returns RETCODE_UNSUPPORTED
- Parameters
reader_qos – [inout]
topic_qos – [in]
- Returns
RETCODE_OK if successful, an error code otherwise
Protected Functions
-
Subscriber(SubscriberImpl *pimpl, const StatusMask &mask = StatusMask::all())
Create a subscriber, assigning its pointer to the associated implementation. Don’t use directly, create Subscriber using create_subscriber from DomainParticipant.
-
Subscriber(DomainParticipant *dp, const SubscriberQos &qos = SUBSCRIBER_QOS_DEFAULT, SubscriberListener *listener = nullptr, const StatusMask &mask = StatusMask::all())
Protected Attributes
-
SubscriberImpl *impl_
Friends
- friend class SubscriberImpl
- friend class DomainParticipantImpl
- friend class ::dds::sub::Subscriber
-
inline virtual ~Subscriber()