| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #ifndef __WATCHDOG_H
- #define __WATCHDOG_H
- #pragma once
- #include "stdafx.h"
- #include "SpBase.h"
- #include "modVer.h"
- #include "SpTest.h"
- #include "WatchDogClass.h"
- #include "WatchDogFSM.h"
- #include "DevEntityCommBase.hpp"
- using namespace WatchDog;
- class CWatchDogEntity;
- class WatchDogServerSession : public WatchDogService_ServerSessionBase
- {
- public:
- WatchDogServerSession(CWatchDogEntity* pEntity) : m_pEntity(pEntity){}
- virtual ~WatchDogServerSession(){}
- virtual void Handle_StartWatch(SpReqAnsContext<WatchDogService_StartWatch_Req,WatchDogService_StartWatch_Ans>::Pointer ctx);
- virtual void Handle_Refresh(SpReqAnsContext<WatchDogService_Refresh_Req, WatchDogService_Refresh_Ans>::Pointer ctx);
- virtual void Handle_StopWatch(SpReqAnsContext<WatchDogService_StopWatch_Req, WatchDogService_StopWatch_Ans>::Pointer ctx);
- private:
- CWatchDogEntity* m_pEntity;
- };
- class CWatchDogEntity : public CDevAdptEntityBase
- {
- public:
- CWatchDogEntity(){}
- virtual ~CWatchDogEntity(){}
- virtual const char *GetEntityName() const { return "WatchDog"; }
- const char* GetEntityVersion() const { return MODULE_VERSION_FULL; }
- ON_ENTITYT_TEST()
- virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext)
- {
- LOG_FUNCTION();
- ErrorCodeEnum err = m_fsm.Init(this);
- pTransactionContext->SendAnswer(err);
- }
- virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext)
- {
- pTransactionContext->SendAnswer(Error_Succeed);
- }
- virtual void OnPrePause(CSmartPointer<ITransactionContext> pTransactionContext)
- {
- pTransactionContext->SendAnswer(Error_Succeed);
- }
- virtual CServerSessionBase* OnNewSession(const char*,const char*)
- {
- LOG_FUNCTION();
- return new WatchDogServerSession(this);
- }
- void StartWatch(SpReqAnsContext<WatchDogService_StartWatch_Req,WatchDogService_StartWatch_Ans>::Pointer ctx)
- {
- StartWatchEvent* e = new StartWatchEvent();
- e->ctx = ctx;
- m_fsm.PostEventFIFO(e);
- }
- void Refresh(SpReqAnsContext<WatchDogService_Refresh_Req,WatchDogService_Refresh_Ans>::Pointer ctx)
- {
- RefreshEvent* e = new RefreshEvent();
- e->ctx = ctx;
- m_fsm.PostEventFIFO(e);
- }
- void StopWatch(SpReqAnsContext<WatchDogService_StopWatch_Req,WatchDogService_StopWatch_Ans>::Pointer ctx)
- {
- StopWatchEvent* e = new StopWatchEvent();
- e->ctx = ctx;
- m_fsm.PostEventFIFO(e);
- }
- virtual bool IsService()const{return true;}
- virtual bool IsMultiThread()const{return false;}
- private:
- CWatchDogFSM m_fsm;
- };
- #endif //__WATCHDOG_H
|