axis2_handler_desc.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_HANDLER_DESC_H
00019 #define AXIS2_HANDLER_DESC_H
00020 
00036 #include <axis2_utils_defines.h>
00037 #include <axis2_qname.h>
00038 #include <axis2_param.h>
00039 #include <axis2_param_container.h>
00040 #include <axis2_phase_rule.h>
00041 #include <axis2_handler.h>
00042 
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047 
00049     typedef struct axis2_handler_desc axis2_handler_desc_t;
00051     typedef struct axis2_handler_desc_ops axis2_handler_desc_ops_t;
00052 
00057     struct axis2_handler_desc_ops
00058     {
00065         const axis2_qname_t *(AXIS2_CALL *
00066                 get_qname)(
00067                     const axis2_handler_desc_t *handler_desc,
00068                     const axis2_env_t *env);
00069 
00078         axis2_status_t (AXIS2_CALL *
00079                 set_qname)(
00080                     axis2_handler_desc_t *handler_desc,
00081                     const axis2_env_t *env,
00082                     const axis2_qname_t *qname);
00083 
00090         axis2_phase_rule_t *(AXIS2_CALL *
00091                 get_rules)(
00092                     const axis2_handler_desc_t *handler_desc,
00093                     const axis2_env_t *env);
00094 
00103         axis2_status_t (AXIS2_CALL *
00104                 set_rules)(
00105                     axis2_handler_desc_t *handler_desc,
00106                     const axis2_env_t *env,
00107                     axis2_phase_rule_t *phase_rule);
00108 
00117         axis2_param_t *(AXIS2_CALL *
00118                 get_param)(
00119                     const axis2_handler_desc_t *handler_desc,
00120                     const axis2_env_t *env,
00121                     const axis2_char_t *name);
00122 
00130         axis2_status_t (AXIS2_CALL *
00131                 add_param)(
00132                     axis2_handler_desc_t *handler_desc,
00133                     const axis2_env_t *env,
00134                     axis2_param_t *param);
00135 
00143         axis2_array_list_t *(AXIS2_CALL *
00144                 get_all_params)(
00145                     const axis2_handler_desc_t *handler_desc,
00146                     const axis2_env_t *env);
00147 
00155         axis2_bool_t (AXIS2_CALL *
00156                 is_param_locked)(
00157                     const axis2_handler_desc_t *handler_desc,
00158                     const axis2_env_t *env, 
00159                     const axis2_char_t *param_name);
00160 
00167         axis2_handler_t *(AXIS2_CALL *
00168                 get_handler)(
00169                     const axis2_handler_desc_t *handler_desc,
00170                     const axis2_env_t *env);
00171 
00180         axis2_status_t (AXIS2_CALL *
00181                 set_handler)(
00182                     axis2_handler_desc_t *handler_desc,
00183                     const axis2_env_t *env,
00184                     axis2_handler_t *handler);
00185 
00193         const axis2_char_t *(AXIS2_CALL *
00194                 get_class_name)(
00195                     const axis2_handler_desc_t *handler_desc,
00196                     const axis2_env_t *env);
00197 
00206         axis2_status_t (AXIS2_CALL *
00207                 set_class_name)(
00208                     axis2_handler_desc_t *handler_desc,
00209                     const axis2_env_t *env,
00210                     const axis2_char_t *class_name);
00211 
00220         axis2_param_container_t *(AXIS2_CALL *
00221                 get_parent)(
00222                     const axis2_handler_desc_t *handler_desc,
00223                     const axis2_env_t *env);
00224 
00234         axis2_status_t (AXIS2_CALL *
00235                 set_parent)(
00236                     axis2_handler_desc_t *handler_desc,
00237                     const axis2_env_t *env,
00238                     axis2_param_container_t *parent);
00239 
00246         axis2_status_t (AXIS2_CALL *
00247                 free)(
00248                     axis2_handler_desc_t *handler_desc,
00249                     const axis2_env_t *env);
00250 
00251     };
00252 
00256     struct axis2_handler_desc
00257     {
00259         axis2_handler_desc_ops_t *ops;
00260 
00262         axis2_param_container_t *param_container;
00263 
00264     };
00265 
00266 
00274     AXIS2_EXTERN axis2_handler_desc_t *AXIS2_CALL
00275     axis2_handler_desc_create_with_qname(
00276         const axis2_env_t *env, 
00277         const axis2_qname_t *qname);
00278 
00281 #define AXIS2_HANDLER_DESC_GET_HANDLER(handler_desc, env) \
00282         ((handler_desc)->ops->get_handler(handler_desc, env))
00283 
00286 #define AXIS2_HANDLER_DESC_SET_HANDLER(handler_desc, env, handler) \
00287         ((handler_desc)->ops->set_handler(handler_desc, env, handler))
00288 
00291 #define AXIS2_HANDLER_DESC_GET_RULES(handler_desc, env) \
00292         ((handler_desc)->ops->get_rules(handler_desc, env))
00293 
00296 #define AXIS2_HANDLER_DESC_SET_RULES(handler_desc, env, rules) \
00297         ((handler_desc)->ops->set_rules(handler_desc, env, rules))
00298 
00301 #define AXIS2_HANDLER_DESC_GET_QNAME(handler_desc, env) \
00302         ((handler_desc)->ops->get_qname(handler_desc, env))
00303 
00306 #define AXIS2_HANDLER_DESC_SET_QNAME(handler_desc, env, name) \
00307         ((handler_desc)->ops->set_qname(handler_desc, env, name))
00308 
00311 #define AXIS2_HANDLER_DESC_GET_PARAM(handler_desc, env, name) \
00312         ((handler_desc)->ops->get_param(handler_desc, env, name))
00313 
00316 #define AXIS2_HANDLER_DESC_ADD_PARAM(handler_desc, env, param) \
00317         ((handler_desc)->ops->add_param(handler_desc, env, param))
00318 
00321 #define AXIS2_HANDLER_DESC_GET_CLASS_NAME(handler_desc, env) \
00322         ((handler_desc)->ops->get_class_name(handler_desc, env))
00323 
00326 #define AXIS2_HANDLER_DESC_SET_CLASS_NAME(handler_desc, env, class_name) \
00327         ((handler_desc)->ops->set_class_name(handler_desc, env, class_name))
00328 
00331 #define AXIS2_HANDLER_DESC_GET_PARENT(handler_desc, env) \
00332         ((handler_desc)->ops->get_parent(handler_desc, env))
00333 
00336 #define AXIS2_HANDLER_DESC_SET_PARENT(handler_desc, env, parent) \
00337         ((handler_desc)->ops->set_parent(handler_desc, env, parent))
00338 
00341 #define AXIS2_HANDLER_DESC_FREE(handler_desc, env) \
00342         ((handler_desc)->ops->free(handler_desc, env))
00343 
00346 #ifdef __cplusplus
00347 }
00348 #endif
00349 
00350 #endif    /* AXIS2_HANDLER_DESC_H */

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