mod_salesaudiotrans.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #ifndef _MOD_SALESAUDIOTRANS_H_
  2. #define _MOD_SALESAUDIOTRANS_H_
  3. #include "stdafx.h"
  4. #include "SpIni.h"
  5. #include "caudiotransmission.h"
  6. #include "SalesAudioTrans_msg_g.h"
  7. #include "SalesAudioTrans_server_g.h"
  8. #define SAFE_FREE_LIBRARY(hModule) \
  9. do { \
  10. if(hModule){ \
  11. FreeLibrary(hModule); \
  12. hModule = NULL; \
  13. } \
  14. }while(0)
  15. namespace SalesAudioTrans {
  16. class CSalesAudioTransEntity;
  17. class SalesAudioTransServiceSession : public SalesAudioTransService_ServerSessionBase
  18. {
  19. public:
  20. explicit SalesAudioTransServiceSession(CSalesAudioTransEntity* pEntity) : m_pEntity(pEntity) {}
  21. virtual void Handle_StartAudioTrans(SpReqAnsContext<SalesAudioTransService_StartAudioTrans_Req, SalesAudioTransService_StartAudioTrans_Ans>::Pointer ctx);
  22. private:
  23. CSalesAudioTransEntity* m_pEntity;
  24. };
  25. class CSalesAudioTransEntity : public CEntityBase, public ILogListener, public ISysVarListener, public ITimerListener
  26. {
  27. public:
  28. CSalesAudioTransEntity() :m_main_server(DEFAULT_VTMASR_SERVER_URL), m_backup_server(DEFAULT_VTMASR_SERVER_URL), m_iconntimeout(DEFAULT_CONNECT_TIMEOUT),
  29. m_imaxaudiosendsize(DEFAULT_MAX_AUDIO_SEND_SIZE), m_pAudioTrans(NULL), m_bStartTrans(false), m_hInst(NULL), m_fcreateobj(NULL), m_fdestoryobj(NULL) {
  30. }
  31. virtual ~CSalesAudioTransEntity() {}
  32. virtual const char* GetEntityName() const { return "SalesAudioTrans"; }
  33. virtual bool IsService()const { return true; }
  34. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs, CSmartPointer<ITransactionContext> pTransactionContext);
  35. ErrorCodeEnum __OnStart(ErrorCodeEnum preOperationError);
  36. virtual void OnStarted();
  37. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause, CSmartPointer<ITransactionContext> pTransactionContext);
  38. ErrorCodeEnum __OnClose(ErrorCodeEnum preOperationError);
  39. virtual void OnSelfTest(EntityTestEnum eTestType, CSmartPointer<ITransactionContext> pTransactionContext);
  40. virtual CServerSessionBase* OnNewSession(const char* pszRemoteEntityName, const char* pszParam);
  41. virtual void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
  42. const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
  43. const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext& pLinkInfo);
  44. virtual void OnSysVarEvent(const char *pszKey,const char *pszValue,const char *pszOldValue,const char *pszEntityName);
  45. virtual void OnTimeout(DWORD dwTimerID);
  46. ErrorCodeEnum LoadConfig();
  47. ErrorCodeEnum Load_RestFul_Functions();
  48. ErrorCodeEnum StartAudioTrans(CSimpleStringW strVideoName, CBlob pBuffer, size_t uLen);
  49. ErrorCodeEnum StopAudioTrans();
  50. int SetMaxAudioSendSize(int iSize);
  51. private:
  52. CSimpleStringA m_main_server; // 语音识别服务器主地址
  53. CSimpleStringA m_backup_server; // 语音识别服务器备用地址
  54. int m_iconntimeout; // 连接超时时间,默认10s
  55. int m_imaxaudiosendsize; // 发送音频包大小,默认6400字节
  56. Caudiotransmission* m_pAudioTrans;
  57. bool m_bStartTrans;
  58. CAutoArray<CUUID> m_arrListener;
  59. HMODULE m_hInst;
  60. cpprestful_create m_fcreateobj;
  61. cpprestful_destory m_fdestoryobj;
  62. };
  63. }
  64. #endif