/** * @RDE_HEADER@ * Routing Test - data writer thread * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include #include #include "logger.h" #if BUILD_RTI #include #else #include "stubs/routing_plugin_stub.h" #endif namespace RoutingService { class DataWriterTask final : public DataWriterTaskInterface { public: DataWriterTask(); ~DataWriterTask(); #if BUILD_RTI void enqueue(SampleWriterInterface *swi) override; void shutdown(); bool waitForData(); SampleWriterInterface *getNextSampleWriter(); void writeSamples(); #else // Stub methods when BUILD_RTI is disabled void enqueue(SampleWriterInterface* /*swi*/) override {} void shutdown() {} bool waitForData() { return false; } SampleWriterInterface* getNextSampleWriter() { return nullptr; } void writeSamples() {} #endif private: NGL::INGLLogger &m_logger; #if BUILD_RTI std::queue m_writerQueue; #endif std::mutex m_queueLock; std::condition_variable m_waitForDataCondition; bool m_doShutdown; }; } // namespace RoutingService