#pragma once #include #include #include #include #include #include #include #include #include namespace NGL { class INGLLogger; } class FunctionTopicTests : public QObject { Q_OBJECT public: FunctionTopicTests(); private Q_SLOTS: void initTestCase(); void initFTSTestCase(); void initFTCTestCase(); void requestTestCase1(); void requestTestCase2(); void cleanupTestCase(); Q_SIGNALS: void functionTopicRequestFinished(); void functionTopicReply(); protected Q_SLOTS: void slotRequestedData(const DdsUnitTests::FunctionTopicTestReply &reply, int seqNo, bool bFinished); void slotRequestedData(const DdsUnitTests::FunctionTopicTestWithStateReply &reply, int seqNo, bool bFinished); void slotRequestedDataError(int reason, int seqNo, int requestId); void onFunctionTopicRequest(const rti::core::SampleIdentity &sampleId, const DdsUnitTests::FunctionRequest &request); void onFunctionTopicRequest(const rti::core::SampleIdentity &sampleId, const DdsUnitTests::FunctionRequestWithState &request); private: void requestWithState(); private: std::unique_ptr m_fts; std::unique_ptr m_ftsWS; std::unique_ptr m_ftc; std::unique_ptr m_ftcWS; std::shared_ptr m_ddsConnectorClient; std::shared_ptr m_ddsConnectorServer; DdsUnitTests::FunctionRequest m_requestTopic; DdsUnitTests::FunctionReply m_replyTopic; DdsUnitTests::FunctionRequestWithState m_requestTopicWithState; DdsUnitTests::FunctionReplyWithState m_replyTopicWithState; Qt::HANDLE m_mainThreadId; NGL::INGLLogger& m_logger; };