expression_model_store.h
871 Bytes
#ifndef SHARED_EXPRESSION_MODEL_STORE_H
#define SHARED_EXPRESSION_MODEL_STORE_H
#include "expression_model.h"
#include <stdint.h>
namespace Shared {
/* ExpressionModelStore is a dumb class.
* Its only job is to store model */
class ExpressionModelStore {
public:
ExpressionModelStore();
virtual ExpressionModel * modelAtIndex(int i) = 0;
ExpressionModel * addEmptyModel();
void removeModel(ExpressionModel * f);
virtual void removeAll();
int numberOfModels() const { return m_numberOfModels; };
virtual ExpressionModel * definedModelAtIndex(int i);
int numberOfDefinedModels();
virtual int maxNumberOfModels() const = 0;
virtual void tidy();
protected:
virtual ExpressionModel * emptyModel() = 0;
virtual ExpressionModel * nullModel() = 0;
virtual void setModelAtIndex(ExpressionModel * f, int i) = 0;
int m_numberOfModels;
};
}
#endif