axis2_engine.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 AXIS2_ENGINE_H
00018 #define AXIS2_ENGINE_H
00019 
00036 #include <axis2_defines.h>
00037 #include <axis2_array_list.h>
00038 #include <axis2_env.h>
00039 #include <axis2_conf_ctx.h>
00040 
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045 
00047     typedef struct axis2_engine_ops axis2_engine_ops_t;
00049     typedef struct axis2_engine axis2_engine_t;
00050 
00051     struct axiom_soap_fault;
00052 
00053 
00058     struct axis2_engine_ops
00059     {
00072         axis2_status_t (AXIS2_CALL *
00073                 send)(
00074                     axis2_engine_t *engine,
00075                     const axis2_env_t *env,
00076                     axis2_msg_ctx_t *msg_ctx);
00077         
00090         axis2_status_t (AXIS2_CALL *
00091                 receive)(   
00092                     axis2_engine_t *engine,
00093                     const axis2_env_t *env,
00094                     axis2_msg_ctx_t *msg_ctx);
00095         
00104         axis2_status_t (AXIS2_CALL *
00105                 send_fault)(
00106                     axis2_engine_t *engine,
00107                     const axis2_env_t *env,
00108                     axis2_msg_ctx_t *msg_ctx);
00109                     
00118         axis2_status_t (AXIS2_CALL *
00119                 receive_fault)(
00120                     axis2_engine_t *engine,
00121                     const axis2_env_t *env,
00122                     axis2_msg_ctx_t *msg_ctx);
00123                     
00133         axis2_msg_ctx_t *(AXIS2_CALL *
00134                 create_fault_msg_ctx)(
00135                     axis2_engine_t *engine,
00136                     const axis2_env_t *env,
00137                     axis2_msg_ctx_t *processing_context);
00138          
00147         axis2_status_t (AXIS2_CALL *
00148                 extract_fault_info_from_msg_ctx)(
00149                     axis2_engine_t *engine,
00150                     const axis2_env_t *env,
00151                     axis2_msg_ctx_t *msg_ctx,
00152                     struct axiom_soap_fault *fault);
00153 
00163         axis2_status_t (AXIS2_CALL *
00164                 verify_ctx_built)(
00165                     axis2_engine_t *engine,
00166                     const axis2_env_t *env,
00167                     axis2_msg_ctx_t *msg_ctx);
00168 
00182         axis2_status_t (AXIS2_CALL *
00183                 invoke_phases)(
00184                     axis2_engine_t *engine,
00185                     const axis2_env_t *env,
00186                     axis2_array_list_t *phases,
00187                     axis2_msg_ctx_t *msg_ctx);
00188 
00205         axis2_status_t (AXIS2_CALL *
00206                 resume_invocation_phases)(
00207                     axis2_engine_t *engine,
00208                     const axis2_env_t *env,
00209                     axis2_array_list_t *phases,
00210                     axis2_msg_ctx_t *msg_ctx);
00211 
00219         const axis2_char_t *(AXIS2_CALL *
00220                 get_sender_fault_code)(
00221                     const axis2_engine_t *engine,
00222                     const axis2_env_t *env,
00223                     const axis2_char_t *soap_namespace);
00224 
00225 
00232         const axis2_char_t *(AXIS2_CALL *
00233                 get_receiver_fault_code)(
00234                     const axis2_engine_t *engine,
00235                     const axis2_env_t *env,
00236                     const axis2_char_t *soap_namespace);
00237 
00244         axis2_status_t (AXIS2_CALL *
00245                 free)(
00246                     axis2_engine_t *engine,
00247                     const axis2_env_t *env);
00248 
00258         axis2_status_t (AXIS2_CALL *
00259                 resume_receive)(
00260                     axis2_engine_t *engine,
00261                     const axis2_env_t *env,
00262                     axis2_msg_ctx_t *msg_ctx);
00263 
00273         axis2_status_t (AXIS2_CALL *
00274                 resume_send)(
00275                     axis2_engine_t *engine,
00276                     const axis2_env_t *env,
00277                     axis2_msg_ctx_t *msg_ctx);
00278 
00279     };
00280 
00284     struct axis2_engine
00285     {
00286     
00288         axis2_engine_ops_t *ops;
00289     };
00290 
00297     AXIS2_EXTERN axis2_engine_t *AXIS2_CALL
00298     axis2_engine_create(
00299         const axis2_env_t *env,
00300         axis2_conf_ctx_t *conf_ctx);
00301 
00304 #define AXIS2_ENGINE_SEND(engine, env, msg_ctx)\
00305         ((engine)->ops->send(engine, env, msg_ctx))
00306 
00309 #define AXIS2_ENGINE_RECEIVE(engine, env, msg_ctx) \
00310         ((engine)->ops->receive(engine, env, msg_ctx))
00311 
00314 #define AXIS2_ENGINE_SEND_FAULT(engine, env, msg_ctx) \
00315         ((engine)->ops->send_fault(engine, env, msg_ctx))
00316 
00319 #define AXIS2_ENGINE_RECEIVE_FAULT(engine, env, msg_ctx) \
00320         ((engine)->ops->receive_fault(engine, env, msg_ctx))
00321 
00324 #define AXIS2_ENGINE_CREATE_FAULT_MSG_CTX(engine, env, msg_ctx) \
00325         ((engine)->ops->create_fault_msg_ctx(engine, env, msg_ctx))
00326 
00329 #define AXIS2_ENGINE_EXTRACT_FAULT_INFO_FROM_MSG_CTX(engine, env, msg_ctx, fault) \
00330         ((engine)->ops->extract_fault_info_from_msg_ctx(engine, env, msg_ctx, fault))
00331 
00334 #define AXIS2_ENGINE_VERIFY_CTX_BUILT(engine, env, msg_ctx) \
00335         ((engine)->ops->verify_ctx_built(engine, env, msg_ctx))
00336 
00339 #define AXIS2_ENGINE_INVOKE_PHASES(engine, env, phases, msg_ctx) \
00340         ((engine)->ops->invoke_phases(engine, env, phases, msg_ctx))
00341 
00344 #define AXIS2_ENGINE_RESUME_INVOCATION_PHASES(engine, env, phases, msg_ctx) \
00345         ((engine)->ops->resume_invocation_phases(engine, env, phases, msg_ctx))
00346 
00349 #define AXIS2_ENGINE_GET_SENDER_FAULT_CODE(engine, env, soap_namespace) \
00350         ((engine)->ops->get_sender_fault_code(engine, env, soap_namespace))
00351 
00354 #define AXIS2_ENGINE_GET_RECEIVER_FAULT_CODE(engine, env, soap_namespace) \
00355         ((engine)->ops->get_receiver_fault_code(engine, env, soap_namespace))
00356 
00359 #define AXIS2_ENGINE_FREE(engine, env) \
00360         ((engine)->ops->free(engine, env))
00361 
00364 #define AXIS2_ENGINE_RESUME_SEND(engine, env, msg_ctx)\
00365         ((engine)->ops->resume_send(engine, env, msg_ctx))
00366 
00369 #define AXIS2_ENGINE_RESUME_RECEIVE(engine, env, msg_ctx) \
00370         ((engine)->ops->resume_receive(engine, env, msg_ctx))
00371 
00373 #ifdef __cplusplus
00374 }
00375 #endif
00376 
00377 #endif                          /* AXIS2_ENGINE_H */

Generated on Tue Oct 3 22:35:47 2006 for Axis2/C by  doxygen 1.4.7