Small edit
[satune.git] / src / Tuner / tunable.h
index 45744b06d024a13642eb2b930f3d26f7e8cb8966..480034516bb328fd1e418386aeb6d985ee894509 100644 (file)
@@ -1,24 +1,42 @@
 #ifndef TUNABLE_H
 #define TUNABLE_H
 #include "classlist.h"
+#include "common.h"
 
+class Tuner {
+public:
+       virtual int getTunable(TunableParam param, TunableDesc *descriptor) {ASSERT(0); return 0;}
+       virtual int getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor) {ASSERT(0); return 0;}
+       virtual ~Tuner() {}
+       CMEMALLOC;
+};
 
-struct Tuner {
+class DefaultTuner : public Tuner {
+public:
+       DefaultTuner();
+       int getTunable(TunableParam param, TunableDesc *descriptor);
+       int getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor);
+       CMEMALLOC;
 };
 
-struct TunableDesc {
+
+
+class TunableDesc {
+public:
+       TunableDesc(int _lowValue, int _highValue, int _defaultValue) : lowValue(_lowValue), highValue(_highValue), defaultValue(_defaultValue) {}
        int lowValue;
        int highValue;
        int defaultValue;
+       CMEMALLOC;
 };
 
-Tuner * allocTuner();
-void deleteTuner(Tuner *This);
 
-int getTunable(Tuner *This, TunableParam param, TunableDesc * descriptor);
-int getVarTunable(Tuner *This, VarType vartype, TunableParam param, TunableDesc * descriptor);
+#define GETTUNABLE(This, param, descriptor) This->getTunable(param, descriptor)
+#define GETVARTUNABLE(This, vartype, param, descriptor) This->getTunable(param, descriptor)
 
-#define GETTUNABLE(This, param, descriptor) getTunable(This, param, descriptor);
-#define GETVARTUNABLE(This, vartype, param, descriptor) getTunable(This, param, descriptor);
+static TunableDesc onoff(0, 1, 1);
+static TunableDesc offon(0, 1, 0);
 
+enum Tunables {DECOMPOSEORDER, MUSTREACHGLOBAL, MUSTREACHLOCAL, MUSTREACHPRUNE, OPTIMIZEORDERSTRUCTURE, ORDERINTEGERENCODING};
+typedef enum Tunables Tunables;
 #endif