axis2_phase_resolver.h

Go to the documentation of this file.
00001 /*
00002 * Licensed to the Apache Software Foundation (ASF) under one or more
00003 * contributor license agreements.  See the NOTICE file distributed with
00004 * this work for additional information regarding copyright ownership.
00005 * The ASF licenses this file to You under the Apache License, Version 2.0
00006 * (the "License"); you may not use this file except in compliance with
00007 * the License.  You may obtain a copy of the License at
00008 *
00009 *      http://www.apache.org/licenses/LICENSE-2.0
00010 *
00011 * Unless required by applicable law or agreed to in writing, software
00012 * distributed under the License is distributed on an "AS IS" BASIS,
00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014 * See the License for the specific language governing permissions and
00015 * limitations under the License.
00016 */
00017 
00018 #ifndef AXIS2_PHASE_RESOLVER_H
00019 #define AXIS2_PHASE_RESOLVER_H
00020 
00041 #include <axis2_const.h>
00042 #include <axis2_error.h>
00043 #include <axis2_defines.h>
00044 #include <axis2_env.h>
00045 #include <axis2_allocator.h>
00046 #include <axis2_qname.h>
00047 #include <axis2_array_list.h>
00048 #include <axis2_hash.h>
00049 #include <axis2_handler_desc.h>
00050 #include <axis2_phase.h>
00051 #include <axis2_phase_rule.h>
00052 #include <axis2_handler.h>
00053 #include <axis2_handler_desc.h>
00054 #include <axis2_flow.h>
00055 #include <axis2_module_desc.h>
00056 #include <axis2_phase_holder.h>
00057 
00058 #ifdef __cplusplus
00059 extern "C"
00060 {
00061 #endif
00062 
00064     typedef struct axis2_phase_resolver axis2_phase_resolver_t;
00066     typedef struct axis2_phase_resolver_ops axis2_phase_resolver_ops_t;
00067 
00068     struct axis2_phase;
00069     struct axis2_handler_desc;
00070     struct axis2_module_desc;
00071     struct axis2_handler;
00072     struct axis2_phase_rule;
00073     struct axis2_svc;
00074     struct axis2_conf;
00075     struct axis2_op;
00076     struct axis2_phase_holder;
00077 
00082     struct axis2_phase_resolver_ops
00083     {
00090         axis2_status_t (AXIS2_CALL *
00091                 free)(
00092                     axis2_phase_resolver_t *phase_resolver,
00093                     const axis2_env_t *env);
00094 
00102         axis2_status_t (AXIS2_CALL *
00103                 build_chains)(
00104                     axis2_phase_resolver_t *phase_resolver,
00105                     const axis2_env_t *env);
00106 
00114         axis2_status_t (AXIS2_CALL *
00115                 build_module_op)(
00116                     axis2_phase_resolver_t *phase_resolver,
00117                     const axis2_env_t *env,
00118                     struct axis2_op *op);
00119 
00126         axis2_status_t (AXIS2_CALL *
00127                 build_transport_chains)(
00128                     axis2_phase_resolver_t *phase_resolver,
00129                     const axis2_env_t *env);
00130 
00131 
00141         axis2_status_t (AXIS2_CALL *
00142                 engage_module_globally)(
00143                     axis2_phase_resolver_t *phase_resolver,
00144                     const axis2_env_t *env,
00145                     struct axis2_module_desc *module);
00146 
00157         axis2_status_t (AXIS2_CALL *
00158                 engage_module_to_svc_from_global)(
00159                     axis2_phase_resolver_t *phase_resolver,
00160                     const axis2_env_t *env,
00161                     struct axis2_svc *svc,
00162                     struct axis2_module_desc *module_desc);
00163 
00174         axis2_status_t (AXIS2_CALL *
00175                 engage_module_to_svc)(
00176                     axis2_phase_resolver_t *phase_resolver,
00177                     const axis2_env_t *env,
00178                     struct axis2_svc *svc,
00179                     struct axis2_module_desc *module_desc);
00180 
00189         axis2_status_t (AXIS2_CALL *
00190                 engage_module_to_op)(
00191                     axis2_phase_resolver_t *phase_resolver,
00192                     const axis2_env_t *env,
00193                     struct axis2_op *axis_op,
00194                     struct axis2_module_desc *module_desc);
00195 
00196 
00197     };
00198 
00202     struct axis2_phase_resolver
00203     {
00205         axis2_phase_resolver_ops_t *ops;
00206     };
00207 
00213     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00214     axis2_phase_resolver_create (
00215         const axis2_env_t *env);
00216 
00224     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00225     axis2_phase_resolver_create_with_config (
00226         const axis2_env_t *env,
00227         struct axis2_conf *axis2_config);
00228 
00238     AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00239     axis2_phase_resolver_create_with_config_and_svc (
00240         const axis2_env_t *env,
00241         struct axis2_conf *axis2_config,
00242         struct axis2_svc *svc);
00243 
00246 #define AXIS2_PHASE_RESOLVER_FREE(phase_resolver, env) \
00247       ((phase_resolver)->ops->free (phase_resolver, env))
00248 
00251 #define AXIS2_PHASE_RESOLVER_BUILD_CHAINS(phase_resolver, env) \
00252       ((phase_resolver)->ops->build_chains (phase_resolver, env))
00253 
00256 #define AXIS2_PHASE_RESOLVER_BUILD_MODULE_OP(phase_resolver, env, op) \
00257       ((phase_resolver)->ops->build_module_op (phase_resolver, env, op))
00258 
00261 #define AXIS2_PHASE_RESOLVER_BUILD_TRANSPORT_CHAINS(phase_resolver, env) \
00262       ((phase_resolver)->ops->build_transport_chains (phase_resolver, env))
00263 
00266 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_GLOBALLY(phase_resolver, env, module) \
00267       ((phase_resolver)->ops->engage_module_globally (phase_resolver, env, module))
00268 
00271 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC_FROM_GLOBAL(phase_resolver, env, svc, module_desc) \
00272       ((phase_resolver)->ops->engage_module_to_svc_from_global (phase_resolver, env, svc, module_desc))
00273 
00276 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC(phase_resolver, env, svc, module_desc) \
00277       ((phase_resolver)->ops->engage_module_to_svc (phase_resolver, env, svc, module_desc))
00278 
00281 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_OP(phase_resolver, env, axis_op, module_desc) \
00282       ((phase_resolver)->ops->engage_module_to_op (phase_resolver, env, axis_op, module_desc))
00283 
00284 
00287 #ifdef __cplusplus
00288 }
00289 #endif
00290 #endif  /* AXIS2_PHASE_RESOLVER_H */

Generated on Wed Dec 20 20:34:50 2006 for Axis2/C by  doxygen 1.5.1