1: // A state in an RS flip flip state graph. 05/25/98 rj@elilabs.com
3: #ifndef __rs_ff_state__H__
4: #define __rs_ff_state__H__
6: class rs_ff_session;
8: #include "mytypes.H"
9: #include "state.H"
11: class rs_ff_state : public state {
13: public:
15: rs_ff_state();
17: ~rs_ff_state();
19: // The entry action.
20: //
21: boolean my_Q;
22: boolean my_Qbar;
23: virtual void entry_action(rs_ff_session* current_session);
26: // The event sub-handlers.
28: // event S
29: //
30: boolean S__guard_value;
31: rs_ff_state* S__next_value;
32: virtual boolean S__guard(session* current_session);
33: virtual void S__exit_action(session* current_session);
34: virtual rs_ff_state* S__next_state(void);
36: // event Sbar
37: //
38: boolean Sbar__guard_value;
39: rs_ff_state* Sbar__next_value;
40: virtual boolean Sbar__guard(session* current_session);
41: virtual void Sbar__exit_action(session* current_session);
42: virtual rs_ff_state* Sbar__next_state(void);
44: // event R
45: //
46: boolean R__guard_value;
47: rs_ff_state* R__next_value;
48: virtual boolean R__guard(session* current_session);
49: virtual void R__exit_action(session* current_session);
50: virtual rs_ff_state* R__next_state(void);
52: // event Rbar
53: //
54: boolean Rbar__guard_value;
55: rs_ff_state* Rbar__next_value;
56: virtual boolean Rbar__guard(session* current_session);
57: virtual void Rbar__exit_action(session* current_session);
58: virtual rs_ff_state* Rbar__next_state(void);
60: // Initializer.
61: //
62: void set(
63: // output
64: boolean Q,
65: boolean Qbar,
66: // guard
67: boolean gS,
68: boolean gSbar,
69: boolean gR,
70: boolean gRbar,
71: // next state
72: rs_ff_state* S,
73: rs_ff_state* Sbar,
74: rs_ff_state* R,
75: rs_ff_state* Rbar
76: );
78: };
80: #endif // __rs_ff_state__H__