| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #ifndef __INITIALIZER_FSM_H
- #define __INITIALIZER_FSM_H
- #include "SpFSM.h"
- #include "comm.h"
- class CInitializerFSM : public FSMImpl<CInitializerFSM>, public IFSMStateHooker
- {
- public:
- enum
- {
- Event_ShowGUI = EVT_USER + 1,
- Event_ShowNewGUI,
- Event_StartLogin,
- Event_ConnectionOK,
- Event_LoginResult,
- Event_InitMKResult,
- Event_Disconnect,
- Event_SyncPKResult,
- Event_ReStart
- };
-
- CInitializerFSM();
- ~CInitializerFSM();
- virtual void OnStateTrans(int iSrcState, int iDstState);
- virtual ErrorCodeEnum OnInit();
- virtual ErrorCodeEnum OnExit();
- bool IsInitializeSucc();
-
- enum{s1, s2, s3, s4, s5};
- BEGIN_FSM_STATE(CInitializerFSM)
- FSM_STATE_ENTRY(s1, "Disable",s1_on_entry,s1_on_exit,s1_on_event)
- FSM_STATE_ENTRY(s2, "Login",s2_on_entry,s2_on_exit,s2_on_event)
- FSM_STATE_ENTRY(s3, "InitMK",s3_on_entry,s3_on_exit,s3_on_event) // 下载集中配置及初始化主密钥
- FSM_STATE_ENTRY(s4, "Succeed",s4_on_entry,s4_on_exit,s4_on_event)
- FSM_STATE_ENTRY(s5, "Failed",s5_on_entry,s5_on_exit,s5_on_event)
- END_FSM_STATE()
- BEGIN_FSM_RULE(CInitializerFSM,s1)
- FSM_RULE_ENTRY_ANY(s1, s2, Event_StartLogin)
- FSM_RULE_ENTRY(s2, s3, Event_LoginResult, 0)
- FSM_RULE_ENTRY(s2, s5, Event_LoginResult, 1)
- FSM_RULE_ENTRY_ANY(s2, s1, Event_Disconnect)
- FSM_RULE_ENTRY_ANY(s3, s1, Event_Disconnect)
- FSM_RULE_ENTRY(s3, s4, Event_InitMKResult, 0)
- FSM_RULE_ENTRY(s3, s5, Event_InitMKResult, 1)
- FSM_RULE_ENTRY_ANY(s4, s1, Event_ReStart)
- FSM_RULE_ENTRY_ANY(s5, s1, Event_ReStart)
- FSM_RULE_ENTRY_ANY(s5, s2, Event_StartLogin)
- END_FSM_RULE()
- void s1_on_entry();
- void s1_on_exit();
- unsigned int s1_on_event(FSMEvent* event);
- void s2_on_entry();
- void s2_on_exit();
- unsigned int s2_on_event(FSMEvent* event);
- void s3_on_entry();
- void s3_on_exit();
- unsigned int s3_on_event(FSMEvent* event);
- void s4_on_entry();
- void s4_on_exit();
- unsigned int s4_on_event(FSMEvent* event);
- void s5_on_entry();
- void s5_on_exit();
- unsigned int s5_on_event(FSMEvent* event);
- };
- #endif // !__INITIALIZER_FSM_H
|