# sandesha2_storage_mgr.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_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 /*SANDESHA2_STORAGE_MGR_H*/