##// END OF EJS Templates
Updates model after an event has been created through the colored zone
Updates model after an event has been created through the colored zone

File last commit:

r1004:15899f42a907
r1286:073d4af7c849
Show More
VariableCacheStrategyFactory.h
46 lines | 1.3 KiB | text/x-c | CLexer
/ core / include / Variable / VariableCacheStrategyFactory.h
#ifndef SCIQLOP_VARIABLECACHESTRATEGYFACTORY_H
#define SCIQLOP_VARIABLECACHESTRATEGYFACTORY_H
#include <memory>
#include <stdexcept>
#include "VariableCacheStrategy.h"
#include "VariableSingleThresholdCacheStrategy.h"
#include <QLoggingCategory>
#include <QString>
Q_LOGGING_CATEGORY(LOG_VariableCacheStrategyFactory, "VariableCacheStrategyFactory")
enum class CacheStrategy { SingleThreshold, TwoThreashold };
class VariableCacheStrategyFactory {
using cacheStratPtr = std::unique_ptr<VariableCacheStrategy>;
public:
static cacheStratPtr createCacheStrategy(CacheStrategy specificStrategy)
{
switch (specificStrategy) {
case CacheStrategy::SingleThreshold: {
return std::unique_ptr<VariableCacheStrategy>{
new VariableSingleThresholdCacheStrategy{}};
break;
}
case CacheStrategy::TwoThreashold: {
qCCritical(LOG_VariableCacheStrategyFactory())
<< QObject::tr("cache strategy not implemented yet");
break;
}
default:
qCCritical(LOG_VariableCacheStrategyFactory())
<< QObject::tr("Unknown cache strategy");
}
return nullptr;
}
};
#endif // VARIABLECACHESTRATEGYFACTORY_H