#pragma once #include "LogicFlowController.h" class IPeriodicWork : public IWorkNode { public: DECL_CONST_MEMBER SECOND = 1000; DECL_CONST_MEMBER INTERVAL_HEARTBEAT = 20*SECOND; DECL_CONST_MEMBER INTERVAL_WORLD_CONNECT_SYN = 15*SECOND; public: IPeriodicWork(WiseUser* pUser) : m_pUser(pUser) { } ~IPeriodicWork() {} public: virtual BOOL DoInit(); virtual BOOL DoProcess(); virtual BOOL IsComplete(); virtual BOOL DoRelease(); virtual void OnMsg(sSIG_MSG* pSIG_MSG); private: WiseUser* m_pUser; ITimeout m_HEARTBEAT_TIMER_forAGENT; ITimeout m_HEARTBEAT_TIMER_forWORLD; ITimeout m_CONNECTION_TIMER_forWORLD; }; class IWorldSessionControl : public IWorkNode { public: public: IWorldSessionControl(WiseUser* pUser) : m_pUser(pUser) { } ~IWorldSessionControl() {} public: virtual BOOL DoInit(); virtual BOOL DoProcess(); virtual BOOL IsComplete(); virtual BOOL DoRelease(); virtual void OnMsg(sSIG_MSG* pSIG_MSG); private: WiseUser* m_pUser; ITimeout m_CONNECTION_TIMER_forWORLD; };