1: // This is the definition of a state object in a state graph. 05/25/98 rj@elilabs.com 3: #ifndef __state__H__ 4: #define __state__H__ 6: class session; 8: class state { 10: public: 12: state() { // constructor 13: } 15: virtual ~state() { // Destructor 16: } 19: // Typical entry action. 20: // 21: // virtual void entry_action(session* current_session); 24: // Typical event handler sub-methods associated with this state. 25: // 26: // virtual boolean foo__guard(session* current_session, blatz* boz, float zot) { 27: // 28: // boolean whatever; 29: // 30: // // Do whatever is needed to determine whether to return TRUE or FALSE. 31: // // In particular, hard coded "return TRUE;" and "return FALSE;" are 32: // // both valid and meaningful and very useful here. 33: // 34: // return whatever; 35: // } 36: // 37: // 38: // virtual bar* foo__exit_action(session* current_session, blatz* boz, float zot) { 39: // 40: // bar* return_value; 41: // 42: // // perform exit action and return appropriatly... 43: // 44: // return return_value; 45: // } 46: // 47: // 48: // // This is implemented as a function to provide write protection! 49: // state* foo__next; // foo__next is filled in by the code generator. 50: // virtual state* foo__next_state(void) { 51: // return foo_next; 52: // } 54: }; 56: #endif // __state__H__