/** * @RDE_HEADER@ * DTC TypeDefinitions * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include namespace NGLLogger { class INGLLogger; } namespace DTC { class SubscriberListener; // uses DRO (static) template class GenericDtcSC { public: using DataReaderObject = DRO_OBJECT; using SubscriberCallback = SC; using TopicType = typename DRO_OBJECT::TopicType; GenericDtcSC() = default; virtual ~GenericDtcSC() = default; virtual bool setSubscriberCallback(const SubscriberCallback &subscriberCallback) = 0; virtual dds::sub::LoanedSamples readAlive() const = 0; virtual dds::sub::LoanedSamples takeAlive() const = 0; virtual dds::sub::LoanedSamples takeDisposed() const = 0; virtual bool hasSamples() const = 0; virtual DataReaderObject *dataReader() const = 0; virtual bool waitForHistoricalData(int timeoutMSec) = 0; }; // Typed topic callback (DataReader) template class GenericDtc : public GenericDtcSC > {}; // Typed topic callback (DataReader) with SampleInfo template class GenericDtcSampleInfo : public GenericDtcSC > {}; // Dynamic topic callback (DynamicDataReader) template class Ddtc : public GenericDtcSC > {}; // Dynamic topic callback (DynamicDataReader) with SampleInfo template class DdtcSampleInfo : public GenericDtcSC > {}; }