SpServerSessionFunction.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include "SpTransactionContext.h"
  3. #include "sp_ses.h"
  4. #include "sp_mod.h"
  5. #include <chrono>
  6. class SpServerSessionFunction : public IServerSessionFunction
  7. {
  8. public:
  9. SpServerSessionFunction(SpEntity *pEntity, CServerSessionBase *pServerSessionBase, int remote_epid, int remote_svc_id, int conn_id);
  10. virtual ~SpServerSessionFunction();
  11. ErrorCodeEnum Begin();
  12. virtual const char *GetRemoteEntityName();
  13. virtual SessionStateEnum GetCurrentState();
  14. virtual ErrorCodeEnum CloseSession();
  15. static int __get_method_attr(sp_ses_uas_t *uas, int method_id, int method_sig, int *overlap, void *user_data);
  16. static void __on_req(sp_ses_uas_t *uas, int tsx_id, int method_id, int method_sig, int timeout, iobuffer_t **req_pkt, void *user_data);
  17. static void __on_info(sp_ses_uas_t *uas, int method_id, int method_sig, iobuffer_t **info_pkt, void *user_data);
  18. static void __on_close(sp_ses_uas_t *uas, int error, void *user_data);
  19. static void __on_destroy(sp_ses_uas_t *uas, void *user_data);
  20. int get_method_attr(int method_id, int method_sig, int *overlap);
  21. void on_req(int tsx_id, int method_id, int method_sig, int timeout, iobuffer_t **req_pkt);
  22. void on_info(int method_id, int method_sig, iobuffer_t **info_pkt);
  23. void on_close(int error);
  24. void on_destroy();
  25. private:
  26. CServerSessionBase *m_pServerSessionBase;
  27. sp_ses_uas_t *m_uas;
  28. sp_entity_t *m_remote_ent;
  29. static std::chrono::steady_clock::time_point m_last_Begintime;
  30. static std::chrono::steady_clock::time_point m_last_Endtime;
  31. };