123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707 |
- #ifndef __CUSTMNGRAUTH_FSM_H
- #define __CUSTMNGRAUTH_FSM_H
- #pragma once
- #include "stdafx.h"
- #include "SpFSM.h"
- #include "SpSecureClient.h"
- #include "CustMngrAuth_server_g.h"
- #include "CustMngrAuth_msg_g.h"
- #include "json/json.h"
- #include "FingerPrint_client_g.h"
- #include "CommEntityUtil.hpp"
- using namespace CustMngrAuth;
- using namespace std;
- using namespace FingerPrint;
- enum EvtType{
- USER_EVT_TEST = EVT_USER + 1,
- USER_EVT_QUIT,
- USER_EVT_INIT,
- USER_EVT_INIT_FINISHED,
- USER_EVT_AUTHORIZE_START,
- USER_EVT_AUTHORIZE_FINISHED,
- USER_EVT_AUTHORIZE_CANCEL,
- USER_EVT_QUERYAUTHORINFO,
- USER_EVT_QUERYAUTHORINFO_FINISHED,
- USER_EVT_QUERYAUTHORINFO_CANCEL,
- USER_EVT_COLLECTFINGERPRINT_START,
- USER_EVT_COLLECTFINGERPRINTEX_START,
- USER_EVT_COLLECTFINGERPRINTINFO,
- USER_EVT_GENERATE_TEMPLATE,
- USER_EVT_GENERATE_TEMPLATE_FINISHED,
- USER_EVT_COLLECTFINGERPRINT_FINISHED,
- USER_EVT_COLLECTFINGERPRINTEX_FINISHED,
- USER_EVT_COLLECTFINGERPRINTINFO_FINISHED,
- USER_EVT_COLLECTFINGERPRINT_CANCEL,
- USER_EVT_COLLECTFINGERPRINTEX_CANCEL,
- USER_EVT_SAVEFINGERPRINT_START,
- USER_EVT_SAVEFINGERPRINT_FINISHED,
- USER_EVT_CHECKUKEY,
- USER_EVT_CHECKUKEY_FINISHED,
- USER_EVT_HOLDON,
- USER_EVT_EXIT,
- };
- enum AuthByWhich//授权结果
- {
- AuthByNone = 0,
- AuthByFngPrnt = 1,
- AuthByUkey = 2,
- };
- enum BmpType
- {
- BmpImage = 1,
- TestImage
- };
- struct AuthContext
- {
- AuthByWhich eAuthByWhich;
- CSimpleStringA UkeyID;
- CSimpleStringA CustomerID;
- CSimpleStringA Feature;
- CBlob FingerImg;
- };
- class CCustMngrAuthEntity;
- class CCustMngrAuthFSM;
- class AuthorizeStartEvent : public FSMEvent
- {
- public:
- AuthorizeStartEvent() : FSMEvent(USER_EVT_AUTHORIZE_START){}
- ~AuthorizeStartEvent(){}
- SpReqAnsContext<CustMngrAuthService_StartAuthorize_Req, CustMngrAuthService_StartAuthorize_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("authorize_start unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- protected:
- private:
- };
- class AuthorizeCancelExEvent : public FSMEvent
- {
- public:
- AuthorizeCancelExEvent() : FSMEvent(USER_EVT_QUERYAUTHORINFO_CANCEL) {}
- ~AuthorizeCancelExEvent() {}
- SpReqAnsContext<CustMngrAuthService_StopAuthorizeEx_Req, CustMngrAuthService_StopAuthorizeEx_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("cancel QueryAuthorInfo unhandled");
- }
- }
- protected:
- private:
- };
- class AuthorizeFinishedEvent : public FSMEvent
- {
- public:
- AuthorizeFinishedEvent() : FSMEvent(USER_EVT_AUTHORIZE_FINISHED){}
- ~AuthorizeFinishedEvent(){}
- SpReqAnsContext<CustMngrAuthService_StartAuthorize_Req, CustMngrAuthService_StartAuthorize_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("authorize_finished unhandled");
- }
- }
- protected:
- private:
- };
- class AuthorizeCancelEvent : public FSMEvent
- {
- public:
- AuthorizeCancelEvent() : FSMEvent(USER_EVT_AUTHORIZE_CANCEL){}
- ~AuthorizeCancelEvent(){}
- SpReqAnsContext<CustMngrAuthService_StopAuthorize_Req, CustMngrAuthService_StopAuthorize_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("authorize_cancel unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- protected:
- private:
- };
- class QueryAuthorInfoEvent : public FSMEvent
- {
- public:
- QueryAuthorInfoEvent() : FSMEvent(USER_EVT_QUERYAUTHORINFO) {}
- ~QueryAuthorInfoEvent() {}
- SpReqAnsContext<CustMngrAuthService_QueryAuthorInfo_Req, CustMngrAuthService_QueryAuthorInfo_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("QueryAuthorInfo unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- protected:
- private:
- };
- class QueryAuthorInfoFinishedEvent : public FSMEvent
- {
- public:
- QueryAuthorInfoFinishedEvent() : FSMEvent(USER_EVT_QUERYAUTHORINFO_FINISHED) {}
- ~QueryAuthorInfoFinishedEvent() {}
- SpReqAnsContext<CustMngrAuthService_QueryAuthorInfo_Req, CustMngrAuthService_QueryAuthorInfo_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("QueryAuthorInfo_finished unhandled");
- }
- }
- protected:
- private:
- };
- class CollectFingerPrintStartEvent : public FSMEvent
- {
- public:
- CollectFingerPrintStartEvent() : FSMEvent(USER_EVT_COLLECTFINGERPRINT_START){}
- ~CollectFingerPrintStartEvent(){}
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrint_Req, CustMngrAuthService_CollectFingerPrint_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx!=NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("collect_finger_print unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- protected:
- private:
- };
- class CollectFingerPrintExStartEvent : public FSMEvent
- {
- public:
- CollectFingerPrintExStartEvent() : FSMEvent(USER_EVT_COLLECTFINGERPRINTEX_START) {}
- ~CollectFingerPrintExStartEvent() {}
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrintEx_Req, CustMngrAuthService_CollectFingerPrintEx_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("collect_fingerEx_print unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- protected:
- private:
- };
- class CollectFingerPrintInfoEvent : public FSMEvent
- {
- public:
- CollectFingerPrintInfoEvent() : FSMEvent(USER_EVT_COLLECTFINGERPRINTINFO) {}
- ~CollectFingerPrintInfoEvent() {}
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrintInfo_Req, CustMngrAuthService_CollectFingerPrintInfo_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Collect FingerPrint info unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- protected:
- private:
- };
- class GenerateTemplateEvent : public FSMEvent
- {
- public:
- GenerateTemplateEvent() : FSMEvent(USER_EVT_GENERATE_TEMPLATE) {}
- ~GenerateTemplateEvent() {}
- SpReqAnsContext<CustMngrAuthService_GenerateTemplate_Req, CustMngrAuthService_GenerateTemplate_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Generate Template unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- protected:
- private:
- };
- class CollectFingerPrintFinishedEvent : public FSMEvent
- {
- public:
- CollectFingerPrintFinishedEvent() : FSMEvent(USER_EVT_COLLECTFINGERPRINT_FINISHED){}
- ~CollectFingerPrintFinishedEvent(){}
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrint_Req, CustMngrAuthService_CollectFingerPrint_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx!=NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("collect_finger_print_finished unhandled");
- }
- }
- protected:
- private:
- };
- class CollectFingerPrintExFinishedEvent : public FSMEvent
- {
- public:
- CollectFingerPrintExFinishedEvent() : FSMEvent(USER_EVT_COLLECTFINGERPRINTEX_FINISHED) {}
- ~CollectFingerPrintExFinishedEvent() {}
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrintEx_Req, CustMngrAuthService_CollectFingerPrintEx_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("collect_finger_printEx_finished unhandled");
- }
- }
- protected:
- private:
- };
- class CollectFingerPrintInfoFinishedEvent : public FSMEvent
- {
- public:
- CollectFingerPrintInfoFinishedEvent() : FSMEvent(USER_EVT_COLLECTFINGERPRINTINFO_FINISHED) {}
- ~CollectFingerPrintInfoFinishedEvent() {}
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrintInfo_Req, CustMngrAuthService_CollectFingerPrintInfo_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Collect FingerPrint Info finished unhandled");
- }
- }
- protected:
- private:
- };
- class GenerateTemplateFinishedEvent : public FSMEvent
- {
- public:
- GenerateTemplateFinishedEvent() : FSMEvent(USER_EVT_GENERATE_TEMPLATE_FINISHED) {}
- ~GenerateTemplateFinishedEvent() {}
- SpReqAnsContext<CustMngrAuthService_GenerateTemplate_Req, CustMngrAuthService_GenerateTemplate_Ans>::Pointer ctx;
- virtual void OnUnhandled()
- {
- if (ctx != NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Generate Template finished unhandled");
- }
- }
- protected:
- private:
- };
- class CancelCollectFingerPrintEvent : public FSMEvent
- {
- public:
- CancelCollectFingerPrintEvent() : FSMEvent(USER_EVT_COLLECTFINGERPRINT_CANCEL){}
- ~CancelCollectFingerPrintEvent(){}
- virtual void OnUnhandled()
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("cancel collect fingerprint unhandled");
- }
- };
- class CancelCollectFingerPrintExEvent : public FSMEvent
- {
- public:
- CancelCollectFingerPrintExEvent() : FSMEvent(USER_EVT_COLLECTFINGERPRINTEX_CANCEL) {}
- ~CancelCollectFingerPrintExEvent() {}
- virtual void OnUnhandled()
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("cancel collect fingerprintEx unhandled");
- }
- };
- class SaveFingerPrintStartEvent : public FSMEvent
- {
- public:
- SaveFingerPrintStartEvent() : FSMEvent(USER_EVT_SAVEFINGERPRINT_START){}
- ~SaveFingerPrintStartEvent(){}
- SpReqAnsContext<CustMngrAuthService_SaveFingerPrint_Req, CustMngrAuthService_SaveFingerPrint_Ans>::Pointer ctx;
- virtual void OnUnhandled(){
- if (ctx!=NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("save_finger_print_start unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- };
- class SaveFingerPrintFinishedEvent : public FSMEvent
- {
- public:
- SaveFingerPrintFinishedEvent() : FSMEvent(USER_EVT_SAVEFINGERPRINT_FINISHED){}
- ~SaveFingerPrintFinishedEvent(){}
- SpReqAnsContext<CustMngrAuthService_SaveFingerPrint_Req, CustMngrAuthService_SaveFingerPrint_Ans>::Pointer ctx;
- virtual void OnUnhandled(){
- if (ctx!=NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("save_finger_print_finished unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- };
- class CheckUkeyEvent : public FSMEvent
- {
- public:
- CheckUkeyEvent() : FSMEvent(USER_EVT_CHECKUKEY){}
- ~CheckUkeyEvent(){}
- virtual void OnUnhandled()
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("check_ukey unhandled");
- }
- };
- class CheckUkeyFinishedEvent : public FSMEvent
- {
- public:
- CheckUkeyFinishedEvent() : FSMEvent(USER_EVT_CHECKUKEY_FINISHED){}
- ~CheckUkeyFinishedEvent(){}
- virtual void OnUnhandled()
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("check_ukey_finished unhandled");
- }
- };
- class HoldOnEvent : public FSMEvent
- {
- public:
- HoldOnEvent() : FSMEvent(USER_EVT_HOLDON){}
- ~HoldOnEvent(){}
- SpReqAnsContext<CustMngrAuthService_HoldOn_Req, CustMngrAuthService_HoldOn_Ans>::Pointer ctx;
- virtual void OnUnhandled(){
- if (ctx!=NULL)
- {
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("holdon unhandled");
- ctx->Answer(Error_InvalidState);
- }
- }
- };
- class FeatureUpdateConn;
- class CCustMngrAuthFSM : public FSMImpl<CCustMngrAuthFSM>
- {
- public:
- enum { s0, s1, s2, s3, s4, s5};
- BEGIN_FSM_STATE(CCustMngrAuthFSM)
- FSM_STATE_ENTRY(s0, "Init", s0_on_entry, s0_on_exit, s0_on_event)
- FSM_STATE_ENTRY(s1, "Initializing", s1_on_entry, s1_on_exit, s1_on_event)
- FSM_STATE_ENTRY(s2, "Idle", s2_on_entry, s2_on_exit, s2_on_event)
- FSM_STATE_ENTRY(s3, "Authorizing", s3_on_entry, s3_on_exit, s3_on_event)//QUERYAUTHORINFO请求进入
- FSM_STATE_ENTRY(s4, "Registering", s4_on_entry, s4_on_exit, s4_on_event)//GENERATE_TEMPLATE,CollectFingerPrintInfo请求进入
- FSM_STATE_ENTRY(s5, "Failed", s5_on_entry, s5_on_exit, s5_on_event)
- END_FSM_STATE()
- BEGIN_FSM_RULE(CCustMngrAuthFSM, s0)
- FSM_RULE_ENTRY(s0, s2, USER_EVT_TEST, 0)
- FSM_RULE_ENTRY(s0, s1, USER_EVT_INIT, 0)
- FSM_RULE_ENTRY(s0, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
- FSM_RULE_ENTRY(s1, s2, USER_EVT_INIT_FINISHED, 0)
- FSM_RULE_ENTRY(s1, s5, USER_EVT_INIT_FINISHED, 1)
- FSM_RULE_ENTRY(s1, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
- FSM_RULE_ENTRY(s2, s3, USER_EVT_AUTHORIZE_START, 0)
- FSM_RULE_ENTRY(s2, s3, USER_EVT_QUERYAUTHORINFO, 0)
- FSM_RULE_ENTRY(s2, s4, USER_EVT_COLLECTFINGERPRINT_START, 0)
- FSM_RULE_ENTRY(s2, s4, USER_EVT_COLLECTFINGERPRINTEX_START, 0)
- FSM_RULE_ENTRY(s2, s4, USER_EVT_COLLECTFINGERPRINTINFO, 0)
- FSM_RULE_ENTRY(s2, s4, USER_EVT_GENERATE_TEMPLATE, 0)
- FSM_RULE_ENTRY(s2, s4, USER_EVT_CHECKUKEY, 0)
- FSM_RULE_ENTRY(s2, s4, USER_EVT_SAVEFINGERPRINT_START, 0)
- FSM_RULE_ENTRY(s2, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
- FSM_RULE_ENTRY(s3, s2, USER_EVT_EXIT, 0)
- FSM_RULE_ENTRY(s3, s2, USER_EVT_AUTHORIZE_FINISHED, 0)
- FSM_RULE_ENTRY(s3, s2, USER_EVT_QUERYAUTHORINFO_FINISHED, 0)
- FSM_RULE_ENTRY(s3, s2, EVT_TIMER, 0)
- FSM_RULE_ENTRY(s4, s2, USER_EVT_COLLECTFINGERPRINT_START, 0)
- FSM_RULE_ENTRY(s4, s2, USER_EVT_COLLECTFINGERPRINTEX_START, 0)
- FSM_RULE_ENTRY(s4, s2, USER_EVT_COLLECTFINGERPRINT_FINISHED, 0)
- FSM_RULE_ENTRY(s4, s2, USER_EVT_COLLECTFINGERPRINTEX_FINISHED, 0)
- FSM_RULE_ENTRY(s4, s2, USER_EVT_COLLECTFINGERPRINTINFO_FINISHED, 0)
- FSM_RULE_ENTRY(s4, s2, USER_EVT_GENERATE_TEMPLATE_FINISHED, 0)
- FSM_RULE_ENTRY(s4, s2, USER_EVT_SAVEFINGERPRINT_FINISHED, 0)
- FSM_RULE_ENTRY(s4, s2, USER_EVT_CHECKUKEY_FINISHED, 0)
- FSM_RULE_ENTRY(s3, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
- FSM_RULE_ENTRY(s5, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
- END_FSM_RULE()
- CCustMngrAuthFSM():m_pFingerPrint(NULL), m_bCancelCollectFP(false)
- , m_bCancelAuthorize(false), m_bAuthorizeTimeout(false) {
- hStopUpdate = ::CreateEventA(NULL, TRUE, FALSE, NULL);
- m_TimeLimit = 55;//默认授权超时秒数
- m_ctx = NULL;
- InitializeCriticalSection(&m_cs);
- }
- ~CCustMngrAuthFSM(){
- DeleteCriticalSection(&m_cs);
- }
- virtual ErrorCodeEnum OnInit();
- virtual ErrorCodeEnum OnExit();
- void s0_on_entry();
- void s0_on_exit();
- unsigned int s0_on_event(FSMEvent* event);
- void s1_on_entry();
- void s1_on_exit();
- unsigned int s1_on_event(FSMEvent* event);
- void s2_on_entry();
- void s2_on_exit();
- unsigned int s2_on_event(FSMEvent* event);
- void s3_on_entry();
- void s3_on_exit();
- unsigned int s3_on_event(FSMEvent* event);
- void s4_on_entry();
- void s4_on_exit();
- unsigned int s4_on_event(FSMEvent* event);
- void s5_on_entry();
- void s5_on_exit();
- unsigned int s5_on_event(FSMEvent* event);
- HANDLE hStopUpdate;
- int Initial();
- SpReqAnsContext<CustMngrAuthService_StartAuthorize_Req, CustMngrAuthService_StartAuthorize_Ans>::Pointer m_ctx;
- SpReqAnsContext<CustMngrAuthService_QueryAuthorInfo_Req, CustMngrAuthService_QueryAuthorInfo_Ans>::Pointer qaInfoCtx;
- AuthContext m_authCtx;
-
- ErrorCodeEnum MatchFingerPrintEx(SpReqAnsContext<CustMngrAuthService_QueryAuthorInfo_Req, CustMngrAuthService_QueryAuthorInfo_Ans>::Pointer ctx, bool& bStopAuthorize, DWORD& dwUserErrCode);
-
-
- void CancelAuthorize();
- void CancelCollect();
- ErrorCodeEnum CollectFingerPrintInfo(SpReqAnsContext<CustMngrAuthService_CollectFingerPrintInfo_Req, CustMngrAuthService_CollectFingerPrintInfo_Ans>::Pointer ctx, DWORD& dwUserErrCode);
- ErrorCodeEnum GenerateTemplate(SpReqAnsContext<CustMngrAuthService_GenerateTemplate_Req, CustMngrAuthService_GenerateTemplate_Ans>::Pointer ctx, DWORD& dwUserErrCode);
- ErrorCodeEnum GetImgBlob(CBlob &data, CSimpleStringA imgPath);
- void BroadcastPressFinger(int times, bool bPressFinger);
-
- void BroadcastGetFinger(int status);
- void DeleteBmp(int type);
- ErrorCodeEnum DeleteFileIfExisted(const char* fileName);
- //在旧dep路径下找到文件时告警,未继承CCommDevFSM,单独实现
- void UpdateAndWarnFileFindInDepBak(CSimpleStringA& newDepPath, const char* filename, DWORD userCode);
- #pragma region 废弃的方法
- ErrorCodeEnum MatchFingerPrint(SpReqAnsContext<CustMngrAuthService_StartAuthorize_Req, CustMngrAuthService_StartAuthorize_Ans>::Pointer ctx, bool& bStopAuthorize);//废弃的方法
- ErrorCodeEnum CollectFingerPrint(SpReqAnsContext<CustMngrAuthService_CollectFingerPrint_Req, CustMngrAuthService_CollectFingerPrint_Ans>::Pointer ctx, DWORD& dwUserErrCode);//废弃的方法
- ErrorCodeEnum CollectFingerPrintEx(SpReqAnsContext<CustMngrAuthService_CollectFingerPrintEx_Req, CustMngrAuthService_CollectFingerPrintEx_Ans>::Pointer ctx, DWORD& dwUserErrCode);//废弃的方法
- ErrorCodeEnum SaveFingerPrint(SpReqAnsContext<CustMngrAuthService_SaveFingerPrint_Req, CustMngrAuthService_SaveFingerPrint_Ans>::Pointer ctx);//废弃的方法
- #pragma endregion
- private:
-
- FingerPrintService_ClientBase *m_pFingerPrint;
- bool m_bCancelCollectFP, m_bCancelAuthorize, m_bAuthorizeTimeout;
- int m_TimeLimit;
- CRITICAL_SECTION m_cs;//临界区变量
- };
- //初始化:检查、配置路径、起特征更新任务(使用)
- struct InitTask : public ITaskSp
- {
- CCustMngrAuthFSM *fsm;
- InitTask(CCustMngrAuthFSM *f) : fsm(f) {}
- void Process()
- {
- LOG_FUNCTION();
- FSMEvent *e = new FSMEvent(USER_EVT_INIT_FINISHED);
- e->param1 = fsm->Initial();
- fsm->PostEventFIFO(e);
- }
- };
- //因QueryAuthorInfo使用(使用)
- struct MatchFingerPrintTaskEx : public ITaskSp
- {
- CCustMngrAuthFSM* fsm;
- MatchFingerPrintTaskEx(CCustMngrAuthFSM* f) : fsm(f) {}
- SpReqAnsContext<CustMngrAuthService_QueryAuthorInfo_Req, CustMngrAuthService_QueryAuthorInfo_Ans>::Pointer ctx;
- void Process()
- {
- bool bStopAuthorize = false;
- DWORD dwUserErrorCode = 0;
- //加入指纹交易日志
- ErrorCodeEnum eErr = fsm->MatchFingerPrintEx(ctx, bStopAuthorize, dwUserErrorCode);
- QueryAuthorInfoFinishedEvent* e = new QueryAuthorInfoFinishedEvent();
- e->ctx = ctx;
- e->param1 = eErr;
- e->param2 = dwUserErrorCode;
- fsm->PostEventFIFO(e);//指纹匹配结束,结束授权
- }
- };
- //因CollectFingerPrintInfo使用(使用)
- struct CollectFingerPrintInfoTask : public ITaskSp
- {
- CCustMngrAuthFSM* fsm;
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrintInfo_Req, CustMngrAuthService_CollectFingerPrintInfo_Ans>::Pointer ctx;
- CollectFingerPrintInfoTask(CCustMngrAuthFSM* f) : fsm(f) {}
- void Process()
- {
- LOG_FUNCTION();
- CollectFingerPrintInfoFinishedEvent* e = new CollectFingerPrintInfoFinishedEvent();
- e->ctx = ctx;
- DWORD dwUserErrorCode = 0;
- ErrorCodeEnum eErr = fsm->CollectFingerPrintInfo(ctx, dwUserErrorCode);
- if (eErr == Error_Unexpect && dwUserErrorCode > 0)
- ctx->Answer(eErr, dwUserErrorCode);
- else
- ctx->Answer(eErr);
- fsm->PostEventFIFO(e);
- }
- };
- //因GenerateTemplate使用(使用)
- struct GenerateTemplateTask : public ITaskSp
- {
- CCustMngrAuthFSM* fsm;
- SpReqAnsContext<CustMngrAuthService_GenerateTemplate_Req, CustMngrAuthService_GenerateTemplate_Ans>::Pointer ctx;
- GenerateTemplateTask(CCustMngrAuthFSM* f) : fsm(f) {}
- void Process()
- {
- LOG_FUNCTION();
- GenerateTemplateFinishedEvent* e = new GenerateTemplateFinishedEvent();
- e->ctx = ctx;
- DWORD dwUserErrorCode = 0;
- ErrorCodeEnum eErr = fsm->GenerateTemplate(ctx, dwUserErrorCode);
- if (eErr == Error_Unexpect && dwUserErrorCode > 0)
- ctx->Answer(eErr, dwUserErrorCode);
- else
- ctx->Answer(eErr);
- fsm->PostEventFIFO(e);
- }
- };
- #pragma region 废弃的结构
- //因StartAuthorize不使用(废弃)
- struct MatchFingerPrintTask : public ITaskSp
- {
- CCustMngrAuthFSM* fsm;
- MatchFingerPrintTask(CCustMngrAuthFSM* f) : fsm(f) {}
- SpReqAnsContext<CustMngrAuthService_StartAuthorize_Req, CustMngrAuthService_StartAuthorize_Ans>::Pointer ctx;
- void Process()
- {
- //bool bStopAuthorize = false;
- //ErrorCodeEnum eErr = fsm->MatchFingerPrint(ctx, bStopAuthorize);
- ////if (bStopAuthorize)
- ////{
- // AuthorizeFinishedEvent *e = new AuthorizeFinishedEvent();
- // e->ctx = ctx;
- // e->param1 = eErr;
- // fsm->PostEventFIFO(e);
- //}
- //else
- //{
- // AuthorizeFinishedEvent *e = new AuthorizeFinishedEvent();
- // e->ctx = ctx;
- // e->param1 = fsm->WaitForUkey(eErr);
- // fsm->PostEventFIFO(e);//指纹匹配异常停止,继续等到超时或ukey插入结束授权,如果是ukey插入,这个event就不会被处理
- //}
- }
- };
- //因CollectFingerPrint不使用(废弃)
- struct CollectFingerPrintTask : public ITaskSp
- {
- CCustMngrAuthFSM* fsm;
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrint_Req, CustMngrAuthService_CollectFingerPrint_Ans>::Pointer ctx;
- CollectFingerPrintTask(CCustMngrAuthFSM* f) : fsm(f) {}
- void Process()
- {
- //LOG_FUNCTION();
- //CollectFingerPrintFinishedEvent* e = new CollectFingerPrintFinishedEvent();
- //e->ctx = ctx;
- //DWORD dwUserErrorCode = 0;
- //ErrorCodeEnum eErr = fsm->CollectFingerPrint(ctx, dwUserErrorCode);
- //if (eErr == Error_Unexpect && dwUserErrorCode > 0)
- // ctx->Answer(eErr, dwUserErrorCode);
- //else
- // ctx->Answer(eErr);
- //fsm->PostEventFIFO(e);
- }
- };
- //因CollectFingerPrintEx不使用(废弃)
- struct CollectFingerPrintExTask : public ITaskSp
- {
- CCustMngrAuthFSM* fsm;
- SpReqAnsContext<CustMngrAuthService_CollectFingerPrintEx_Req, CustMngrAuthService_CollectFingerPrintEx_Ans>::Pointer ctx;
- CollectFingerPrintExTask(CCustMngrAuthFSM* f) : fsm(f) {}
- void Process()
- {
- //LOG_FUNCTION();
- //CollectFingerPrintExFinishedEvent* e = new CollectFingerPrintExFinishedEvent();
- //e->ctx = ctx;
- //DWORD dwUserErrorCode = 0;
- //ErrorCodeEnum eErr = fsm->CollectFingerPrintEx(ctx, dwUserErrorCode);
- //if (eErr == Error_Unexpect && dwUserErrorCode > 0)
- // ctx->Answer(eErr, dwUserErrorCode);
- //else
- // ctx->Answer(eErr);
- //fsm->PostEventFIFO(e);
- }
- };
- //因SaveFingerPrint不使用(废弃)
- struct SaveFingerPrintTask : public ITaskSp
- {
- CCustMngrAuthFSM* fsm;
- SpReqAnsContext<CustMngrAuthService_SaveFingerPrint_Req, CustMngrAuthService_SaveFingerPrint_Ans>::Pointer ctx;
- SaveFingerPrintTask(CCustMngrAuthFSM* f) : fsm(f) {}
- void Process()
- {
- //LOG_FUNCTION();
- //SaveFingerPrintFinishedEvent* e = new SaveFingerPrintFinishedEvent();
- //e->ctx = ctx;
- //ErrorCodeEnum eErr = fsm->SaveFingerPrint(ctx);
- //ctx->Answer(eErr);
- //fsm->PostEventFIFO(e);
- }
- };
- #pragma endregion
- #endif //__CUSTMNGRAUTH_FSM_H
|