Files
qt5-legatus-legacy/Lts/Plugins/Timeline/tln_data_plugin_interface.h
T
2026-08-13 18:33:10 +02:00

82 lines
2.2 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Data Plugin for PresentationManagement - DDS => GUI
* $Id$
* $HeadURL$
* $Author$
*
* Created by Mike Wille, SLSE, 2017-03-27
*/
#pragma once
#include <PluginInterfaces/data_plugin_interface.h>
#include <ExerciseEventManagement/eem.hpp>
#include <QVector>
#include <QJsonObject>
#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<ForeignDataInterface> getForeignDataInterface() = 0;
};
class TimelineDataProviderInterface
{
public:
TimelineDataProviderInterface() = default;
virtual ~TimelineDataProviderInterface() = default;
virtual const QVector<ExerciseEventManagement::Event> &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<int> &eventTypeIds = QVector<int>(),
const QJsonObject &filter = QJsonObject()) = 0;
virtual QVector<ExerciseEventManagement::Event> liveHistory() const = 0;
virtual const QUrl eemUrl() const = 0;
Q_SIGNALS:
void liveEvent(const ExerciseEventManagement::Event &ev);
void requestedDataAvailable(TimelineDataProviderInterface *tldp);
};
} // namespace TimeLineManagement