12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef __MOD_HEARTBEAT_H
- #define __MOD_HEARTBEAT_H
- #pragma once
- #include "SpBase.h"
- #include "HeartBeatFSM.h"
- #include "HeartBeat_server_g.h"
- using namespace HeartBeat;
- #include "HealthManager_msg_g.h"
- using namespace HealthManager;
- class HeartBeatServerSession : public HeartBeatService_ServerSessionBase
- {
- public:
- HeartBeatServerSession(CHeartBeatEntity* pEntity):m_pEntity(pEntity){}
- virtual ~HeartBeatServerSession(){}
- void Handle_Instruction(SpReqAnsContext<HeartBeatService_Instruction_Req, HeartBeatService_Instruction_Ans>::Pointer ctx);
- void Handle_CardActive(SpReqAnsContext<HeartBeatService_CardActive_Req, HeartBeatService_CardActive_Ans>::Pointer ctx);
- private:
- CHeartBeatEntity* m_pEntity;
- };
- class CHeartBeatEntity : public CEntityBase, public ISysVarListener, public IBroadcastListener
- {
- public:
- CHeartBeatEntity():m_bConnetedSS(false){}
- virtual ~CHeartBeatEntity(){}
- virtual const char *GetEntityName() const { return "HeartBeat"; }
- virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext)
- {
- LOG_FUNCTION();
- ErrorCodeEnum rt = m_fsm.Init(this);
- GetFunction()->RegistSysVarEvent("TerminalStage", this);
- pTransactionContext->SendAnswer(rt);
- }
- virtual void OnPrePause(CSmartPointer<ITransactionContext> pTransactionContext)
- {
- pTransactionContext->SendAnswer(Error_Succeed);
- }
- virtual void OnPreContinue(CSmartPointer<ITransactionContext> pTransactionContext)
- {
- pTransactionContext->SendAnswer(Error_Succeed);
- }
- virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext)
- {
- pTransactionContext->SendAnswer(Error_Succeed);
- }
- virtual CServerSessionBase* OnNewSession(const char*,const char*)
- {
- LOG_FUNCTION();
- return new HeartBeatServerSession(this);
- }
- void Instruction(SpReqAnsContext<HeartBeatService_Instruction_Req, HeartBeatService_Instruction_Ans>::Pointer ctx)
- {
- InstructionEvent *pEvt = new InstructionEvent();
- pEvt->ctx = ctx;
- m_fsm.PostEventFIFO(pEvt);
- }
- void CardActive(SpReqAnsContext<HeartBeatService_CardActive_Req, HeartBeatService_CardActive_Ans>::Pointer ctx)
- {
- CardActiveEvent *pEvt = new CardActiveEvent();
- pEvt->ctx = ctx;
- m_fsm.PostEventFIFO(pEvt);
- }
- virtual void OnSysVarEvent(const char *pszKey,
- const char *pszValue, const char *pszOldValue, const char *pszEntityName);
- virtual void OnSelfTest(EntityTestEnum eTestType,CSmartPointer<ITransactionContext> pTransactionContext)
- {
- m_fsm.SelfTest(eTestType,pTransactionContext);
- }
- virtual bool IsService()const{return true;}
- virtual bool IsMultiThread()const{return false;}
- virtual void OnBroadcastEvent(CUUID SubID, const char *pszEntityName, DWORD dwMessageId, DWORD dwMessageSignature, CAutoBuffer Buffer);
- 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:
- CHeartBeatFSM m_fsm;
- bool m_bConnetedSS;
- };
- #endif //__MOD_HEARTBEAT_H
|