##// END OF EJS Templates
Some refactoring on PB11 wrappers...
Some refactoring on PB11 wrappers Most sciqlop core wrappers are moved into a dedicated python module. We needs to get rid off sqpapp! All current sciqlop modules should either be stateless or act as real singletons they must not need any app to be used. This will ease testing, wrapping and usage. Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r512:d00d6fd96c10
r1341:f18e017310bc
Show More
VariableCacheController.h
45 lines | 1.3 KiB | text/x-c | CLexer
/ core / include / Variable / VariableCacheController.h
#ifndef SCIQLOP_VARIABLECACHECONTROLLER_H
#define SCIQLOP_VARIABLECACHECONTROLLER_H
#include "CoreGlobal.h"
#include <QLoggingCategory>
#include <QObject>
#include <Data/SqpRange.h>
#include <QLoggingCategory>
#include <Common/spimpl.h>
Q_DECLARE_LOGGING_CATEGORY(LOG_VariableCacheController)
class Variable;
/// This class aims to store in the cache all of the dateTime already requested to the variable.
class SCIQLOP_CORE_EXPORT VariableCacheController : public QObject {
Q_OBJECT
public:
explicit VariableCacheController(QObject *parent = 0);
void addDateTime(std::shared_ptr<Variable> variable, const SqpRange &dateTime);
/// Clears cache concerning a variable
void clear(std::shared_ptr<Variable> variable) noexcept;
/// Return all of the SqpDataTime part of the dateTime whose are not in the cache
QVector<SqpRange> provideNotInCacheDateTimeList(std::shared_ptr<Variable> variable,
const SqpRange &dateTime);
QVector<SqpRange> dateCacheList(std::shared_ptr<Variable> variable) const noexcept;
void displayCache(std::shared_ptr<Variable> variable) const;
private:
class VariableCacheControllerPrivate;
spimpl::unique_impl_ptr<VariableCacheControllerPrivate> impl;
};
#endif // SCIQLOP_VARIABLECACHECONTROLLER_H