?? samek12.txt
字號(hào):
The Embedded Angle
by Miro Samek
Listing 1
1: class Bomb : public Fsm {
2: int myTimeout; // extended state variable
3: public:
4: Bomb() : Fsm((State)&Bomb::initial) {} // ctor
5: void initial(Event const *e); // initial pseudostate
6: void setting(Event const *e); // state handler
7: void timing(Event const *e); // state handler
8: void blast(Event const *e); // state handler
9: };
Listing 2
1: void Bomb::initial(Event const *e) {
2: myTimeout = 2;
3: initialTran((State)&Bomb::setting); // initial transition
4: }
5: void Bomb::setting(Event const *e) {
6: switch (e->sig) {
7: case UP_SIG:
8: if (myTimeout < 10) {
9: ++myTimeout;
10: }
11: break;
12: case DOWN_SIG:
13: if (myTimeout > 1) {
14: --myTimeout;
15: }
16: break;
17: case ARM_SIG:
18: tran((State)&Bomb::timing);
19: break;
20: }
21: }
22: void Bomb::timing(Event const *e) {
23: switch (e->sig) {
24: case ENTRY_SIG:
25: SetTimer(locHwnd, 1, 1000, 0); // start ticking every 1000 ms
26: break;
27: case TICK_SIG:
28: if (myTimeout > 0) {
29: --myTimeout;
30: }
31: else { // timeout expired
32: tran((State)&Bomb::blast);
33: }
34: break;
35: case EXIT_SIG:
36: KillTimer(locHwnd, 1); // don't leak the timer!
37: break;
38: }
39: }
1
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -