00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SANDESHA2_STORAGE_MGR_H
00018 #define SANDESHA2_STORAGE_MGR_H
00019
00024 #include <platforms/axutil_platform_auto_sense.h>
00025 #include <axutil_utils_defines.h>
00026 #include <axutil_env.h>
00027 #include <axiom_soap_envelope.h>
00028 #include <axis2_conf_ctx.h>
00029 #include <axis2_module_desc.h>
00030 #include <sandesha2_transaction.h>
00031
00032 #ifdef __cplusplus
00033 extern "C"
00034 {
00035 #endif
00036
00042 typedef struct sandesha2_storage_mgr sandesha2_storage_mgr_t;
00043 typedef struct sandesha2_storage_mgr_ops sandesha2_storage_mgr_ops_t;
00044 struct sandesha2_rm_bean;
00045 struct sandesha2_sender_mgr;
00046 struct sandesha2_invoker_mgr;
00047 struct sandesha2_seq_property_mgr;
00048 struct sandesha2_next_msg_mgr;
00049
00054 AXIS2_DECLARE_DATA struct sandesha2_storage_mgr_ops
00055 {
00056 axis2_status_t (AXIS2_CALL *
00057 free)(
00058 sandesha2_storage_mgr_t *storage_mgr,
00059 const axutil_env_t *envv);
00060
00061 axis2_status_t (AXIS2_CALL *
00062 free_void_arg)(
00063 void *storage_mgr,
00064 const axutil_env_t *env);
00065
00066 axis2_status_t (AXIS2_CALL *
00067 init)(
00068 sandesha2_storage_mgr_t *storage_mgr,
00069 const axutil_env_t *env,
00070 axis2_conf_ctx_t *conf_ctx);
00071
00072 axis2_msg_ctx_t *(AXIS2_CALL *
00073 retrieve_msg_ctx)(
00074 sandesha2_storage_mgr_t *storage_mgr,
00075 const axutil_env_t *env,
00076 axis2_char_t *key,
00077 axis2_conf_ctx_t *conf_ctx,
00078 const axis2_bool_t persistent);
00079
00080 axis2_status_t (AXIS2_CALL *
00081 store_msg_ctx)(
00082 sandesha2_storage_mgr_t *storage_mgr,
00083 const axutil_env_t *env,
00084 axis2_char_t *key,
00085 axis2_msg_ctx_t *msg_ctx,
00086 axis2_bool_t store_in_memory);
00087
00088 axis2_status_t (AXIS2_CALL *
00089 update_msg_ctx)(
00090 sandesha2_storage_mgr_t *storage_mgr,
00091 const axutil_env_t *env,
00092 axis2_char_t *key,
00093 axis2_msg_ctx_t *msg_ctx);
00094
00095 axis2_status_t (AXIS2_CALL *
00096 remove_msg_ctx)(
00097 sandesha2_storage_mgr_t *storage_mgr,
00098 const axutil_env_t *env,
00099 axis2_char_t *key,
00100 axis2_conf_ctx_t *conf_ctx,
00101 int msg_type);
00102
00103 axis2_status_t (AXIS2_CALL *
00104 init_storage)(
00105 sandesha2_storage_mgr_t *storage_mgr,
00106 const axutil_env_t *env,
00107 axis2_module_desc_t *module_desc);
00108
00109 axiom_soap_envelope_t *(AXIS2_CALL *
00110 retrieve_soap_envelope)(
00111 sandesha2_storage_mgr_t *storage_mgr,
00112 const axutil_env_t *env,
00113 axis2_char_t *key);
00114
00115 axis2_status_t (AXIS2_CALL *
00116 store_soap_envelope)(
00117 sandesha2_storage_mgr_t *storage_mgr,
00118 const axutil_env_t *env,
00119 axiom_soap_envelope_t *soap_env,
00120 axis2_char_t *key);
00121
00122 axis2_status_t (AXIS2_CALL *
00123 store_response) (
00124 sandesha2_storage_mgr_t *storage_mgr,
00125 const axutil_env_t *env,
00126 axis2_char_t *seq_id,
00127 axiom_soap_envelope_t *response,
00128 int msg_no,
00129 int soap_version);
00130
00131 axiom_soap_envelope_t * (AXIS2_CALL *
00132 retrieve_response) (
00133 sandesha2_storage_mgr_t *storage_mgr,
00134 const axutil_env_t *env,
00135 axis2_char_t *seq_id,
00136 int msg_no);
00137
00138 axis2_status_t (AXIS2_CALL *
00139 remove_response) (
00140 sandesha2_storage_mgr_t *storage_mgr,
00141 const axutil_env_t *env,
00142 axis2_char_t *seq_id,
00143 int msg_no);
00144 };
00145
00146 AXIS2_DECLARE_DATA struct sandesha2_storage_mgr
00147 {
00148 const sandesha2_storage_mgr_ops_t *ops;
00149 };
00150
00158 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00159 sandesha2_storage_mgr_free_void_arg(
00160 void *storage_mgr,
00161 const axutil_env_t *env);
00162
00163 axis2_status_t AXIS2_CALL
00164 sandesha2_storage_mgr_free(
00165 sandesha2_storage_mgr_t *storage_mgr,
00166 const axutil_env_t *envv);
00167
00168 axis2_status_t AXIS2_CALL
00169 sandesha2_storage_mgr_init(
00170 sandesha2_storage_mgr_t *storage_mgr,
00171 const axutil_env_t *env,
00172 axis2_conf_ctx_t *conf_ctx);
00173
00182 axis2_msg_ctx_t *AXIS2_CALL
00183 sandesha2_storage_mgr_retrieve_msg_ctx(
00184 sandesha2_storage_mgr_t *storage_mgr,
00185 const axutil_env_t *env,
00186 axis2_char_t *key,
00187 axis2_conf_ctx_t *conf_ctx,
00188 const axis2_bool_t persistent);
00189
00200 axis2_status_t AXIS2_CALL
00201 sandesha2_storage_mgr_store_msg_ctx(
00202 sandesha2_storage_mgr_t *storage_mgr,
00203 const axutil_env_t *env,
00204 axis2_char_t *key,
00205 axis2_msg_ctx_t *msg_ctx,
00206 axis2_bool_t store_in_memory);
00207
00208 axis2_status_t AXIS2_CALL
00209 sandesha2_storage_mgr_update_msg_ctx(
00210 sandesha2_storage_mgr_t *storage_mgr,
00211 const axutil_env_t *env,
00212 axis2_char_t *key,
00213 axis2_msg_ctx_t *msg_ctx);
00214
00215 axis2_status_t AXIS2_CALL
00216 sandesha2_storage_mgr_remove_msg_ctx(
00217 sandesha2_storage_mgr_t *storage_mgr,
00218 const axutil_env_t *env,
00219 axis2_char_t *key,
00220 axis2_conf_ctx_t *conf_ctx,
00221 int msg_type);
00222
00223 axis2_status_t AXIS2_CALL
00224 sandesha2_storage_mgr_init_storage(
00225 sandesha2_storage_mgr_t *storage_mgr,
00226 const axutil_env_t *env,
00227 axis2_module_desc_t *module_desc);
00228
00229 axiom_soap_envelope_t *AXIS2_CALL
00230 sandesha2_storage_mgr_retrieve_soap_envelope(
00231 sandesha2_storage_mgr_t *storage_mgr,
00232 const axutil_env_t *env,
00233 axis2_char_t *key);
00234
00235 axis2_status_t AXIS2_CALL
00236 sandesha2_storage_mgr_store_soap_envelope(
00237 sandesha2_storage_mgr_t *storage_mgr,
00238 const axutil_env_t *env,
00239 axiom_soap_envelope_t *soap_env,
00240 axis2_char_t *key);
00241
00242 axis2_status_t AXIS2_CALL
00243 sandesha2_storage_mgr_store_response(
00244 sandesha2_storage_mgr_t *storage_mgr,
00245 const axutil_env_t *env,
00246 axis2_char_t *seq_id,
00247 axiom_soap_envelope_t *response,
00248 int msg_no,
00249 int soap_version);
00250
00251 axiom_soap_envelope_t * AXIS2_CALL
00252 sandesha2_storage_mgr_retrieve_response(
00253 sandesha2_storage_mgr_t *storage_mgr,
00254 const axutil_env_t *env,
00255 axis2_char_t *seq_id,
00256 int msg_no);
00257
00258 axis2_status_t AXIS2_CALL
00259 sandesha2_storage_mgr_remove_response(
00260 sandesha2_storage_mgr_t *storage_mgr,
00261 const axutil_env_t *env,
00262 axis2_char_t *seq_id,
00263 int msg_no);
00264
00266 #ifdef __cplusplus
00267 }
00268 #endif
00269
00270 #endif