diff --git a/core/include/Variable/Variable.h b/core/include/Variable/Variable.h index 304cf58..ed1d3d7 100644 --- a/core/include/Variable/Variable.h +++ b/core/include/Variable/Variable.h @@ -22,7 +22,8 @@ class Variable : public QObject { Q_OBJECT public: - explicit Variable(const QString &name, const SqpDateTime &dateTime); + explicit Variable(const QString &name, const SqpDateTime &dateTime, + const QVariantHash &metadata = {}); QString name() const noexcept; SqpDateTime dateTime() const noexcept; @@ -31,6 +32,8 @@ public: /// @return the data of the variable, nullptr if there is no data IDataSeries *dataSeries() const noexcept; + QVariantHash metadata() const noexcept; + bool contains(const SqpDateTime &dateTime) const noexcept; bool intersect(const SqpDateTime &dateTime) const noexcept; bool isInside(const SqpDateTime &dateTime) const noexcept; diff --git a/core/src/Variable/Variable.cpp b/core/src/Variable/Variable.cpp index 08a1c71..4a66066 100644 --- a/core/src/Variable/Variable.cpp +++ b/core/src/Variable/Variable.cpp @@ -9,19 +9,21 @@ Q_LOGGING_CATEGORY(LOG_Variable, "Variable") struct Variable::VariablePrivate { - explicit VariablePrivate(const QString &name, const SqpDateTime &dateTime) - : m_Name{name}, m_DateTime{dateTime}, m_DataSeries{nullptr} + explicit VariablePrivate(const QString &name, const SqpDateTime &dateTime, + const QVariantHash &metadata) + : m_Name{name}, m_DateTime{dateTime}, m_Metadata{metadata}, m_DataSeries{nullptr} { } QString m_Name; SqpDateTime m_DateTime; // The dateTime available in the view and loaded. not the cache. + QVariantHash m_Metadata; std::unique_ptr m_DataSeries; }; -Variable::Variable(const QString &name, const SqpDateTime &dateTime) - : impl{spimpl::make_unique_impl(name, dateTime)} +Variable::Variable(const QString &name, const SqpDateTime &dateTime, const QVariantHash &metadata) + : impl{spimpl::make_unique_impl(name, dateTime, metadata)} { } @@ -67,6 +69,11 @@ IDataSeries *Variable::dataSeries() const noexcept return impl->m_DataSeries.get(); } +QVariantHash Variable::metadata() const noexcept +{ + return impl->m_Metadata; +} + bool Variable::contains(const SqpDateTime &dateTime) const noexcept { return impl->m_DateTime.contains(dateTime);