diff --git a/core/include/Variable/VariableSynchronizationGroup.h b/core/include/Variable/VariableSynchronizationGroup.h new file mode 100644 index 0000000..ffb5ce8 --- /dev/null +++ b/core/include/Variable/VariableSynchronizationGroup.h @@ -0,0 +1,38 @@ +#ifndef SCIQLOP_VARIABLESYNCHRONIZATIONGROUP_H +#define SCIQLOP_VARIABLESYNCHRONIZATIONGROUP_H + +#include "CoreGlobal.h" + +#include +#include +#include + +#include + +#include + +#include + +#include + +Q_DECLARE_LOGGING_CATEGORY(LOG_VariableSynchronizationGroup) + +class Variable; + +/// This class aims to hande the cache strategy. +class SCIQLOP_CORE_EXPORT VariableSynchronizationGroup : public QObject { + Q_OBJECT +public: + explicit VariableSynchronizationGroup(QObject *parent = 0); + + void addVariableId(QUuid vIdentifier); + void removeVariableId(QUuid vIdentifier); + + const std::set &getIds() const noexcept; + +private: + class VariableSynchronizationGroupPrivate; + spimpl::unique_impl_ptr impl; +}; + +#endif // SCIQLOP_VARIABLESYNCHRONIZATIONGROUP_H diff --git a/core/src/Variable/VariableSynchronizationGroup.cpp b/core/src/Variable/VariableSynchronizationGroup.cpp new file mode 100644 index 0000000..a0454f9 --- /dev/null +++ b/core/src/Variable/VariableSynchronizationGroup.cpp @@ -0,0 +1,32 @@ +#include "Variable/VariableSynchronizationGroup.h" + +#include "Variable/Variable.h" + + +Q_LOGGING_CATEGORY(LOG_VariableSynchronizationGroup, "VariableSynchronizationGroup") + +struct VariableSynchronizationGroup::VariableSynchronizationGroupPrivate { + + std::set m_VariableIdSet; +}; + + +VariableSynchronizationGroup::VariableSynchronizationGroup(QObject *parent) + : QObject{parent}, impl{spimpl::make_unique_impl()} +{ +} + +void VariableSynchronizationGroup::addVariableId(QUuid vIdentifier) +{ + impl->m_VariableIdSet.insert(vIdentifier); +} + +void VariableSynchronizationGroup::removeVariableId(QUuid vIdentifier) +{ + impl->m_VariableIdSet.erase(vIdentifier); +} + +const std::set &VariableSynchronizationGroup::getIds() const noexcept +{ + return impl->m_VariableIdSet; +}