-
Notifications
You must be signed in to change notification settings - Fork 0
/
traceanalysis.h
50 lines (35 loc) · 1.42 KB
/
traceanalysis.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef TRACE_ANALYSIS_H
#define TRACE_ANALYSIS_H
#include "model.h"
class TraceAnalysis {
public:
/** setExecution is called once after installation with a reference to
* the ModelExecution object. */
virtual void setExecution(ModelExecution * execution) = 0;
/** analyze is called once for each feasible trace with the complete
* action_list object. */
virtual void analyze(action_list_t *) = 0;
/** name returns the analysis name string */
virtual const char * name() = 0;
/** Each analysis option is passed into the option method. This
* occurs before installation (i.e., you don't have a
* ModelExecution object yet). A TraceAnalysis object should
* support the option "help" */
virtual bool option(char *) = 0;
/** The finish method is called once at the end. This should be
* used to print out results. */
virtual void finish() = 0;
/** This method is used to inspect the normal/abnormal model
* action. */
virtual void inspectModelAction(ModelAction *act) {}
/** This method will be called by when a plugin is installed by the
* model checker. */
virtual void actionAtInstallation() {}
/** This method will be called when the model checker finishes the
* executions; With this method, the model checker can alter the
* state of the plugin and then the plugin can choose whether or not
* restart the model checker. */
virtual void actionAtModelCheckingFinish() {}
SNAPSHOTALLOC
};
#endif