bugmessage: move struct to header file
[model-checker.git] / scanalysis.h
index 0ef12ba407ffa4a80e8b0d82723a2ab872094d05..f9db2db74693d4e4706dc08a2462d1e842f2bb3d 100644 (file)
@@ -1,11 +1,27 @@
 #ifndef SCANALYSIS_H
 #define SCANALYSIS_H
 #include "traceanalysis.h"
+#include "hashtable.h"
 
 class SCAnalysis : public Trace_Analysis {
  public:
        SCAnalysis();
+       ~SCAnalysis();
        virtual void analyze(action_list_t *);
 
+       SNAPSHOTALLOC
+ private:
+       void print_list(action_list_t *list);
+       void buildVectors(action_list_t *);
+       bool updateConstraints(ModelAction *act);
+       void computeCV(action_list_t *);
+       action_list_t * generateSC(action_list_t *);
+       bool processRead(ModelAction *read, ClockVector *cv);
+       ModelAction * getNextAction();
+       bool merge(ClockVector * cv, const ModelAction * act, ClockVector *cv2);
+       int maxthreads;
+       HashTable<const ModelAction *,ClockVector *, uintptr_t, 4 > * cvmap;
+       HashTable<const ModelAction *,const ModelAction *, uintptr_t, 4 > * cycleset;
+       SnapVector<action_list_t> * threadlists;
 };
 #endif