#pragma once #include #include namespace NGLLogger { class INGLLogger; } namespace DTC { class SubscriberListener; 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; }; template class GenericDtc : public GenericDtcSC > {}; template class GenericDtcSampleInfo : public GenericDtcSC > {}; template class Ddtc : public GenericDtcSC > {}; template class DdtcSampleInfo : public GenericDtcSC > {}; }