123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #ifndef __GUI_TASK_H
- #define __GUI_TASK_H
- #pragma once
- #include "SpBase.h"
- #include "SpFSM.h"
- #if defined(RVC_OS_LINUX)
- #include <pthread.h>
- #endif //RVC_OS_LINUX
- struct EntityEntry
- {
- CSimpleStringA Name;
- CSimpleStringA ModuleName;
- int Type;
- int State;
- int Id;
- int Pid;
- int DevelopID;
- int DebugLevel;
- static const char *GetTypeName(int type)
- {
- static const char *_names[] = {
- "auto",
- "manual"
- };
- return _names[type % ARRAYSIZE(_names)];
- }
- static const char *GetStateName(int state)
- {
- static const char *_names[] = {
- "NoStart",
- "Starting",
- "Idle",
- "Busy",
- "Pause",
- "UnLoading",
- "Lost",
- "Close",
- "Killed",
- };
- return _names[state % ARRAYSIZE(_names)];
- }
- static const char *GetErrorName(ErrorCodeEnum Error)
- {
- return "Unknown Error";
- }
- };
- struct StartMenuEntry
- {
- CSimpleStringA strEntity;
- CSimpleStringA strCmdLine;
- };
- class GUITask : public ICallbackListener, public IEntityStateListener, public ILogListener
- {
- public:
- GUITask();
- virtual ~GUITask();
- ErrorCodeEnum Kickoff(CEntityBase *pEntity);
- ErrorCodeEnum Close();
- ErrorCodeEnum AsyncStartEntity(const char *entity_name, const char *cmdline, void *pData);
- ErrorCodeEnum AsyncStopEntity(const char *entity_name, void *pData);
- ErrorCodeEnum AsyncPauseEntity(const char *entity_name, void *pData);
- ErrorCodeEnum AsyncContinueEntity(const char *entity_name, void *pData);
- ErrorCodeEnum AsyncTerminateEntity(const char *entity_name, void *pData);
- ErrorCodeEnum GetAllEntity(CAutoArray<EntityEntry> &Entities);
- ErrorCodeEnum GetEntity(const char *entity_name, EntityEntry &e);
- ErrorCodeEnum GetCustomizeStartMenuList(CAutoArray<StartMenuEntry> &StartItems);
- ErrorCodeEnum SubscribeLog();
- ErrorCodeEnum UnSubscribeLog();
- inline bool HasSubscibeLog() const {return (u__int64_t)m_logSubID != 0;}
- ErrorCodeEnum SetDebugLevel(const char *pszEntity, int nLevel);
- ErrorCodeEnum GetShellDebugLevel(int &nLevel);
- ErrorCodeEnum GetFrameworkInfo(CSimpleStringA &strInfo);
- ErrorCodeEnum ReqFrameworkQuit(bool bRebootOS);
- ErrorCodeEnum BeginInitialize();
- ErrorCodeEnum ShowMobileDialog();
- ErrorCodeEnum DeleteKeySet();
- ErrorCodeEnum BeginAccessAuth();
- CEntityBase* GetEntity();
- ErrorCodeEnum ShowMaintainView(bool bShow, bool bHighLevel);
- ErrorCodeEnum SetWindowPosition(bool bTop);
- ErrorCodeEnum ShowBeginInit(bool bShow);
- ErrorCodeEnum EnableMobileDialMenu(bool bEnable);
- void CloseSoftKeyboard();
- ErrorCodeEnum ShowBlueScreen();
- ErrorCodeEnum ShowFatalError();
- ErrorCodeEnum HideBlueScreen();
- ErrorCodeEnum ShowOutputConsole();
- ErrorCodeEnum CloseOutputConsole();
- // IEntityStateListener
- virtual void OnEntityStateHook(const char *pszEntityName,const char *pszTriggerEntity,EntityStateEnum eState,EntityStateEnum eLastState);
- virtual void OnCeateConnection(const char *pszCallerEntity,const char *pszServiceEntity) {}
- virtual void OnCloseConnection(const char *pszCallerEntity,const char *pszServiceEntity) {}
- virtual void OnUserStateHook(const char *pszEntityName,DWORD dwState,DWORD dwLastState) {
- //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("OnUserStateHook: %s, %d -> %d", pszEntityName, dwLastState, dwState);
- }
- // ICallbackListener
- virtual void OnAnswer(CSmartPointer<IAsynWaitSp> pAsynWaitSp);
- // ILogListener
- virtual void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
- const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
- const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext& pLinkInfo);
- private:
- ErrorCodeEnum OutputMsg(const char *pMsg);
- ErrorCodeEnum RegistEntityStateEvent();
- ErrorCodeEnum UnregistEntityStateEvent();
- void Process();
- static unsigned int __stdcall __Process(void *arg)
- {
- GUITask *pThis = static_cast<GUITask *>(arg);
- pThis->Process();
- #if defined(RVC_OS_WIN)
- _endthreadex(0);
- #else
- pthread_exit(0);
- #endif //RVC_OS_WIN
- return 0;
- }
- private:
- HANDLE m_hEventStartReady;
- HANDLE m_hEventStopReady;
- HANDLE m_hThread;
- HWND m_hWndMainFrame;
- CEntityBase *m_pEntity;
- CUUID m_logSubID;
- bool m_bHighLevel;
- };
- #endif // __GUI_TASK_H
|