Class SubscriberListener

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class SubscriberListener : public eprosima::fastdds::dds::SubscriberListener

Subscriber events Listener.

Since a Subscriber is an Entity, it has the ability to have a Listener associated with it. In this case, the associated Listener should be of type SubscriberListener. This interface must be implemented by the application. A user-defined class must be provided by the application which must extend from the SubscriberListener class.

The SubscriberListener provides a generic mechanism (actually a callback function) for the Data Distribution Service to notify the application of relevant asynchronous status change events, such as a missed deadline, violation of a QosPolicy setting, etc. The SubscriberListener is related to changes in communication status StatusConditions.

// Application example listener
class ExampleListener :
               public virtual dds::sub::SubscriberListener
{
public:
    virtual void on_new_data_message (
        dds::pub::AnyDataReader& reader,
        const dds::core::status::NewDataMessageStatus& status)
    {
        std::cout << "on_new_data_message" << std::endl;
    }

    virtual void on_subscription_matched (
        dds::pub::AnyDataReader& reader,
        const dds::core::status::SubscriptionMatchedStatus& status)
    {
        std::cout << "on_subscription_matched" << std::endl;
    }

    virtual void on_requested_deadline_missed (
        dds::pub::AnyDataReader& reader,
        const dds::core::status::RequestedDeadlineMissedStatus& status)
    {
        std::cout << "on_requested_deadline_missed" << std::endl;
    }

    virtual void on_liveliness_changed (
        dds::pub::AnyDataReader& reader,
        const dds::core::status::LivelinessChangedStatus& status)
    {
        std::cout << "on_liveliness_changed" << std::endl;
    }
};

// Create Publisher with the listener
dds::domain::DomainParticipant participant(org::opensplice::domain::default_id());
dds::sub::Subscriber subscriber(participant,
                              participant.default_Subscriber_qos(),
                              new ExampleListener(),
                              dds::core::status::StatusMask::all());

See also

Subscriber

See also

Listener information

Subclassed by dds::sub::NoOpSubscriberListener