#ifndef VARIABLECONTROLLER2_H #define VARIABLECONTROLLER2_H #include #include #include #include #include #include #include #include #include #include #include #include #include "Data/DateTimeRange.h" class VariableController2: public QObject { class VariableController2Private; Q_OBJECT spimpl::unique_impl_ptr impl; public: explicit VariableController2(); std::shared_ptr createVariable(const QString &name, const QVariantHash &metadata, const std::shared_ptr& provider, const DateTimeRange &range); std::shared_ptr cloneVariable(const std::shared_ptr& variable); void deleteVariable(const std::shared_ptr& variable); void changeRange(const std::shared_ptr& variable, const DateTimeRange& r); void asyncChangeRange(const std::shared_ptr& variable, const DateTimeRange& r); const std::vector> variables(); bool isReady(const std::shared_ptr& variable); void synchronize(const std::shared_ptr& var, const std::shared_ptr& with); const std::vector> variables(const std::vector& ids); const std::shared_ptr& operator[] (int index) const; std::shared_ptr operator[] (int index); signals: void variableAdded(const std::shared_ptr&); void variableDeleted(const std::shared_ptr&); }; #endif //VARIABLECONTROLLER2_H