#ifndef SCIQLOP_VISUALIZATIONCONTROLLER_H #define SCIQLOP_VISUALIZATIONCONTROLLER_H #include "CoreGlobal.h" #include #include #include #include #include Q_DECLARE_LOGGING_CATEGORY(LOG_VisualizationController) class DataSourceItem; class Variable; /** * @brief The VisualizationController class aims to make the link between SciQlop and its plugins. * This is the intermediate class that SciQlop has to use in the way to connect a data source. * Please first use register method to initialize a plugin specified by its metadata name (JSON * plugin source) then others specifics method will be able to access it. You can load a data source * driver plugin then create a data source. */ class SCIQLOP_CORE_EXPORT VisualizationController : public QObject { Q_OBJECT public: explicit VisualizationController(QObject *parent = 0); virtual ~VisualizationController(); signals: /// Signal emitted when a variable is about to be deleted from SciQlop void variableAboutToBeDeleted(std::shared_ptr variable); /// Signal emitted when a data acquisition is requested on a range for a variable void rangeChanged(std::shared_ptr variable, const SqpRange &range); public slots: /// Manage init/end of the controller void initialize(); void finalize(); private: void waitForFinish(); class VisualizationControllerPrivate; spimpl::unique_impl_ptr impl; }; #endif // SCIQLOP_VISUALIZATIONCONTROLLER_H