##// END OF EJS Templates
Made Variable data update atomic ease thread safety and avoid mixing...
Made Variable data update atomic ease thread safety and avoid mixing abstraction levels Also added few missing override Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r12:4e36a737f884
r16:5da3a19e8770
Show More
VariableSynchronizationGroup2.h
71 lines | 1.9 KiB | text/x-c | CLexer
/ include / Variable / VariableSynchronizationGroup2.h
First init from SciQLop Core module...
r0 #ifndef SCIQLOP_VARIABLESYNCHRONIZATIONGROUP2_H
#define SCIQLOP_VARIABLESYNCHRONIZATIONGROUP2_H
#include <QUuid>
#include <set>
#include "CoreGlobal.h"
#include <Common/spimpl.h>
#include <Common/containers.h>
Added SynchronizationGroup2 tests and documentation...
r1 /**
* @brief The VariableSynchronizationGroup2 class holds a list of Variables uuid which are synchronized
* @note This class is part of SciQLop internals, as a normal user you shouldn't have to care about it
*/
First init from SciQLop Core module...
r0 class SCIQLOP_CORE_EXPORT VariableSynchronizationGroup2
{
public:
explicit VariableSynchronizationGroup2()=default;
Added SynchronizationGroup2 tests and documentation...
r1 /**
* @brief VariableSynchronizationGroup2 is a convenience ctor to build a group with a default variable
* @param variable
*/
First init from SciQLop Core module...
r0 explicit VariableSynchronizationGroup2(QUuid variable)
:_variables{{variable}}
{}
Added SynchronizationGroup2 tests and documentation...
r1 /**
* @brief addVariable adds the given variable to the group, does nothing if the varaible is alredy in the group
* @param variable
* @sa removeVariable
*/
void addVariable(QUuid variable) noexcept
{
this->_variables.insert(variable);
}
First init from SciQLop Core module...
r0
Added SynchronizationGroup2 tests and documentation...
r1 /**
* @brief removeVariable removes the given variable from the group, does nothing if the varaible is not in the group
* @param variable
* @sa addVariable
*/
void removeVariable(QUuid variable) noexcept
{
Added true single threshold cache strategy and it behaves as expected...
r12 this->_variables.erase(variable);
Added SynchronizationGroup2 tests and documentation...
r1 }
/**
* @brief contains checks if the given variable is in the group
* @param variable
* @return true if the variable is in the group
*/
bool contains(QUuid variable) const noexcept
First init from SciQLop Core module...
r0 {
return SciQLop::containers::contains(this->_variables,variable);
}
Added SynchronizationGroup2 tests and documentation...
r1 /**
* @brief variables
* @return the list of synchronized variables in this group as a std::set
*/
const std::set<QUuid> &variables() const noexcept
{
return this->_variables;
}
First init from SciQLop Core module...
r0
private:
std::set<QUuid> _variables;
};
#endif // SCIQLOP_VARIABLESYNCHRONIZATIONGROUP2_H