ChromiumFSM.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef _CHROMIUM_FSM_H
  2. #define _CHROMIUM_FSM_H
  3. #pragma once
  4. #include "SpFSM.h"
  5. /*#include "zmq.h"*/
  6. namespace Chromium{
  7. enum EvtType
  8. {
  9. USER_EVT_TEST = EVT_USER+1,
  10. USER_EVT_CONNECTED,
  11. USER_EVT_LOSTCONNECTION,
  12. USER_EVT_HEARTBEAT
  13. };
  14. class CChromiumFSM : public FSMImpl<CChromiumFSM>{
  15. public:
  16. CChromiumFSM(CEntityBase* pEntity);
  17. ~CChromiumFSM();
  18. enum {s0,s1,s2};
  19. BEGIN_FSM_STATE(CChromiumFSM)
  20. FSM_STATE_ENTRY(s0,"Idle",s0_on_entry,s0_on_exit,s0_on_event)
  21. FSM_STATE_ENTRY(s1,"Chromium_Idle",s1_on_entry,s1_on_exit,s1_on_event)
  22. FSM_STATE_ENTRY(s2,"Chromium_Lost",s2_on_entry,s2_on_exit,s2_on_event)
  23. END_FSM_STATE()
  24. BEGIN_FSM_RULE(CChromiumFSM, s0)
  25. FSM_RULE_ENTRY(s0, s1, USER_EVT_CONNECTED, 0)
  26. FSM_RULE_ENTRY(s0, s2, USER_EVT_LOSTCONNECTION, 0)
  27. FSM_RULE_ENTRY(s1, s2, USER_EVT_LOSTCONNECTION, 0)
  28. FSM_RULE_ENTRY(s2, s1, USER_EVT_CONNECTED, 0)
  29. END_FSM_RULE()
  30. virtual ErrorCodeEnum OnInit();
  31. virtual ErrorCodeEnum OnExit();
  32. virtual void s0_on_entry();
  33. virtual void s0_on_exit();
  34. virtual unsigned int s0_on_event(FSMEvent* e);
  35. virtual void s1_on_entry();
  36. virtual void s1_on_exit();
  37. virtual unsigned int s1_on_event(FSMEvent* e);
  38. virtual void s2_on_entry();
  39. virtual void s2_on_exit();
  40. virtual unsigned int s2_on_event(FSMEvent* e);
  41. /* void zmq_stream_server_proc();*/
  42. private:
  43. CEntityBase* m_pEntity;
  44. // void* m_pZmqCtx;
  45. // void* m_pZmqSock;
  46. // const char* m_strZmqAddr;
  47. void start_chromium_browser();
  48. };
  49. }
  50. #endif