123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #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);
- CUUID uuidCardSwiper;
- GetFunction()->SubscribeBroadcast("CardSwiper", "", this, uuidCardSwiper);
- 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
|