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_create_seq_mgr;
00047 struct sandesha2_invoker_mgr;
00048 struct sandesha2_seq_property_mgr;
00049 struct sandesha2_next_msg_mgr;
00050
00055 AXIS2_DECLARE_DATA struct sandesha2_storage_mgr_ops
00056 {
00057 axis2_status_t (AXIS2_CALL *
00058 free)(
00059 sandesha2_storage_mgr_t *storage_mgr,
00060 const axutil_env_t *envv);
00061
00062 axis2_status_t (AXIS2_CALL *
00063 free_void_arg)(
00064 void *storage_mgr,
00065 const axutil_env_t *env);
00066
00067 struct sandesha2_transaction *(AXIS2_CALL *
00068 get_transaction)(
00069 sandesha2_storage_mgr_t *storage_mgr,
00070 const axutil_env_t *env);
00071
00072 void (AXIS2_CALL *
00073 enlist_bean)(
00074 sandesha2_storage_mgr_t *storage_mgr,
00075 const axutil_env_t *env,
00076 struct sandesha2_rm_bean *rm_bean);
00077
00078 struct sandesha2_create_seq_mgr *(AXIS2_CALL *
00079 get_create_seq_mgr)(
00080 sandesha2_storage_mgr_t *storage_mgr,
00081 const axutil_env_t *env);
00082
00083 struct sandesha2_next_msg_mgr *(AXIS2_CALL *
00084 get_next_msg_mgr)(
00085 sandesha2_storage_mgr_t *storage_mgr,
00086 const axutil_env_t *env);
00087
00088 struct sandesha2_sender_mgr *(AXIS2_CALL *
00089 get_retrans_mgr)(
00090 sandesha2_storage_mgr_t *storage_mgr,
00091 const axutil_env_t *env);
00092
00093 struct sandesha2_seq_property_mgr *(AXIS2_CALL *
00094 get_seq_property_mgr)(
00095 sandesha2_storage_mgr_t *storage_mgr,
00096 const axutil_env_t *env);
00097
00098 struct sandesha2_invoker_mgr *(AXIS2_CALL *
00099 get_storage_map_mgr)(
00100 sandesha2_storage_mgr_t *storage_mgr,
00101 const axutil_env_t *env);
00102
00103 axis2_status_t (AXIS2_CALL *
00104 set_ctx)(
00105 sandesha2_storage_mgr_t *storage_mgr,
00106 const axutil_env_t *env,
00107 axis2_conf_ctx_t *conf_ctx);
00108
00109 axis2_conf_ctx_t *(AXIS2_CALL *
00110 get_ctx)(
00111 sandesha2_storage_mgr_t *storage_mgr,
00112 const axutil_env_t *env);
00113
00114 axis2_status_t (AXIS2_CALL *
00115 init)(
00116 sandesha2_storage_mgr_t *storage_mgr,
00117 const axutil_env_t *env,
00118 axis2_conf_ctx_t *conf_ctx);
00119
00120 axis2_msg_ctx_t *(AXIS2_CALL *
00121 retrieve_msg_ctx)(
00122 sandesha2_storage_mgr_t *storage_mgr,
00123 const axutil_env_t *env,
00124 axis2_char_t *key,
00125 axis2_conf_ctx_t *conf_ctx,
00126 const axis2_bool_t persistent);
00127
00128 axis2_status_t (AXIS2_CALL *
00129 store_msg_ctx)(
00130 sandesha2_storage_mgr_t *storage_mgr,
00131 const axutil_env_t *env,
00132 axis2_char_t *key,
00133 axis2_msg_ctx_t *msg_ctx);
00134
00135 axis2_status_t (AXIS2_CALL *
00136 update_msg_ctx)(
00137 sandesha2_storage_mgr_t *storage_mgr,
00138 const axutil_env_t *env,
00139 axis2_char_t *key,
00140 axis2_msg_ctx_t *msg_ctx);
00141
00142 axis2_status_t (AXIS2_CALL *
00143 remove_msg_ctx)(
00144 sandesha2_storage_mgr_t *storage_mgr,
00145 const axutil_env_t *env,
00146 axis2_char_t *key);
00147
00148 axis2_status_t (AXIS2_CALL *
00149 init_storage)(
00150 sandesha2_storage_mgr_t *storage_mgr,
00151 const axutil_env_t *env,
00152 axis2_module_desc_t *module_desc);
00153
00154 axiom_soap_envelope_t *(AXIS2_CALL *
00155 retrieve_soap_envelope)(
00156 sandesha2_storage_mgr_t *storage_mgr,
00157 const axutil_env_t *env,
00158 axis2_char_t *key);
00159
00160 axis2_status_t (AXIS2_CALL *
00161 store_soap_envelope)(
00162 sandesha2_storage_mgr_t *storage_mgr,
00163 const axutil_env_t *env,
00164 axiom_soap_envelope_t *soap_env,
00165 axis2_char_t *key);
00166
00167 axis2_status_t (AXIS2_CALL *
00168 store_response) (
00169 sandesha2_storage_mgr_t *storage_mgr,
00170 const axutil_env_t *env,
00171 axis2_char_t *seq_id,
00172 axiom_soap_envelope_t *response,
00173 int msg_no,
00174 int soap_version);
00175
00176 axiom_soap_envelope_t * (AXIS2_CALL *
00177 retrieve_response) (
00178 sandesha2_storage_mgr_t *storage_mgr,
00179 const axutil_env_t *env,
00180 axis2_char_t *seq_id,
00181 int msg_no);
00182
00183 axis2_status_t (AXIS2_CALL *
00184 remove_response) (
00185 sandesha2_storage_mgr_t *storage_mgr,
00186 const axutil_env_t *env,
00187 axis2_char_t *seq_id,
00188 int msg_no);
00189
00190 };
00191
00192 AXIS2_DECLARE_DATA struct sandesha2_storage_mgr
00193 {
00194 const sandesha2_storage_mgr_ops_t *ops;
00195 };
00196
00197 AXIS2_EXTERN sandesha2_storage_mgr_t* AXIS2_CALL
00198 sandesha2_storage_mgr_create(
00199 const axutil_env_t *env,
00200 axis2_conf_ctx_t *conf_ctx);
00201
00209 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00210 sandesha2_storage_mgr_free_void_arg(
00211 void *storage_mgr,
00212 const axutil_env_t *env);
00213
00214 axis2_status_t AXIS2_CALL
00215 sandesha2_storage_mgr_free(
00216 sandesha2_storage_mgr_t *storage_mgr,
00217 const axutil_env_t *envv);
00218
00225 struct sandesha2_transaction *AXIS2_CALL
00226 sandesha2_storage_mgr_get_transaction(
00227 sandesha2_storage_mgr_t *storage_mgr,
00228 const axutil_env_t *env);
00229
00230 void AXIS2_CALL
00231 sandesha2_storage_mgr_enlist_bean(
00232 sandesha2_storage_mgr_t *storage_mgr,
00233 const axutil_env_t *env,
00234 struct sandesha2_rm_bean *rm_bean);
00235
00236 struct sandesha2_create_seq_mgr *AXIS2_CALL
00237 sandesha2_storage_mgr_get_create_seq_mgr(
00238 sandesha2_storage_mgr_t *storage_mgr,
00239 const axutil_env_t *env);
00240
00241 struct sandesha2_next_msg_mgr *AXIS2_CALL
00242 sandesha2_storage_mgr_get_next_msg_mgr(
00243 sandesha2_storage_mgr_t *storage_mgr,
00244 const axutil_env_t *env);
00245
00246 struct sandesha2_sender_mgr *AXIS2_CALL
00247 sandesha2_storage_mgr_get_retrans_mgr(
00248 sandesha2_storage_mgr_t *storage_mgr,
00249 const axutil_env_t *env);
00250
00251 struct sandesha2_seq_property_mgr *AXIS2_CALL
00252 sandesha2_storage_mgr_get_seq_property_mgr(
00253 sandesha2_storage_mgr_t *storage_mgr,
00254 const axutil_env_t *env);
00255
00256 struct sandesha2_invoker_mgr *AXIS2_CALL
00257 sandesha2_storage_mgr_get_storage_map_mgr(
00258 sandesha2_storage_mgr_t *storage_mgr,
00259 const axutil_env_t *env);
00260
00261 axis2_status_t AXIS2_CALL
00262 sandesha2_storage_mgr_set_ctx(
00263 sandesha2_storage_mgr_t *storage_mgr,
00264 const axutil_env_t *env,
00265 axis2_conf_ctx_t *conf_ctx);
00266
00267 axis2_conf_ctx_t *AXIS2_CALL
00268 sandesha2_storage_mgr_get_ctx(
00269 sandesha2_storage_mgr_t *storage_mgr,
00270 const axutil_env_t *env);
00271
00272 axis2_status_t AXIS2_CALL
00273 sandesha2_storage_mgr_init(
00274 sandesha2_storage_mgr_t *storage_mgr,
00275 const axutil_env_t *env,
00276 axis2_conf_ctx_t *conf_ctx);
00277
00286 axis2_msg_ctx_t *AXIS2_CALL
00287 sandesha2_storage_mgr_retrieve_msg_ctx(
00288 sandesha2_storage_mgr_t *storage_mgr,
00289 const axutil_env_t *env,
00290 axis2_char_t *key,
00291 axis2_conf_ctx_t *conf_ctx,
00292 const axis2_bool_t persistent);
00293
00304 axis2_status_t AXIS2_CALL
00305 sandesha2_storage_mgr_store_msg_ctx(
00306 sandesha2_storage_mgr_t *storage_mgr,
00307 const axutil_env_t *env,
00308 axis2_char_t *key,
00309 axis2_msg_ctx_t *msg_ctx);
00310
00311 axis2_status_t AXIS2_CALL
00312 sandesha2_storage_mgr_update_msg_ctx(
00313 sandesha2_storage_mgr_t *storage_mgr,
00314 const axutil_env_t *env,
00315 axis2_char_t *key,
00316 axis2_msg_ctx_t *msg_ctx);
00317
00318 axis2_status_t AXIS2_CALL
00319 sandesha2_storage_mgr_remove_msg_ctx(
00320 sandesha2_storage_mgr_t *storage_mgr,
00321 const axutil_env_t *env,
00322 axis2_char_t *key);
00323
00324 axis2_status_t AXIS2_CALL
00325 sandesha2_storage_mgr_init_storage(
00326 sandesha2_storage_mgr_t *storage_mgr,
00327 const axutil_env_t *env,
00328 axis2_module_desc_t *module_desc);
00329
00330 axiom_soap_envelope_t *AXIS2_CALL
00331 sandesha2_storage_mgr_retrieve_soap_envelope(
00332 sandesha2_storage_mgr_t *storage_mgr,
00333 const axutil_env_t *env,
00334 axis2_char_t *key);
00335
00336 axis2_status_t AXIS2_CALL
00337 sandesha2_storage_mgr_store_soap_envelope(
00338 sandesha2_storage_mgr_t *storage_mgr,
00339 const axutil_env_t *env,
00340 axiom_soap_envelope_t *soap_env,
00341 axis2_char_t *key);
00342
00343 axis2_status_t AXIS2_CALL
00344 sandesha2_storage_mgr_store_response(
00345 sandesha2_storage_mgr_t *storage_mgr,
00346 const axutil_env_t *env,
00347 axis2_char_t *seq_id,
00348 axiom_soap_envelope_t *response,
00349 int msg_no,
00350 int soap_version);
00351
00352 axiom_soap_envelope_t * AXIS2_CALL
00353 sandesha2_storage_mgr_retrieve_response(
00354 sandesha2_storage_mgr_t *storage_mgr,
00355 const axutil_env_t *env,
00356 axis2_char_t *seq_id,
00357 int msg_no);
00358
00359 axis2_status_t AXIS2_CALL
00360 sandesha2_storage_mgr_remove_response(
00361 sandesha2_storage_mgr_t *storage_mgr,
00362 const axutil_env_t *env,
00363 axis2_char_t *seq_id,
00364 int msg_no);
00365
00367 #ifdef __cplusplus
00368 }
00369 #endif
00370
00371 #endif