-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSCActiveRunnable.h
70 lines (59 loc) · 3.92 KB
/
SCActiveRunnable.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*------------------------------------------------------------------------------+
| |
| SCL - Simulation Class Library |
| |
| (c) 1994-98 Marc Diefenbruch, Wolfgang Textor |
| University of Essen, Germany |
| |
+-------------------+-------------------+---------------+-------------------+---+
| Module | File | Created | Project | |
+-------------------+-------------------+---------------+-------------------+---+
| SCActiveRunnable |SCActiveRunnable.h | 04. Mai 1996 | SCL | |
+-------------------+-------------------+---------------+-------------------+---+
| |
| Change Log |
| |
| Nr. Date Description |
| ----- -------- ------------------------------------------------------- |
| 001 |
| 000 --.--.-- Neu angelegt |
| |
+------------------------------------------------------------------------------*/
/* Lineal
000000000011111111112222222222333333333344444444445555555555666666666677777777778
012345678901234567890123456789012345678901234567890123456789012345678901234567890
*/
#ifndef __SCACTIVERUNNABLE__
#define __SCACTIVERUNNABLE__
#include "SCBasicTypes.h"
#include "SCEnabledTransition.h" // needed for template instantiation!
#include "SCEnabledTransitionList.h"
#include "SCTimeEvent.h"
class SCActiveRunnable: public SCTimeEvent
{
public:
SCActiveRunnable (class SCTimeEvent *event,
SCEnabledTransitionList *etlist = NULL,
const SCNatural activities = 1);
~SCActiveRunnable (void);
SCEnabledTransitionList * GetEnabledTransitionList(void) const;
SCNatural GetCurrentSuccessor(void) const { return currentSuccessor; }
SCNatural GetNextSuccessor(void) { assert(currentSuccessor < numOfSuccessors);
return ++currentSuccessor; }
SCBoolean HasNextSuccessor(void) const { if (currentSuccessor < numOfSuccessors)
return true;
return false; }
void ResetSuccessors (void) { currentSuccessor = 0; }
private:
SCEnabledTransitionList * enabledTransitionList;
SCNatural numOfSuccessors; // important for verification.
// tells SCIndetVal how often
// this runnable can be choosen
// before it is exhausted. This
// depends on the number of successors
// of the Buechi automaton. This
// number is calculated by the
// virtual NumOfSuccessors() method.
SCNatural currentSuccessor;
};
#endif // __SCACTIVERUNNABLE__