00001 00002 00003 #ifndef STRAT_H 00004 #define STRAT_H 00005 00007 #define SEQ_T -3 00008 #define INIT_T -2 00009 #define CONS_T -1 00010 #define OPT_T 0 00011 #define OPT2_T 1 00012 #define OPT3_T 2 00013 #define SPEC_T 3 00014 #define ADAPT_T 4 00015 #define ADAPT2_T 5 00016 #define ADAPT3_T 6 00017 #define ADAPT4_T 7 00018 00020 class strat 00021 { 00022 protected: 00023 #ifndef CMK_OPTIMIZE 00024 localStat *localStats; 00025 #endif 00027 PVT *localPVT; 00029 eventQueue *eq; 00031 rep *userObj; 00033 sim *parent; 00034 public: 00036 int STRAT_T; 00038 00040 Event *targetEvent; 00042 Event *currentEvent; 00044 strat(); 00046 virtual ~strat() { } 00048 void init(eventQueue *q, rep *obj, sim *p, int pIdx); 00050 virtual void initSync() { } 00052 00055 virtual void Step(); 00057 virtual void Rollback() { } 00059 virtual void CancelEvents() { } 00061 virtual POSE_TimeType SafeTime() { return userObj->OVT(); } 00062 }; 00063 00064 #endif
1.5.1