123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include "SpBase.h"
- #include "Event.h"
- #include "RemoteControllerFSM.h"
- // Ô¶³Ì¿ØÖÆ 0x504
- class CRemoteControllerEntity;
- //class PinPadClass;
- class CRemoteControllerEntity : public CEntityBase, public ILogListener
- {
- public:
- CRemoteControllerEntity() { }
- virtual ~CRemoteControllerEntity() {}
- virtual const char *GetEntityName() const { return "RemoteController"; }
- virtual bool IsService()const{return true;}
- virtual void OnStarted()
- {
- m_FSM.Init(this);
- // subscribe heartbeat entity event for create remote control channel
- GetFunction()->SubscribeLog(m_LogSubID, this, Log_Event, Severity_None, Error_IgnoreAll, EVENT_START_REMOTE_CONTROL, "HeartBeat", true);
- }
- virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext)
- {
- m_FSM.PostExitEvent();
- GetFunction()->UnsubscribeLog(m_LogSubID);
- pTransactionContext->SendAnswer(Error_Succeed);
- }
-
- 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)
- {
- Dbg("recv log event: %d", dwUserCode);
- if (dwUserCode == EVENT_START_REMOTE_CONTROL)
- {
- if (m_FSM.GetCurrStateName() != "None")
- {
- Dbg("already in remote control mode, terminate it now");
- m_FSM.PostEventFIFO(new FSMEvent(CRemoteControllerFSM::Event_ReleaseChannel));
- }
- Dbg("trigger event Event_CreateChannel");
- m_FSM.PostEventFIFO(new FSMEvent(CRemoteControllerFSM::Event_CreateChannel));
- }
- }
-
- protected:
- CUUID m_LogSubID;
- CRemoteControllerFSM m_FSM;
- };
- SP_BEGIN_ENTITY_MAP()
- SP_ENTITY(CRemoteControllerEntity)
- SP_END_ENTITY_MAP()
|