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

Generated on Mon Oct 1 17:19:03 2007 for Sandesha2/C by  doxygen 1.5.3