123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- #ifndef _MOD_PORTABLESCANNER_H__
- #define _MOD_PORTABLESCANNER_H__
- #pragma once
- #include "PortableScannerFSM.h"
- using namespace PortableScanner;
- class CPortableScannerEntity;
- class CPortableScannerServerSession: public PortableScannerService_ServerSessionBase
- {
- public:
- CPortableScannerServerSession(CPortableScannerEntity *pEntity):m_pEntity(pEntity){}
- virtual ~CPortableScannerServerSession(){}
- virtual void Handle_BindCameraDevice(SpReqAnsContext<PortableScannerService_BindCameraDevice_Req,
- PortableScannerService_BindCameraDevice_Ans>::Pointer ctx);
- virtual void Handle_DropOffDevice(
- SpOnewayCallContext<PortableScannerService_DropOffDevice_Info>::Pointer ctx);
- virtual void Handle_StartPreview(SpReqAnsContext<PortableScannerService_StartPreview_Req,
- PortableScannerService_StartPreview_Ans>::Pointer ctx);
- virtual void Handle_CancelPreview(SpReqAnsContext<PortableScannerService_CancelPreview_Req,
- PortableScannerService_CancelPreview_Ans>::Pointer ctx);
- virtual void Handle_ScanImage(SpReqAnsContext<PortableScannerService_ScanImage_Req,
- PortableScannerService_ScanImage_Ans>::Pointer ctx);
- virtual void Handle_ScanImageEx(SpReqAnsContext<PortableScannerService_ScanImageEx_Req,
- PortableScannerService_ScanImageEx_Ans>::Pointer ctx);
- virtual void Handle_SetProperty(SpReqAnsContext<PortableScannerService_SetProperty_Req,
- PortableScannerService_SetProperty_Ans>::Pointer ctx);
- virtual void Handle_SetWinPos(SpReqAnsContext<PortableScannerService_SetWinPos_Req,
- PortableScannerService_SetWinPos_Ans>::Pointer ctx);
- virtual void Handle_ShowProperty(SpReqAnsContext<PortableScannerService_ShowProperty_Req,
- PortableScannerService_ShowProperty_Ans>::Pointer ctx);
- virtual void Handle_GetDevStatus(SpReqAnsContext<PortableScannerService_GetDevStatus_Req,
- PortableScannerService_GetDevStatus_Ans>::Pointer ctx);
- virtual void Handle_GetDevInfo(SpReqAnsContext<PortableScannerService_GetDevInfo_Req,
- PortableScannerService_GetDevInfo_Ans>::Pointer ctx);
- virtual void Handle_Exit(SpOnewayCallContext<PortableScannerService_Exit_Info>::Pointer ctx);
- private:
- CPortableScannerEntity *m_pEntity;
- };
- class CPortableScannerEntity : public CEntityBase
- {
- public:
- CPortableScannerEntity() {}
- virtual ~CPortableScannerEntity() {}
- virtual const char *GetEntityName() const { return "PortableScanner"; }
- virtual CServerSessionBase* OnNewSession(const char* , const char * )
- {
- //LOG_FUNCTION();
- return new CPortableScannerServerSession(this);
- }
- virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,
- CSmartPointer<ITransactionContext> pTransactionContext)
- {
- ErrorCodeEnum erroCode = m_fsm.Init(this);
- pTransactionContext->SendAnswer(erroCode);
- }
- virtual void OnPrePause(CSmartPointer<ITransactionContext> pTransactionContext)
- {
- ErrorCodeEnum ec = Error_Succeed;
- ec = m_fsm.UnitTest();
- pTransactionContext->SendAnswer(ec);
- }
- virtual void OnPreContinue(CSmartPointer<ITransactionContext> pTransactionContext)
- {
- pTransactionContext->SendAnswer(Error_Succeed);
- }
- virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,
- CSmartPointer<ITransactionContext> pTransactionContext)
- {
- LOG_FUNCTION();
- ErrorCodeEnum erroCode = m_fsm.OnExit();
- pTransactionContext->SendAnswer(erroCode);
- }
- void BindDevice(SpReqAnsContext<PortableScannerService_BindCameraDevice_Req,
- PortableScannerService_BindCameraDevice_Ans>::Pointer ctx)
- {
- BindDeviceEvent* pEvent = new BindDeviceEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void DropOffDevice(SpOnewayCallContext<PortableScannerService_DropOffDevice_Info>::Pointer ctx)
- {
- m_fsm.PostEventFIFO(new FSMEvent(USER_EVT_DROP_OFF_DEVICE));
- return;
- }
- void Preview(SpReqAnsContext<PortableScannerService_StartPreview_Req,
- PortableScannerService_StartPreview_Ans>::Pointer ctx)
- {
- StartPreviewEvent* pEvent = new StartPreviewEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void CancelPreview(SpReqAnsContext<PortableScannerService_CancelPreview_Req,
- PortableScannerService_CancelPreview_Ans>::Pointer ctx)
- {
- StopPreviewEvent* pEvent = new StopPreviewEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void ScanImage(SpReqAnsContext<PortableScannerService_ScanImage_Req,
- PortableScannerService_ScanImage_Ans>::Pointer ctx)
- {
- ScanImageEvent* pEvent = new ScanImageEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void ScanImageEx(SpReqAnsContext<PortableScannerService_ScanImageEx_Req,
- PortableScannerService_ScanImageEx_Ans>::Pointer ctx)
- {
- ScanImageExEvent* pEvent = new ScanImageExEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void Exit(SpOnewayCallContext<PortableScannerService_Exit_Info>::Pointer ctx)
- {
- LOG_FUNCTION();
- m_fsm.PostEventFIFO(new FSMEvent(USER_EVT_EXIT));
- }
- void GetDevInfo(SpReqAnsContext<PortableScannerService_GetDevInfo_Req,
- PortableScannerService_GetDevInfo_Ans>::Pointer ctx)
- {
- GetDevInfoEvent* pEvent = new GetDevInfoEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void GetDevStatus(SpReqAnsContext<PortableScannerService_GetDevStatus_Req,
- PortableScannerService_GetDevStatus_Ans>::Pointer ctx)
- {
- GetDevStatusEvent* pEvent = new GetDevStatusEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void SetWinPos(SpReqAnsContext<PortableScannerService_SetWinPos_Req,
- PortableScannerService_SetWinPos_Ans>::Pointer ctx)
- {
- SetWinPosEvent* pEvent = new SetWinPosEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void ShowProperty(SpReqAnsContext<PortableScannerService_ShowProperty_Req,
- PortableScannerService_ShowProperty_Ans>::Pointer ctx)
- {
- ShowPropertyEvent* pEvent = new ShowPropertyEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void SetProperty(SpReqAnsContext<PortableScannerService_SetProperty_Req,
- PortableScannerService_SetProperty_Ans>::Pointer ctx)
- {
- SetPropertyEvent* pEvent = new SetPropertyEvent();
- pEvent->m_ctx = ctx;
- m_fsm.PostEventFIFO(pEvent);
- }
- void OnSelfTest(EntityTestEnum eTestType, CSmartPointer<ITransactionContext> pTransactionContext)
- {
- m_fsm.SelfTest(eTestType, pTransactionContext);
- }
- virtual bool IsService() const { return true; }
- virtual bool IsMultiThread() const { return true; };
- private:
- CPortableScannerFSM m_fsm;
- };
- #endif
|