/** * @RDE_HEADER@ * Data Plugin for PresentationManagement - DDS => GUI * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, SLSE, 2017-03-27 */ #pragma once #include #include #include #include #ifndef TLNDATAPLUGININTERFACE_EXPORT # ifdef BUILD_STATIC_LIBRARIES # define TLNDATAPLUGININTERFACE_EXPORT # else # if defined(MAKE_TLNDATAPLUGININTERFACE_LIB) # define TLNDATAPLUGININTERFACE_EXPORT Q_DECL_EXPORT # else # define TLNDATAPLUGININTERFACE_EXPORT Q_DECL_IMPORT # endif # endif #endif namespace TimeLineManagement { class ForeignDataInterface; /** * @brief The DataInterface class provides the Topics Clients only for the GUI Plugins */ class DataInterface : public DataPluginBase::Interface { public: using DataPluginBase::Interface::Interface; virtual std::shared_ptr getForeignDataInterface() = 0; }; class TimelineDataProviderInterface { public: TimelineDataProviderInterface() = default; virtual ~TimelineDataProviderInterface() = default; virtual const QVector &eventData() const = 0; virtual int requestId() const = 0; virtual void getRequestTime(qint64 &requestMin /* out */, qint64 &requestMax /* out */) const = 0; }; /** * @brief The ForeignInterface class provides methods and signals for foreign plugins, that need * access to the data of this DataPlugin */ class TLNDATAPLUGININTERFACE_EXPORT ForeignDataInterface : public QObject { Q_OBJECT public: ForeignDataInterface() = default; virtual ~ForeignDataInterface() = default; virtual TimelineDataProviderInterface *requestData(qint64 from, qint64 to, const QVector &eventTypeIds = QVector(), const QJsonObject &filter = QJsonObject()) = 0; virtual QVector liveHistory() const = 0; virtual const QUrl eemUrl() const = 0; Q_SIGNALS: void liveEvent(const ExerciseEventManagement::Event &ev); void requestedDataAvailable(TimelineDataProviderInterface *tldp); }; } // namespace TimeLineManagement