SpTransactionContext.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #include "SpBase.h"
  3. #include "sp_ses.h"
  4. class SpEntity;
  5. class SpTransactionContext : public ITransactionContext
  6. {
  7. public:
  8. SpTransactionContext(sp_ses_uas_t *uas, int info, int method_id, int method_sig, int expire_time, iobuffer_t **p_pkt, int tsx_id);
  9. virtual ~SpTransactionContext();
  10. virtual bool IsOneWayCall();
  11. virtual DWORD GetRequestID();
  12. virtual ErrorCodeEnum GetReceiveBuffer(DWORD &dwMessageID, DWORD &dwMessageSignature, CAutoBuffer &Buffer);
  13. virtual ErrorCodeEnum SendAnswer(CAutoBuffer Buffer, bool bEnd=true);
  14. virtual ErrorCodeEnum SendAnswer(ErrorCodeEnum eErrorCode, DWORD dwUserError = 0);
  15. virtual ErrorCodeEnum SetExpireTime(DWORD dwMS);
  16. virtual ErrorCodeEnum GetExpireTime(DWORD &dwWholeTime,DWORD &dwLeftTime);
  17. DWORD GetExpireLeftTime();
  18. private:
  19. int m_info;
  20. int m_method_id;
  21. int m_method_sig;
  22. int m_expire_time;
  23. int m_timeout;
  24. iobuffer_t *m_pkt;
  25. sp_tsx_uas_t *m_tsx;
  26. };
  27. // for OnPreStart, OnPrePause, OnPreContinue, OnPreClose
  28. class SpMUITransactionContext : public ITransactionContext
  29. {
  30. public:
  31. enum {
  32. OP_START,
  33. OP_PAUSE,
  34. OP_SELFTEST,
  35. OP_CLOSE,
  36. OP_CONTINUE,
  37. };
  38. SpMUITransactionContext(SpEntity *pEntity, int op) : m_pEntity(pEntity), m_op(op) {}
  39. virtual ~SpMUITransactionContext(){};
  40. virtual bool IsOneWayCall() { return false; }
  41. virtual DWORD GetRequestID() { return 0; }
  42. virtual ErrorCodeEnum GetReceiveBuffer(DWORD &dwMessageID, DWORD &dwMessageSignature, CAutoBuffer &Buffer) { return Error_NotImpl; }
  43. virtual ErrorCodeEnum SendAnswer(CAutoBuffer Buffer, bool bEnd=true) { return Error_NotInit; }
  44. virtual ErrorCodeEnum SendAnswer(ErrorCodeEnum eErrorCode, DWORD dwUserError = 0);
  45. virtual ErrorCodeEnum SetExpireTime(DWORD dwMS) { return Error_NotImpl; }
  46. virtual ErrorCodeEnum GetExpireTime(DWORD &dwWholeTime,DWORD &dwLeftTime) { return Error_NotImpl; }
  47. private:
  48. SpEntity *m_pEntity;
  49. int m_op;
  50. };