ADAPT / lib / include / analyzer.h
analyzer.h
Raw
#include "knowledge_base.h"
#include "analysis.h"

#ifndef ANALYZER_H
#define ANALYZER_H

struct mape_k;

typedef void *(*strategy_sel_fn)(struct knowledge_base *k_b);
#define NUM_ANALYSES_INIT 4

struct analyzer
{
    //analysis handles
    struct analysis **analyses;
    size_t num_analyses;
    size_t max_analyses;

    //Strategy Selector
    strategy_sel_fn strategy_sel;

    /* Only make the pointer known */
    struct mape_k *mape_k;
};

void init_analyzer(struct analyzer *ana, struct mape_k *mape_k, strategy_sel_fn strategy_sel);
void analyzer_add_analysis(struct analyzer *ana, struct analysis *a);
void analyzer_rem_analysis(struct analyzer *ana, struct analysis *a);
bool analyzer_all_analyses_done(struct analyzer *ana);
void run_analyzer(struct analyzer *ana);
void destroy_analyzer(struct analyzer *ana);

#endif