1- #include " ../include/concrete_state .hpp"
1+ #include " ../include/concrete_states .hpp"
22#include " ../include/state.hpp"
3- #include " ../include/state_context .hpp"
3+ #include " ../include/state_machine .hpp"
44
55// User Input
6- void UserInputState::enter () {
7- print (" Enter User Input State\n " );
6+ void UserInputState::enter (StateContext& context) {
7+ std::print (" Enter User Input State\n " );
8+ std::print (" Previous Number: {}\n " , context.get_data ());
89}
910
10- void UserInputState::handle () {
11- print (" Handle User Input State\n " );
11+ void UserInputState::handle (StateContext& context) {
12+ std::print (" Handle User Input State\n " );
13+ context.inc_data ();
1214}
1315
14- void UserInputState::exit () {
15- print (" Exit User Input State\n -------------\n " );
16- this ->contect ->transition_state (new ElfParserState);
16+ State* UserInputState::exit (StateContext& context) {
17+ std::print (" Exit User Input State\n -------------\n " );
18+ (void ) context;
19+ return new ElfParserState;
1720}
1821
1922// Elf Parser
20- void ElfParserState::enter () {
21- print (" Enter Elf Parser State\n " );
23+ void ElfParserState::enter (StateContext& context) {
24+ std::print (" Enter Elf Parser State\n " );
25+ std::print (" Previous Number: {}\n " , context.get_data ());
2226}
2327
24- void ElfParserState::handle () {
25- print (" Handle Elf Parser State\n " );
28+ void ElfParserState::handle (StateContext& context) {
29+ std::print (" Handle Elf Parser State\n " );
30+ context.inc_data ();
2631}
2732
28- void ElfParserState::exit () {
29- print (" Exit Elf Parser State\n -------------\n " );
30- this ->context ->transition_state (new CallgraphState);
33+ State* ElfParserState::exit (StateContext& context) {
34+ std::print (" Exit Elf Parser State\n -------------\n " );
35+ (void ) context;
36+ return new CallgraphState;
3137}
3238
3339// Callgraph
34- void CallgraphState::enter () {
35- print (" Enter Callgraph State\n " );
40+ void CallgraphState::enter (StateContext& context) {
41+ std::print (" Enter Callgraph State\n " );
42+ std::print (" Previous Number: {}\n " , context.get_data ());
3643}
3744
38- void CallgraphState::handle () {
39- print (" Handle Callgraph State\n " );
45+ void CallgraphState::handle (StateContext& context) {
46+ context.inc_data ();
47+ std::print (" Handle Callgraph State\n " );
4048}
4149
42- void CallgraphState::exit () {
43- print (" Exit Callgraph State\n -------------\n " );
44- this ->context ->transition_state (new AbiParserState);
50+ State* CallgraphState::exit (StateContext& context) {
51+ std::print (" Exit Callgraph State\n -------------\n " );
52+ (void ) context;
53+ return new AbiParserState;
4554}
4655
4756// Abi Parser
48- void AbiParserState::enter () {
49- print (" Enter ABI Parser State\n " );
57+ void AbiParserState::enter (StateContext& context) {
58+ std::print (" Enter ABI Parser State\n " );
59+ std::print (" Previous Number: {}\n " , context.get_data ());
5060}
5161
52- void AbiParserState::handle () {
53- print (" Handle ABI Parser State\n " );
62+ void AbiParserState::handle (StateContext& context) {
63+ std::print (" Handle ABI Parser State\n " );
64+ context.inc_data ();
5465}
5566
56- void AbiParserState::exit () {
57- print (" Exit ABI Parser State\n -------------\n " );
58- this ->context ->transition_state (new ValidatorState);
67+ State* AbiParserState::exit (StateContext& context) {
68+ std::print (" Exit ABI Parser State\n -------------\n " );
69+ (void ) context;
70+ return new ValidatorState;
5971}
6072
6173// Validator
62- void ValidatorState::enter () {
63- print (" Enter Validator State\n " )
74+ void ValidatorState::enter (StateContext& context) {
75+ std::print (" Enter Validator State\n " );
76+ std::print (" Previous Number: {}\n " , context.get_data ());
6477}
6578
66- void ValidatorState::handle () {
67- print (" Handle Validator State\n " );
79+ void ValidatorState::handle (StateContext& context) {
80+ std::print (" Handle Validator State\n " );
81+ context.inc_data ();
6882}
6983
70- void ValidatorState::exit () {
71- print (" Exit Validator State\n -------------\n " );
72- this ->context ->transition_state (new OutputState);
84+ State* ValidatorState::exit (StateContext& context) {
85+ std::print (" Exit Validator State\n -------------\n " );
86+ (void ) context;
87+ return new OutputState;
7388}
7489
7590// Output
76- void OutputState::enter () {
77- print (" Enter Output State\n " );
91+ void OutputState::enter (StateContext& context) {
92+ std::print (" Enter Output State\n " );
93+ std::print (" Previous Number: {}\n " , context.get_data ());
7894}
7995
80- void OutputState::handle () {
81- print (" Handle Output State\n " );
96+ void OutputState::handle (StateContext& context) {
97+ std::print (" Handle Output State\n " );
98+ context.inc_data ();
8299}
83100
84- void OutputState::exit () {
85- print (" Exit Output State\n -------------\n " );
86- this ->context ->transition_state (new OutputState);
101+ State* OutputState::exit (StateContext& context) {
102+ std::print (" Exit Output State\n -------------\n " );
103+ (void ) context;
104+ return nullptr ;
87105}
88106
89107// Error
90- void ErrorState::enter () {
91- print (" Enter Error State\n " )
108+ void ErrorState::enter (StateContext& context) {
109+ std::print (" Enter Error State\n " );
110+ (void ) context;
92111}
93112
94- void ErrorState::handle () {
95- print (" Handle Error State\n " );
113+ void ErrorState::handle (StateContext& context) {
114+ std::print (" Handle Error State\n " );
115+ (void ) context;
96116}
97117
98- void ErrorState::exit () {
99- print (" Exit Error State\n -------------\n " )
118+ State* ErrorState::exit (StateContext& context) {
119+ std::print (" Exit Error State\n -------------\n " );
120+ (void ) context;
121+ return nullptr ;
100122}
0 commit comments