#pragma once #include "HelloWorldPubSubTypes.hpp" #include #include #include #include #include #include #include using namespace eprosima::fastdds::dds; class HelloWorldPublisher { public: HelloWorldPublisher(); virtual ~HelloWorldPublisher(); bool init(); bool publish(); std::string getCurrentMessage() const; int getCurrentIndex() const; private: HelloWorld hello_; DomainParticipant* participant_; Publisher* publisher_; Topic* topic_; DataWriter* writer_; TypeSupport type_; class PubListener : public DataWriterListener { public: PubListener(); ~PubListener() override; void on_publication_matched(DataWriter*, const PublicationMatchedStatus& info) override; std::atomic_int matched_; } listener_; };