sandesha2_transaction.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SANDESHA2_TRANSACTION_H
00018 #define SANDESHA2_TRANSACTION_H
00019
00025 #include <axutil_allocator.h>
00026 #include <axutil_env.h>
00027 #include <axutil_error.h>
00028 #include <axutil_string.h>
00029 #include <axutil_utils.h>
00030
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035
00036 typedef struct sandesha2_transaction sandesha2_transaction_t;
00037 typedef struct sandesha2_transaction_ops sandesha2_transaction_ops_t;
00038 struct sandesha2_storage_mgr;
00039 struct sandesha2_rm_bean;
00040
00046 AXIS2_DECLARE_DATA struct sandesha2_transaction_ops
00047 {
00052 axis2_status_t (AXIS2_CALL *
00053 free) (
00054 sandesha2_transaction_t *transaction,
00055 const axutil_env_t *env);
00056
00057 axis2_bool_t (AXIS2_CALL *
00058 is_active)(
00059 sandesha2_transaction_t *transaction,
00060 const axutil_env_t *env);
00061
00062 void (AXIS2_CALL *
00063 commit) (
00064 sandesha2_transaction_t *transaction,
00065 const axutil_env_t *env);
00066
00067 void (AXIS2_CALL *
00068 rollback) (
00069 sandesha2_transaction_t *transaction,
00070 const axutil_env_t *env);
00071
00072 void (AXIS2_CALL *
00073 enlist)(
00074 sandesha2_transaction_t *trans,
00075 const axutil_env_t *env,
00076 struct sandesha2_rm_bean *rm_bean);
00077 };
00078
00079 AXIS2_DECLARE_DATA struct sandesha2_transaction
00080 {
00081 const sandesha2_transaction_ops_t *ops;
00082 };
00083
00084 AXIS2_EXTERN sandesha2_transaction_t* AXIS2_CALL
00085 sandesha2_transaction_create(
00086 const axutil_env_t *env,
00087 struct sandesha2_storage_mgr *storage_mgr);
00088
00089 axis2_status_t AXIS2_CALL
00090 sandesha2_transaction_free(
00091 sandesha2_transaction_t *transaction,
00092 const axutil_env_t *env);
00093
00094 axis2_bool_t AXIS2_CALL
00095 sandesha2_transaction_is_active(
00096 sandesha2_transaction_t *transaction,
00097 const axutil_env_t *env);
00098
00099 void AXIS2_CALL
00100 sandesha2_transaction_commit(
00101 sandesha2_transaction_t *transaction,
00102 const axutil_env_t *env);
00103
00104 void AXIS2_CALL
00105 sandesha2_transaction_rollback(
00106 sandesha2_transaction_t *transaction,
00107 const axutil_env_t *env);
00108
00109 void AXIS2_CALL
00110 sandesha2_transaction_enlist(
00111 sandesha2_transaction_t *trans,
00112 const axutil_env_t *env,
00113 struct sandesha2_rm_bean *rm_bean);
00114
00116 #ifdef __cplusplus
00117 }
00118 #endif
00119 #endif