SpEntityPrivilege.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #pragma once
  2. #include "SpEntity.h"
  3. #include "hashset.h"
  4. #include "spinlock.h"
  5. class SpEntityPrivilege : public IEntityFunctionPrivilege, public SpEntity
  6. {
  7. public:
  8. SpEntityPrivilege(SpModule *pModule, sp_entity_t *ent, sp_cfg_shell_entity_t *cfg_ent, CEntityBase *pEntityBase);
  9. virtual ~SpEntityPrivilege();
  10. virtual ErrorCodeEnum Init();
  11. virtual void Term();
  12. virtual CSmartPointer<IEntityFunctionPrivilege> GetPrivilegeFunction();
  13. //
  14. // IEntityFunctionPrivilege
  15. //
  16. // entity management
  17. virtual ErrorCodeEnum StartEntity(const char *pszEntityName, const char *pszCmdLine,CSmartPointer<IAsynWaitSp> &pAsynWaitSp);
  18. virtual ErrorCodeEnum StopEntity(const char *pszEntityName,CSmartPointer<IAsynWaitSp> &pAsynWaitSp);
  19. virtual ErrorCodeEnum CloseEntity(const char *pszEntityName,CSmartPointer<IAsynWaitSp> &pAsynWaitSp);
  20. virtual ErrorCodeEnum TerminateEntity(const char *pszEntityName,CSmartPointer<IAsynWaitSp> &pAsynWaitSp);
  21. virtual ErrorCodeEnum PauseEntity(const char *pszEntityName,CSmartPointer<IAsynWaitSp> &pAsynWaitSp);
  22. virtual ErrorCodeEnum ContinueEntity(const char *pszEntityName,CSmartPointer<IAsynWaitSp> &pAsynWaitSp);
  23. virtual ErrorCodeEnum TestEntity(const char *pszEntityName,EntityTestEnum eTestType, CSmartPointer<IAsynWaitSp> &pAsynWaitSp);
  24. // regist entity event
  25. virtual ErrorCodeEnum RegistEntityLifeEvent(IEntityLifeListener *pListener);
  26. virtual ErrorCodeEnum UnregistLiftEvent();
  27. virtual ErrorCodeEnum RegistEntityStateEvent(const char *pszEntityName,IEntityStateListener *pListener);
  28. virtual ErrorCodeEnum UnregistEntityStateEvent(const char *pszEntityName);
  29. virtual ErrorCodeEnum GetSpecifiedEntityState(const char* pszEntityName, EntityStateEnum& eEntityState, DWORD& dwUserState);
  30. // blue screen
  31. virtual ErrorCodeEnum DisplayBlueScreen(const char *pszTitle);
  32. virtual ErrorCodeEnum UndisplayBlueScreen();
  33. // update related functions
  34. virtual ErrorCodeEnum Reboot(RebootTriggerEnum eTriggerReason,RebootWayEnum eWay);
  35. virtual ErrorCodeEnum ShowOuputConsole();
  36. virtual ErrorCodeEnum CloseOuputConsole();
  37. virtual ErrorCodeEnum BeginLogSend(const char* endpoint, const char* topicSys, const char* topicUser
  38. , const char* topicBeidou, const char* bussSys, const char* bussUser, const char* vtmWeb);
  39. virtual ErrorCodeEnum SetHttpToken(const char* channelId, const char* token);
  40. virtual ErrorCodeEnum SetEntityPriority(const char* pszEntityName, EntityPriorityEnum nPriority);
  41. virtual ErrorCodeEnum GetEntityPriority(const char* pszEntityName, EntityPriorityEnum& nPriority);
  42. virtual void GetSendLogInfo(unsigned long* t_upload_TerminalSys_Suc, unsigned long* t_upload_TerminalUser_Suc,
  43. unsigned long* t_upload_BussinessSys_Suc, unsigned long* t_upload_BussinessUser_Suc, unsigned long* t_upload_beidou_Suc,
  44. unsigned long* t_upload_TerminalSys_Err, unsigned long* t_upload_TerminalUser_Err,
  45. unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err,
  46. unsigned long* t_discard_full, unsigned long* t_discard_RTI1002, unsigned long* curLogNum);
  47. //先调用这个去初始化url
  48. virtual ErrorCodeEnum InitCfgUrl(VTMInitParam& info);
  49. virtual ErrorCodeEnum TryUpdateCfg();
  50. virtual ErrorCodeEnum TryUpdateCenterCfg(bool& isUpdate, bool& isReset, CSimpleString& version);
  51. virtual ErrorCodeEnum TryUpdateToken(CSimpleString& oldToken, CSimpleString& newToken);
  52. virtual ErrorCodeEnum GetToken(CSimpleString& curToken);
  53. virtual ErrorCodeEnum WriteTerminalNoToRootIni(CSimpleString terminalNo);
  54. virtual ErrorCodeEnum ModifyMemCfgParam(MemCfgParam& info);
  55. virtual ErrorCodeEnum TryUpdateVTMERRMSG();
  56. virtual ErrorCodeEnum GetVTMErrMsgArr(CAutoArray<CSimpleStringA>& strErrorCodeArr,
  57. CAutoArray<CSimpleStringA>& strDescriptionArr, CAutoArray<CSimpleStringA> &strRemarkArr);
  58. virtual ErrorCodeEnum RewriteDepVersion(const CSimpleStringA& strVersion, bool bRefresh);
  59. // debug
  60. virtual ErrorCodeEnum SetSysDebugLevel(const char *pszEntityName,DebugLevelEnum eDebugLevel,bool bPersist=false);
  61. virtual ErrorCodeEnum RefreshAppBootState(AppBootStateEnum eState);
  62. private:
  63. void on_entity_create(int entity_id, int trigger_entity_id);
  64. void on_entity_close(int entity_id, int trigger_entity_id, int cause_code);
  65. void on_entity_exception(int entity_id, int error, int entity_state);
  66. static void __on_entity_create(sp_mod_entity_life_listener_t *listener, int entity_id, int trigger_entity_id, void *user_data);
  67. static void __on_entity_close(sp_mod_entity_life_listener_t *listener, int entity_id, int trigger_entity_id, int cause_code, void *user_data);
  68. static void __on_entity_exception(sp_mod_entity_life_listener_t *listener, int entity_id, int error, int entity_state, void *user_data);
  69. void on_user_state(sp_mod_entity_state_listener_t *listener, int entity_id, int last_state, int curr_state);
  70. void on_entity_state(sp_mod_entity_state_listener_t *listener, int entity_id, int trigger_entity_id, int last_state, int curr_state);
  71. void on_create_connection(sp_mod_entity_state_listener_t *listener, int src_entity_id, int dst_entity_id);
  72. void on_close_connection(sp_mod_entity_state_listener_t *listener, int src_entity_id, int dst_entity_id);
  73. static void __on_user_state(sp_mod_entity_state_listener_t *listener, int entity_id, int last_state, int curr_state, void *user_data);
  74. static void __on_entity_state(sp_mod_entity_state_listener_t *listener, int entity_id, int trigger_entity_id, int last_state, int curr_state, void *user_data);
  75. static void __on_create_connection(sp_mod_entity_state_listener_t *listener, int src_entity_id, int dst_entity_id, void *user_data);
  76. static void __on_close_connection(sp_mod_entity_state_listener_t *listener, int src_entity_id, int dst_entity_id, void *user_data);
  77. ErrorCodeEnum UpdateVerTxt(const char* strActiveFilePath, const char* toWriteVersionStr, bool toCheck = false);
  78. protected:
  79. spinlock_t m_maplock;
  80. stringmap_t *m_pEntityStateListenerMap;
  81. sp_mod_entity_life_listener_t *m_pEntityLifeListener;
  82. };