ukeytask.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #ifndef __GUI_TASK_H
  2. #define __GUI_TASK_H
  3. #pragma once
  4. #include "SpBase.h"
  5. #define EE_AUTO 0
  6. #define EE_MANUAL 1
  7. #define WM_GUICONSOLE (WM_APP + 0x1)
  8. #define WM_SHOWDEBUGMSG (WM_APP + 0x2)
  9. struct EntityEntry
  10. {
  11. CSimpleStringA Name;
  12. CSimpleStringA ModuleName;
  13. int Type;
  14. int State;
  15. int Id;
  16. int Pid;
  17. int DevelopID;
  18. static const char *GetTypeName(int type)
  19. {
  20. static const char *_names[] = {
  21. "auto",
  22. "manual"
  23. };
  24. return _names[type % ARRAYSIZE(_names)];
  25. }
  26. static const char *GetStateName(int state)
  27. {
  28. static const char *_names[] = {
  29. "NoStart",
  30. "Starting",
  31. "Idle",
  32. "Busy",
  33. "Pause",
  34. "UnLoading",
  35. "Lost",
  36. "Close",
  37. "Killed",
  38. };
  39. return _names[state % ARRAYSIZE(_names)];
  40. }
  41. static const char *GetErrorName(ErrorCodeEnum Error)
  42. {
  43. return "Unknown Error";
  44. }
  45. };
  46. struct StartMenuEntry
  47. {
  48. CSimpleStringA strEntity;
  49. CSimpleStringA strCmdLine;
  50. };
  51. struct IConsole
  52. {
  53. virtual ErrorCodeEnum Initialize()=0;
  54. virtual ErrorCodeEnum UnInitialize()=0;
  55. virtual void OnStartRead(BOOL bOk)=0;
  56. virtual void OnStopReady()=0;
  57. virtual ErrorCodeEnum AsyncStartEntity(const char *entity_name, const char *cmdline, void *pData)=0;
  58. virtual ErrorCodeEnum AsyncStopEntity(const char *entity_name, void *pData)=0;
  59. virtual ErrorCodeEnum GetAllEntity(CAutoArray<EntityEntry> &Entities)=0;
  60. virtual ErrorCodeEnum GetEntity(const char *entity_name, EntityEntry &e)=0;
  61. virtual ErrorCodeEnum ReqFrameworkQuit() =0;
  62. };
  63. class UKEYTask : public IConsole, public ICallbackListener/*, public IEntityStateListener*/
  64. {
  65. public:
  66. UKEYTask();
  67. virtual ~UKEYTask();
  68. void SetOwner(CEntityBase *pEntity) { m_pEntity = pEntity; }
  69. ErrorCodeEnum WaitWindowCreated();
  70. ErrorCodeEnum CloseWindow();
  71. // IConsole
  72. virtual ErrorCodeEnum Initialize();
  73. virtual ErrorCodeEnum UnInitialize();
  74. virtual void OnStartRead(BOOL bOk);
  75. virtual void OnStopReady();
  76. virtual ErrorCodeEnum AsyncStartEntity(const char *entity_name, const char *cmdline, void *pData);
  77. virtual ErrorCodeEnum AsyncStopEntity(const char *entity_name, void *pData);
  78. virtual ErrorCodeEnum GetAllEntity(CAutoArray<EntityEntry> &Entities);
  79. virtual ErrorCodeEnum GetEntity(const char *entity_name, EntityEntry &e);
  80. virtual ErrorCodeEnum ReqFrameworkQuit();
  81. //ICallbackListener
  82. virtual void OnAnswer(CSmartPointer<IAsynWaitSp> pAsynWaitSp);
  83. ErrorCodeEnum Kickoff();
  84. ErrorCodeEnum Close();
  85. ErrorCodeEnum OutputMsg(const char *pMsg);
  86. private:
  87. void Process();
  88. static unsigned int __stdcall __Process(void *arg)
  89. {
  90. UKEYTask *pThis = static_cast<UKEYTask *>(arg);
  91. pThis->Process();
  92. return 0;
  93. }
  94. private:
  95. HANDLE m_hEventStartReady;
  96. HANDLE m_hEventStopReady;
  97. HANDLE m_hThread;
  98. HWND m_hWndMainFrame;
  99. CEntityBase *m_pEntity;
  100. CUUID m_logSubID;
  101. };
  102. #endif // __GUI_TASK_H