testrm.h
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:2k
源码类别:

中间件编程

开发平台:

Java

  1. #ifndef _TESTRO_H
  2. #define _TESTRO_H
  3. #include "utilitiesMacro.h"
  4. enum XA_OP {
  5.         O_XA_NONE,
  6.         O_XA_OPEN,
  7.         O_XA_CLOSE,
  8.         O_XA_START,
  9.         O_XA_END,
  10.         O_XA_ROLLBACK,
  11.         O_XA_PREPARE,
  12.         O_XA_COMMIT,
  13.         O_XA_RECOVER,
  14.         O_XA_FORGET,
  15.         O_XA_COMPLETE
  16. };
  17. enum X_FAULT {
  18.         F_NONE,
  19.         F_HALT, // generate a fatal error (that causes the process to terminate)
  20.         F_DELAY, // sleep for a given period
  21.         F_ADD_XIDS // used to tell the RM to simulate active XIDs
  22. };
  23. /*
  24.  * a definition of a fault in the XA protocol for testing purposes
  25.  */
  26. typedef struct UTILITIES_DLL fault {
  27.         int id;                 // unique id for this fault specification
  28.         int rmid;               // RM id
  29.         enum XA_OP op;          // the XA method that this fault applies to
  30.         int rc;                 // the value that the XA method should return
  31.         enum X_FAULT xf;        // optional extra processing
  32.         void *arg;              // optional arg for enum X_FAULT
  33.         int res;                // result field that the RM can use to pass back a status to the caller
  34.         int res2;               // another result field that the RM can use to pass back a status to the caller
  35. /* fields private to the RM */
  36.         void *rmstate;          // state maintained by the dummy RM
  37.         struct fault *orig;     // a pointer to the original fault specification
  38.         struct fault *next;
  39. } fault_t;
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43. extern UTILITIES_DLL int dummy_rm_add_fault(fault_t *);
  44. extern UTILITIES_DLL int dummy_rm_del_fault(int);
  45. extern UTILITIES_DLL struct xa_switch_t testxasw;
  46. #ifdef __cplusplus
  47. }
  48. #endif
  49. #endif /* _TESTRO_H */