SqpApplication.h
48 lines
| 1.4 KiB
| text/x-c
|
CLexer
r21 | #ifndef SCIQLOP_SQPAPPLICATION_H | |||
#define SCIQLOP_SQPAPPLICATION_H | ||||
#include "SqpApplication.h" | ||||
#include <QApplication> | ||||
#include <QLoggingCategory> | ||||
#include <Common/spimpl.h> | ||||
Q_DECLARE_LOGGING_CATEGORY(LOG_SqpApplication) | ||||
Alexandre Leroux
|
r34 | #if defined(sqpApp) | ||
#undef sqpApp | ||||
#endif | ||||
#define sqpApp (static_cast<SqpApplication *>(QCoreApplication::instance())) | ||||
Alexandre Leroux
|
r33 | class DataSourceController; | ||
Alexandre Leroux
|
r111 | class VariableController; | ||
r53 | class VisualizationController; | |||
Alexandre Leroux
|
r33 | |||
r21 | /** | |||
* @brief The SqpApplication class aims to make the link between SciQlop | ||||
Alexandre Leroux
|
r32 | * and its plugins. This is the intermediate class that SciQlop has to use | ||
* in the way to connect a data source. Please first use load method to initialize | ||||
r21 | * a plugin specified by its metadata name (JSON plugin source) then others specifics | |||
Alexandre Leroux
|
r32 | * method will be able to access it. | ||
r21 | * You can load a data source driver plugin then create a data source. | |||
*/ | ||||
r24 | ||||
r21 | class SqpApplication : public QApplication { | |||
Q_OBJECT | ||||
public: | ||||
explicit SqpApplication(int &argc, char **argv); | ||||
virtual ~SqpApplication(); | ||||
void initialize(); | ||||
r53 | /// Accessors for the differents sciqlop controllers | |||
Alexandre Leroux
|
r33 | DataSourceController &dataSourceController() const noexcept; | ||
Alexandre Leroux
|
r111 | VariableController &variableController() const noexcept; | ||
r53 | VisualizationController &visualizationController() const noexcept; | |||
Alexandre Leroux
|
r33 | |||
r21 | private: | |||
class SqpApplicationPrivate; | ||||
spimpl::unique_impl_ptr<SqpApplicationPrivate> impl; | ||||
}; | ||||
#endif // SCIQLOP_SQPAPPLICATION_H | ||||