README.md: update title
[model-checker.git] / traceanalysis.h
1 #ifndef TRACE_ANALYSIS_H
2 #define TRACE_ANALYSIS_H
3 #include "model.h"
4
5 class TraceAnalysis {
6  public:
7         /** setExecution is called once after installation with a reference to
8          *  the ModelExecution object. */
9
10         virtual void setExecution(ModelExecution * execution) = 0;
11         
12         /** analyze is called once for each feasible trace with the complete
13          *  action_list object. */
14
15         virtual void analyze(action_list_t *) = 0;
16
17         /** name returns the analysis name string */
18
19         virtual const char * name() = 0;
20
21         /** Each analysis option is passed into the option method.  This
22          *      occurs before installation (i.e., you don't have a
23          *      ModelExecution object yet).  A TraceAnalysis object should
24          *      support the option "help"  */
25
26         virtual bool option(char *) = 0;
27
28         /** The finish method is called once at the end.  This should be
29          *  used to print out results.  */
30
31         virtual void finish() = 0;
32
33         SNAPSHOTALLOC
34 };
35 #endif