VariableSingleThresholdCacheStrategy.h
32 lines
| 1.1 KiB
| text/x-c
|
CLexer
Alexandre Leroux
|
r771 | #ifndef SCIQLOP_VARIABLESINGLETHRESHOLDCACHESTRATEGY_H | ||
#define SCIQLOP_VARIABLESINGLETHRESHOLDCACHESTRATEGY_H | ||||
#include "Settings/SqpSettingsDefs.h" | ||||
#include "VariableCacheStrategy.h" | ||||
/// This class aims to hande the cache strategy. | ||||
class SCIQLOP_CORE_EXPORT VariableSingleThresholdCacheStrategy : public VariableCacheStrategy { | ||||
public: | ||||
VariableSingleThresholdCacheStrategy() = default; | ||||
std::pair<SqpRange, SqpRange> computeRange(const SqpRange &vRange, | ||||
const SqpRange &rangeRequested) override | ||||
{ | ||||
auto varRanges = std::pair<SqpRange, SqpRange>{}; | ||||
auto toleranceFactor = SqpSettings::toleranceValue( | ||||
GENERAL_TOLERANCE_AT_UPDATE_KEY, GENERAL_TOLERANCE_AT_UPDATE_DEFAULT_VALUE); | ||||
auto tolerance = toleranceFactor * (rangeRequested.m_TEnd - rangeRequested.m_TStart); | ||||
varRanges.first = rangeRequested; | ||||
varRanges.second | ||||
= SqpRange{rangeRequested.m_TStart - tolerance, rangeRequested.m_TEnd + tolerance}; | ||||
return varRanges; | ||||
} | ||||
}; | ||||
#endif // SCIQLOP_VARIABLESINGLETHRESHOLDCACHESTRATEGY_H | ||||