##// END OF EJS Templates
Remove unused pending request of worker since it's already in the VC....
Remove unused pending request of worker since it's already in the VC. Fix bug with progress asynchrone computation

File last commit:

r1341:36d2186e2f24
r1395:b136e07f06a8
Show More
DataSourceController.h
106 lines | 4.4 KiB | text/x-c | CLexer
/ core / include / DataSource / DataSourceController.h
Initialisation de l'application multithread avec le spimpl....
r21 #ifndef SCIQLOP_DATASOURCECONTROLLER_H
#define SCIQLOP_DATASOURCECONTROLLER_H
Alexandre Leroux
Exports core module as a shared library...
r461 #include "CoreGlobal.h"
Initialisation de l'application multithread avec le spimpl....
r21 #include <QLoggingCategory>
#include <QObject>
Alexandre Leroux
Enables the registration of a data source in the controller
r36 #include <QUuid>
Initialisation de l'application multithread avec le spimpl....
r21
#include <Common/spimpl.h>
Q_DECLARE_LOGGING_CATEGORY(LOG_DataSourceController)
Alexandre Leroux
Implements the method for setting data source structure
r37 class DataSourceItem;
Alexandre Leroux
Adds method for registering a data provider in the data source controller
r127 class IDataProvider;
Alexandre Leroux
Implements the method for setting data source structure
r37
Initialisation de l'application multithread avec le spimpl....
r21 /**
Alexandre Leroux
Enables the registration of a data source in the controller
r36 * @brief The DataSourceController 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.
Initialisation de l'application multithread avec le spimpl....
r21 */
Alexandre Leroux
Exports core module as a shared library...
r461 class SCIQLOP_CORE_EXPORT DataSourceController : public QObject {
Initialisation de l'application multithread avec le spimpl....
r21 Q_OBJECT
public:
explicit DataSourceController(QObject *parent = 0);
virtual ~DataSourceController();
Alexandre Leroux
Enables the registration of a data source in the controller
r36 /**
* Registers a data source. The method delivers a unique id that can be used afterwards to
* access to the data source properties (structure, connection parameters, data provider, etc.)
* @param dataSourceName the name of the data source
* @return the unique id with which the data source has been registered
*/
QUuid registerDataSource(const QString &dataSourceName) noexcept;
Alexandre Leroux
Implements the method for setting data source structure
r37 /**
* Sets the structure of a data source. The controller takes ownership of the structure.
* @param dataSourceUid the unique id with which the data source has been registered into the
* controller. If it is invalid, the method has no effect.
Alexandre Leroux
Minor fix
r357 * @param dataSourceItem the structure of the data source. It must be not null to be registered
Alexandre Leroux
Implements the method for setting data source structure
r37 * @sa registerDataSource()
*/
void setDataSourceItem(const QUuid &dataSourceUid,
std::unique_ptr<DataSourceItem> dataSourceItem) noexcept;
Alexandre Leroux
Adds method for registering a data provider in the data source controller
r127 /**
* Sets the data provider used to retrieve data from of a data source. The controller takes
* ownership of the provider.
* @param dataSourceUid the unique id with which the data source has been registered into the
* controller. If it is invalid, the method has no effect.
* @param dataProvider the provider of the data source
* @sa registerDataSource()
*/
void setDataProvider(const QUuid &dataSourceUid,
std::unique_ptr<IDataProvider> dataProvider) noexcept;
Alexandre Leroux
Adds action in the mock plugin to load products
r146 /**
* Loads an item (product) as a variable in SciQlop
Alexandre Leroux
Updates DataSourceController::loadProductItem() method...
r167 * @param dataSourceUid the unique id of the data source containing the item. It is used to get
* the data provider associated to the data source, and pass it to for the variable creation
Alexandre Leroux
Adds action in the mock plugin to load products
r146 * @param productItem the item to load
*/
Alexandre Leroux
Updates DataSourceController::loadProductItem() method...
r167 void loadProductItem(const QUuid &dataSourceUid, const DataSourceItem &productItem) noexcept;
Alexandre Leroux
Adds action in the mock plugin to load products
r146
Drop of variable, graph and zones on the time widget
r884 /// Returns the MIME data associated to a list of product meta data
static QByteArray mimeDataForProductsData(const QVariantList &productsData);
/// Returns the list of meta data contained in a MIME data
static QVariantList productsDataForMimeData(const QByteArray &mimeData);
Drag of product
r876
Initialisation de l'application multithread avec le spimpl....
r21 public slots:
/// Manage init/end of the controller
void initialize();
void finalize();
New methods to find a datasource item from its product ID_KEY
r1340 /// Request the creation of a variable from the ID_DATA_KEY of a product
drop of products in visu
r1341 void requestVariableFromProductIdKey(const QString &datasourceIdKey);
New methods to find a datasource item from its product ID_KEY
r1340
/// Request the creation of a variable from metadata of a product
Drop of product in variables
r877 void requestVariable(const QVariantHash &productData);
Alexandre Leroux
Implements the method for setting data source structure
r37 signals:
/// Signal emitted when a structure has been set for a data source
Alexandre Leroux
Change signal/slot signature for data source
r92 void dataSourceItemSet(DataSourceItem *dataSourceItem);
Alexandre Leroux
Implements the method for setting data source structure
r37
Alexandre Leroux
Makes the connection between Data source controller and Variable controller...
r169 /**
* Signal emitted when a variable creation is asked for a product
* @param variableName the name of the variable
Alexandre Leroux
Updates variable creation to pass metadata...
r410 * @param variableMetadata the metadata of the variable
Alexandre Leroux
Makes the connection between Data source controller and Variable controller...
r169 * @param variableProvider the provider that will be used to retrieve the data of the variable
* (can be null)
*/
void variableCreationRequested(const QString &variableName,
Alexandre Leroux
Updates variable creation to pass metadata...
r410 const QVariantHash &variableMetadata,
Alexandre Leroux
Makes the connection between Data source controller and Variable controller...
r169 std::shared_ptr<IDataProvider> variableProvider);
Initialisation de l'application multithread avec le spimpl....
r21 private:
void waitForFinish();
class DataSourceControllerPrivate;
spimpl::unique_impl_ptr<DataSourceControllerPrivate> impl;
};
#endif // SCIQLOP_DATASOURCECONTROLLER_H