奥特QT DDS 插件库
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

41 řádky
1.1KB

  1. #pragma once
  2. #include "HelloWorldPubSubTypes.hpp"
  3. #include <fastdds/dds/domain/DomainParticipant.hpp>
  4. #include <fastdds/dds/domain/DomainParticipantFactory.hpp>
  5. #include <fastdds/dds/publisher/DataWriter.hpp>
  6. #include <fastdds/dds/publisher/DataWriterListener.hpp>
  7. #include <fastdds/dds/publisher/Publisher.hpp>
  8. #include <fastdds/dds/topic/TypeSupport.hpp>
  9. #include <string>
  10. using namespace eprosima::fastdds::dds;
  11. class HelloWorldPublisher
  12. {
  13. public:
  14. HelloWorldPublisher();
  15. virtual ~HelloWorldPublisher();
  16. bool init();
  17. bool publish();
  18. std::string getCurrentMessage() const;
  19. int getCurrentIndex() const;
  20. private:
  21. HelloWorld hello_;
  22. DomainParticipant* participant_;
  23. Publisher* publisher_;
  24. Topic* topic_;
  25. DataWriter* writer_;
  26. TypeSupport type_;
  27. class PubListener : public DataWriterListener
  28. {
  29. public:
  30. PubListener();
  31. ~PubListener() override;
  32. void on_publication_matched(DataWriter*, const PublicationMatchedStatus& info) override;
  33. std::atomic_int matched_;
  34. } listener_;
  35. };