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
00087 axis2_status_t (AXIS2_CALL *
00088 update_msg_ctx)(
00089 sandesha2_storage_mgr_t *storage_mgr,
00090 const axutil_env_t *env,
00091 axis2_char_t *key,
00092 axis2_msg_ctx_t *msg_ctx);
00093
00094 axis2_status_t (AXIS2_CALL *
00095 remove_msg_ctx)(
00096 sandesha2_storage_mgr_t *storage_mgr,
00097 const axutil_env_t *env,
00098 axis2_char_t *key,
00099 axis2_conf_ctx_t *conf_ctx,
00100 int msg_type);
00101
00102 axis2_status_t (AXIS2_CALL *
00103 init_storage)(
00104 sandesha2_storage_mgr_t *storage_mgr,
00105 const axutil_env_t *env,
00106 axis2_module_desc_t *module_desc);
00107
00108 axiom_soap_envelope_t *(AXIS2_CALL *
00109 retrieve_soap_envelope)(
00110 sandesha2_storage_mgr_t *storage_mgr,
00111 const axutil_env_t *env,
00112 axis2_char_t *key);
00113
00114 axis2_status_t (AXIS2_CALL *
00115 store_soap_envelope)(
00116 sandesha2_storage_mgr_t *storage_mgr,
00117 const axutil_env_t *env,
00118 axiom_soap_envelope_t *soap_env,
00119 axis2_char_t *key);
00120
00121 axis2_status_t (AXIS2_CALL *
00122 store_response) (
00123 sandesha2_storage_mgr_t *storage_mgr,
00124 const axutil_env_t *env,
00125 axis2_char_t *seq_id,
00126 axiom_soap_envelope_t *response,
00127 int msg_no,
00128 int soap_version);
00129
00130 axiom_soap_envelope_t * (AXIS2_CALL *
00131 retrieve_response) (
00132 sandesha2_storage_mgr_t *storage_mgr,
00133 const axutil_env_t *env,
00134 axis2_char_t *seq_id,
00135 int msg_no);
00136
00137 axis2_status_t (AXIS2_CALL *
00138 remove_response) (
00139 sandesha2_storage_mgr_t *storage_mgr,
00140 const axutil_env_t *env,
00141 axis2_char_t *seq_id,
00142 int msg_no);
00143
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
00207 axis2_status_t AXIS2_CALL
00208 sandesha2_storage_mgr_update_msg_ctx(
00209 sandesha2_storage_mgr_t *storage_mgr,
00210 const axutil_env_t *env,
00211 axis2_char_t *key,
00212 axis2_msg_ctx_t *msg_ctx);
00213
00214 axis2_status_t AXIS2_CALL
00215 sandesha2_storage_mgr_remove_msg_ctx(
00216 sandesha2_storage_mgr_t *storage_mgr,
00217 const axutil_env_t *env,
00218 axis2_char_t *key,
00219 axis2_conf_ctx_t *conf_ctx,
00220 int msg_type);
00221
00222 axis2_status_t AXIS2_CALL
00223 sandesha2_storage_mgr_init_storage(
00224 sandesha2_storage_mgr_t *storage_mgr,
00225 const axutil_env_t *env,
00226 axis2_module_desc_t *module_desc);
00227
00228 axiom_soap_envelope_t *AXIS2_CALL
00229 sandesha2_storage_mgr_retrieve_soap_envelope(
00230 sandesha2_storage_mgr_t *storage_mgr,
00231 const axutil_env_t *env,
00232 axis2_char_t *key);
00233
00234 axis2_status_t AXIS2_CALL
00235 sandesha2_storage_mgr_store_soap_envelope(
00236 sandesha2_storage_mgr_t *storage_mgr,
00237 const axutil_env_t *env,
00238 axiom_soap_envelope_t *soap_env,
00239 axis2_char_t *key);
00240
00241 axis2_status_t AXIS2_CALL
00242 sandesha2_storage_mgr_store_response(
00243 sandesha2_storage_mgr_t *storage_mgr,
00244 const axutil_env_t *env,
00245 axis2_char_t *seq_id,
00246 axiom_soap_envelope_t *response,
00247 int msg_no,
00248 int soap_version);
00249
00250 axiom_soap_envelope_t * AXIS2_CALL
00251 sandesha2_storage_mgr_retrieve_response(
00252 sandesha2_storage_mgr_t *storage_mgr,
00253 const axutil_env_t *env,
00254 axis2_char_t *seq_id,
00255 int msg_no);
00256
00257 axis2_status_t AXIS2_CALL
00258 sandesha2_storage_mgr_remove_response(
00259 sandesha2_storage_mgr_t *storage_mgr,
00260 const axutil_env_t *env,
00261 axis2_char_t *seq_id,
00262 int msg_no);
00263
00265 #ifdef __cplusplus
00266 }
00267 #endif
00268
00269 #endif