#pragma once #include "Context.h" #define ACTION_IDLE 0 #define ACTION_HELLO 1 /* S1F1 */ #define ACTION_ALARM_REPORT 2 /* S5F1 */ #define ACTION_EVENT_REPORT 3 /* S6F11 */ class CHsmsAction { public: CHsmsAction(); CHsmsAction(int nAction, BOOL bNeedReply, unsigned int nTimeout); ~CHsmsAction(); public: void reset(); void resetResponseTime(); void setAction(int nAction, BOOL bNeedReply = TRUE, unsigned int nTimeout = 45); int getAction(); void setContext(CContext* pContext); CContext* getContext(); void setSendMessage(IMessage* pMessage); IMessage* getSendMessage(); unsigned int getTimeout(); BOOL isNeedWaitReply(); HANDLE getEvent(); int responseTimeIncrement(); BOOL incrementAndCheckTimeout(); int serialize(char* pszBuffer, int nBufferSize); int unserialize(const char* pszBuffer, int nBufferSize); private: int m_nAction; unsigned int m_nTimeout; // ³¬Ê±(Ãë) unsigned int m_nResponseTime; CContext* m_pContext; HANDLE m_hEvent; BOOL m_bNeedWaitReply; IMessage* m_pSendMessage; };