sandesha2_transaction.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
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 /* SANDESHA2_TRANSACTION_H */

Generated on Wed Oct 14 01:02:17 2009 for Sandesha2/C by  doxygen 1.5.7.1