axis2_phase_resolver.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_PHASE_RESOLVER_H
00018 #define AXIS2_PHASE_RESOLVER_H
00019 
00038 #include <axis2_const.h>
00039 #include <axis2_error.h>
00040 #include <axis2_defines.h>
00041 #include <axis2_env.h>
00042 #include <axis2_allocator.h>
00043 #include <axis2_qname.h>
00044 #include <axis2_array_list.h>
00045 #include <axis2_hash.h>
00046 #include <axis2_handler_desc.h>
00047 #include <axis2_phase.h>
00048 #include <axis2_phase_rule.h>
00049 #include <axis2_handler.h>
00050 #include <axis2_handler_desc.h>
00051 #include <axis2_flow.h>
00052 #include <axis2_module_desc.h>
00053 #include <axis2_phase_holder.h>
00054 
00055 #ifdef __cplusplus
00056 extern "C"
00057 {
00058 #endif
00059 
00060     struct axis2_phase;
00061     struct axis2_handler_desc;
00062     struct axis2_module_desc;
00063     struct axis2_handler;
00064     struct axis2_phase_rule;
00065     struct axis2_svc;
00066     struct axis2_conf;
00067     struct axis2_op;
00068     struct axis2_phase_holder;
00070     typedef struct axis2_phase_resolver axis2_phase_resolver_t;
00072     typedef struct axis2_phase_resolver_ops axis2_phase_resolver_ops_t;
00073 
00078     struct axis2_phase_resolver_ops
00079     {
00086         axis2_status_t (AXIS2_CALL *
00087                 free)(
00088                     axis2_phase_resolver_t *phase_resolver,
00089                     const axis2_env_t *env);
00090 
00096         axis2_status_t (AXIS2_CALL *
00097                 build_chains)(
00098                     axis2_phase_resolver_t *phase_resolver,
00099                     const axis2_env_t *env);
00100 
00108         axis2_status_t (AXIS2_CALL *
00109                 build_module_op)(
00110                     axis2_phase_resolver_t *phase_resolver,
00111                     const axis2_env_t *env,
00112                     struct axis2_op *op);
00113 
00120         axis2_status_t (AXIS2_CALL *
00121                 build_transport_chains)(
00122                     axis2_phase_resolver_t *phase_resolver,
00123                     const axis2_env_t *env);
00124 
00125 
00132         axis2_status_t (AXIS2_CALL *
00133                 engage_module_globally)(
00134                     axis2_phase_resolver_t *phase_resolver,
00135                     const axis2_env_t *env,
00136                     struct axis2_module_desc *module);
00137 
00146         axis2_status_t (AXIS2_CALL *
00147                 engage_module_to_svc_from_global)(
00148                     axis2_phase_resolver_t *phase_resolver,
00149                     const axis2_env_t *env,
00150                     struct axis2_svc *svc,
00151                     struct axis2_module_desc *module_desc);
00152 
00160         axis2_status_t (AXIS2_CALL *
00161                 engage_module_to_svc)(
00162                     axis2_phase_resolver_t *phase_resolver,
00163                     const axis2_env_t *env,
00164                     struct axis2_svc *svc,
00165                     struct axis2_module_desc *module_desc);
00166 
00174         axis2_status_t (AXIS2_CALL *
00175                 engage_module_to_op)(
00176                     axis2_phase_resolver_t *phase_resolver,
00177                     const axis2_env_t *env,
00178                     struct axis2_op *axis_op,
00179                     struct axis2_module_desc *module_desc);
00180 
00181 
00182     };
00183 
00187     struct axis2_phase_resolver
00188     {
00190         axis2_phase_resolver_ops_t *ops;
00191     };
00192 
00198     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00199     axis2_phase_resolver_create (
00200         const axis2_env_t *env);
00201 
00207     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00208     axis2_phase_resolver_create_with_config (
00209         const axis2_env_t *env,
00210         struct axis2_conf *axis2_config);
00211 
00217     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00218     axis2_phase_resolver_create_with_config_and_svc (
00219         const axis2_env_t *env,
00220         struct axis2_conf *axis2_config,
00221         struct axis2_svc *svc);
00222 
00223 /*************************** Function macros **********************************/
00224 
00227 #define AXIS2_PHASE_RESOLVER_FREE(phase_resolver, env) \
00228       ((phase_resolver)->ops->free (phase_resolver, env))
00229 
00232 #define AXIS2_PHASE_RESOLVER_BUILD_CHAINS(phase_resolver, env) \
00233       ((phase_resolver)->ops->build_chains (phase_resolver, env))
00234 
00237 #define AXIS2_PHASE_RESOLVER_BUILD_MODULE_OP(phase_resolver, env, op) \
00238       ((phase_resolver)->ops->build_module_op (phase_resolver, env, op))
00239 
00242 #define AXIS2_PHASE_RESOLVER_BUILD_TRANSPORT_CHAINS(phase_resolver, env) \
00243       ((phase_resolver)->ops->build_transport_chains (phase_resolver, env))
00244 
00247 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_GLOBALLY(phase_resolver, env, module) \
00248       ((phase_resolver)->ops->engage_module_globally (phase_resolver, env, module))
00249 
00252 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC_FROM_GLOBAL(phase_resolver, env, svc, module_desc) \
00253       ((phase_resolver)->ops->engage_module_to_svc_from_global (phase_resolver, env, svc, module_desc))
00254 
00257 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC(phase_resolver, env, svc, module_desc) \
00258       ((phase_resolver)->ops->engage_module_to_svc (phase_resolver, env, svc, module_desc))
00259 
00262 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_OP(phase_resolver, env, axis_op, module_desc) \
00263       ((phase_resolver)->ops->engage_module_to_op (phase_resolver, env, axis_op, module_desc))
00264 
00265 
00266 /*************************** End of function macros ***************************/
00269 #ifdef __cplusplus
00270 }
00271 #endif
00272 #endif  /* AXIS2_PHASE_RESOLVER_H */

Generated on Thu Aug 31 17:32:36 2006 for Axis2/C by  doxygen 1.4.6