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 
00040 #include <axis2_const.h>
00041 #include <axis2_error.h>
00042 #include <axis2_defines.h>
00043 #include <axis2_env.h>
00044 #include <axis2_allocator.h>
00045 #include <axis2_qname.h>
00046 #include <axis2_array_list.h>
00047 #include <axis2_hash.h>
00048 #include <axis2_handler_desc.h>
00049 #include <axis2_phase.h>
00050 #include <axis2_phase_rule.h>
00051 #include <axis2_handler.h>
00052 #include <axis2_handler_desc.h>
00053 #include <axis2_flow.h>
00054 #include <axis2_module_desc.h>
00055 #include <axis2_phase_holder.h>
00056 
00057 #ifdef __cplusplus
00058 extern "C"
00059 {
00060 #endif
00061 
00063     typedef struct axis2_phase_resolver axis2_phase_resolver_t;
00065     typedef struct axis2_phase_resolver_ops axis2_phase_resolver_ops_t;
00066 
00067     struct axis2_phase;
00068     struct axis2_handler_desc;
00069     struct axis2_module_desc;
00070     struct axis2_handler;
00071     struct axis2_phase_rule;
00072     struct axis2_svc;
00073     struct axis2_conf;
00074     struct axis2_op;
00075     struct axis2_phase_holder;
00076 
00081     struct axis2_phase_resolver_ops
00082     {
00089         axis2_status_t (AXIS2_CALL *
00090                 free)(
00091                     axis2_phase_resolver_t *phase_resolver,
00092                     const axis2_env_t *env);
00093 
00101         axis2_status_t (AXIS2_CALL *
00102                 build_chains)(
00103                     axis2_phase_resolver_t *phase_resolver,
00104                     const axis2_env_t *env);
00105 
00113         axis2_status_t (AXIS2_CALL *
00114                 build_module_op)(
00115                     axis2_phase_resolver_t *phase_resolver,
00116                     const axis2_env_t *env,
00117                     struct axis2_op *op);
00118 
00125         axis2_status_t (AXIS2_CALL *
00126                 build_transport_chains)(
00127                     axis2_phase_resolver_t *phase_resolver,
00128                     const axis2_env_t *env);
00129 
00130 
00140         axis2_status_t (AXIS2_CALL *
00141                 engage_module_globally)(
00142                     axis2_phase_resolver_t *phase_resolver,
00143                     const axis2_env_t *env,
00144                     struct axis2_module_desc *module);
00145 
00156         axis2_status_t (AXIS2_CALL *
00157                 engage_module_to_svc_from_global)(
00158                     axis2_phase_resolver_t *phase_resolver,
00159                     const axis2_env_t *env,
00160                     struct axis2_svc *svc,
00161                     struct axis2_module_desc *module_desc);
00162 
00173         axis2_status_t (AXIS2_CALL *
00174                 engage_module_to_svc)(
00175                     axis2_phase_resolver_t *phase_resolver,
00176                     const axis2_env_t *env,
00177                     struct axis2_svc *svc,
00178                     struct axis2_module_desc *module_desc);
00179 
00188         axis2_status_t (AXIS2_CALL *
00189                 engage_module_to_op)(
00190                     axis2_phase_resolver_t *phase_resolver,
00191                     const axis2_env_t *env,
00192                     struct axis2_op *axis_op,
00193                     struct axis2_module_desc *module_desc);
00194 
00195 
00196     };
00197 
00201     struct axis2_phase_resolver
00202     {
00204         axis2_phase_resolver_ops_t *ops;
00205     };
00206 
00212     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00213     axis2_phase_resolver_create (
00214         const axis2_env_t *env);
00215 
00223     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00224     axis2_phase_resolver_create_with_config (
00225         const axis2_env_t *env,
00226         struct axis2_conf *axis2_config);
00227 
00237     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00238     axis2_phase_resolver_create_with_config_and_svc (
00239         const axis2_env_t *env,
00240         struct axis2_conf *axis2_config,
00241         struct axis2_svc *svc);
00242 
00245 #define AXIS2_PHASE_RESOLVER_FREE(phase_resolver, env) \
00246       ((phase_resolver)->ops->free (phase_resolver, env))
00247 
00250 #define AXIS2_PHASE_RESOLVER_BUILD_CHAINS(phase_resolver, env) \
00251       ((phase_resolver)->ops->build_chains (phase_resolver, env))
00252 
00255 #define AXIS2_PHASE_RESOLVER_BUILD_MODULE_OP(phase_resolver, env, op) \
00256       ((phase_resolver)->ops->build_module_op (phase_resolver, env, op))
00257 
00260 #define AXIS2_PHASE_RESOLVER_BUILD_TRANSPORT_CHAINS(phase_resolver, env) \
00261       ((phase_resolver)->ops->build_transport_chains (phase_resolver, env))
00262 
00265 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_GLOBALLY(phase_resolver, env, module) \
00266       ((phase_resolver)->ops->engage_module_globally (phase_resolver, env, module))
00267 
00270 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC_FROM_GLOBAL(phase_resolver, env, svc, module_desc) \
00271       ((phase_resolver)->ops->engage_module_to_svc_from_global (phase_resolver, env, svc, module_desc))
00272 
00275 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC(phase_resolver, env, svc, module_desc) \
00276       ((phase_resolver)->ops->engage_module_to_svc (phase_resolver, env, svc, module_desc))
00277 
00280 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_OP(phase_resolver, env, axis_op, module_desc) \
00281       ((phase_resolver)->ops->engage_module_to_op (phase_resolver, env, axis_op, module_desc))
00282 
00283 
00286 #ifdef __cplusplus
00287 }
00288 #endif
00289 #endif  /* AXIS2_PHASE_RESOLVER_H */

Generated on Thu Oct 26 21:00:11 2006 for Axis2/C by  doxygen 1.4.7