SpClientSessionFunction.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "SpAsyncWait.h"
  3. class SpClientSessionFunction : public IClientSessionFunction, public SpAsyncWait
  4. {
  5. public:
  6. SpClientSessionFunction(SpEntity *pEntity, CClientSessionBase *pClientSessionBase, const char *pszRemoteEntity);
  7. virtual ~SpClientSessionFunction();
  8. //SpAsyncWait
  9. virtual ErrorCodeEnum Begin(const char *pszParam);
  10. virtual ErrorCodeEnum Close();
  11. virtual void OnAnswerWaited(ErrorCodeEnum Error);
  12. //IClientSessionFunction
  13. virtual ErrorCodeEnum OnewayCall(DWORD dwMessageID, DWORD dwMessageSignature, CAutoBuffer Buffer);
  14. virtual ErrorCodeEnum OnewayCall(DWORD dwMessageID, DWORD dwMessageSignature);
  15. virtual ErrorCodeEnum AsyncRequest(DWORD dwMessageID, DWORD dwMessageSignature, CAutoBuffer Buffer, CSmartPointer<IAsynWaitSp> &pAsynWaitSp, DWORD dwTimeOut, DWORD dwReqId);
  16. virtual ErrorCodeEnum AsyncRequest(DWORD dwMessageID, DWORD dwMessageSignature, CSmartPointer<IAsynWaitSp> &pAsynWaitSp, DWORD dwTimeOut, DWORD dwReqId);
  17. virtual SessionStateEnum GetCurrentState();
  18. virtual ErrorCodeEnum CloseSession();
  19. virtual const char *GetRemoteEntityName();
  20. static void __on_connect(sp_ses_uac_t *uac, int error, void *user_data);
  21. static void __on_close(sp_ses_uac_t *uac, int error, void *user_data);
  22. static void __on_destroy(sp_ses_uac_t *uac, void *user_data);
  23. void on_connect(int error);
  24. void on_close(int error);
  25. void on_destroy();
  26. bool isVaildPointer();
  27. private:
  28. SpEntity *m_pEntity;
  29. CClientSessionBase *m_pClientSessionBase;
  30. sp_ses_uac_t *m_uac;
  31. int m_local_seq;
  32. long long m_value; //judge the wild pointer
  33. };