瀏覽代碼

Z991239-5615 #comment feat:VtmLoader对健康lost进行监护

oilyang 1 年之前
父節點
當前提交
35419c3d90
共有 2 個文件被更改,包括 11 次插入1 次删除
  1. 1 0
      Module/mod_vtmloader/VtmLoaderFSM.cpp
  2. 10 1
      Module/mod_vtmloader/mod_vtmloader.cpp

+ 1 - 0
Module/mod_vtmloader/VtmLoaderFSM.cpp

@@ -1040,6 +1040,7 @@ int CVtmLoaderFSM::EntityLoad()
 		return -1;
 
 	LogWarn(Severity_Low, Error_Succeed, VtmLoader_BootInfoPrint, "开始加载实体");
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("StartLoadEntity")("开始加载实体");
 
 	//int count, cbNum, slNum, opNum;
 	//count = cbNum = slNum = opNum = 0;

+ 10 - 1
Module/mod_vtmloader/mod_vtmloader.cpp

@@ -34,7 +34,15 @@ void VtmLoaderServerSession::Handle_DealWithOldEvent(SpReqAnsContext<VtmLoaderSe
 void CVtmLoaderEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext) 
 {
 	m_FSM.Init(this);
-	//CloseHandle(CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&thread_testEvent, this, 0, NULL));
+	CSmartPointer<IEntityFunction> pFunc = GetFunction();
+	CSmartPointer<IEntityFunctionPrivilege> pFuncPrivilege = pFunc.ConvertCase<IEntityFunctionPrivilege>();
+	ErrorCodeEnum eErrCode = pFuncPrivilege->RegistEntityStateEvent(NULL, this);//only for "HealthManager"
+	if (eErrCode != Error_Succeed)
+	{
+		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM)("RegistEntityState failed(%d).", eErrCode);
+		pTransactionContext->SendAnswer(eErrCode);
+		return;
+	}
 	pTransactionContext->SendAnswer(Error_Succeed) ;		
 }
 
@@ -66,6 +74,7 @@ void CVtmLoaderEntity::OnEntityStateHook(const char* pszEntityName, const char*
 {
 	if (_strnicmp("HealthManager", pszEntityName, strlen("HealthManager")) != 0 || eState != EntityState_Lost)
 		return;
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("%s,eState:%d", pszEntityName, eState);
 	CSmartPointer<IEntityFunction> pFunc = GetFunction();
 	CSmartPointer<IEntityFunctionPrivilege> pFuncPrivilege = pFunc.ConvertCase<IEntityFunctionPrivilege>();
 	if (pFuncPrivilege == NULL)