axis2_handler_desc.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_HANDLER_DESC_H
00018 #define AXIS2_HANDLER_DESC_H
00019 
00035 #include <axis2_utils_defines.h>
00036 #include <axis2_qname.h>
00037 #include <axis2_param.h>
00038 #include <axis2_param_container.h>
00039 #include <axis2_phase_rule.h>
00040 #include <axis2_handler.h>
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00048     typedef struct axis2_handler_desc axis2_handler_desc_t;
00050     typedef struct axis2_handler_desc_ops axis2_handler_desc_ops_t;
00051 
00056     struct axis2_handler_desc_ops
00057     {
00064         const axis2_qname_t *(AXIS2_CALL *
00065                 get_qname)(
00066                     const axis2_handler_desc_t *handler_desc,
00067                     const axis2_env_t *env);
00068 
00077         axis2_status_t (AXIS2_CALL *
00078                 set_qname)(
00079                     axis2_handler_desc_t *handler_desc,
00080                     const axis2_env_t *env,
00081                     const axis2_qname_t *qname);
00082 
00089         axis2_phase_rule_t *(AXIS2_CALL *
00090                 get_rules)(
00091                     const axis2_handler_desc_t *handler_desc,
00092                     const axis2_env_t *env);
00093 
00102         axis2_status_t (AXIS2_CALL *
00103                 set_rules)(
00104                     axis2_handler_desc_t *handler_desc,
00105                     const axis2_env_t *env,
00106                     axis2_phase_rule_t *phase_rule);
00107 
00116         axis2_param_t *(AXIS2_CALL *
00117                 get_param)(
00118                     const axis2_handler_desc_t *handler_desc,
00119                     const axis2_env_t *env,
00120                     const axis2_char_t *name);
00121 
00129         axis2_status_t (AXIS2_CALL *
00130                 add_param)(
00131                     axis2_handler_desc_t *handler_desc,
00132                     const axis2_env_t *env,
00133                     axis2_param_t *param);
00134 
00142         axis2_array_list_t *(AXIS2_CALL *
00143                 get_all_params)(
00144                     const axis2_handler_desc_t *handler_desc,
00145                     const axis2_env_t *env);
00146 
00154         axis2_bool_t (AXIS2_CALL *
00155                 is_param_locked)(
00156                     const axis2_handler_desc_t *handler_desc,
00157                     const axis2_env_t *env, 
00158                     const axis2_char_t *param_name);
00159 
00166         axis2_handler_t *(AXIS2_CALL *
00167                 get_handler)(
00168                     const axis2_handler_desc_t *handler_desc,
00169                     const axis2_env_t *env);
00170 
00179         axis2_status_t (AXIS2_CALL *
00180                 set_handler)(
00181                     axis2_handler_desc_t *handler_desc,
00182                     const axis2_env_t *env,
00183                     axis2_handler_t *handler);
00184 
00192         const axis2_char_t *(AXIS2_CALL *
00193                 get_class_name)(
00194                     const axis2_handler_desc_t *handler_desc,
00195                     const axis2_env_t *env);
00196 
00205         axis2_status_t (AXIS2_CALL *
00206                 set_class_name)(
00207                     axis2_handler_desc_t *handler_desc,
00208                     const axis2_env_t *env,
00209                     const axis2_char_t *class_name);
00210 
00219         axis2_param_container_t *(AXIS2_CALL *
00220                 get_parent)(
00221                     const axis2_handler_desc_t *handler_desc,
00222                     const axis2_env_t *env);
00223 
00233         axis2_status_t (AXIS2_CALL *
00234                 set_parent)(
00235                     axis2_handler_desc_t *handler_desc,
00236                     const axis2_env_t *env,
00237                     axis2_param_container_t *parent);
00238 
00245         axis2_status_t (AXIS2_CALL *
00246                 free)(
00247                     axis2_handler_desc_t *handler_desc,
00248                     const axis2_env_t *env);
00249 
00250     };
00251 
00255     struct axis2_handler_desc
00256     {
00258         axis2_handler_desc_ops_t *ops;
00259 
00261         axis2_param_container_t *param_container;
00262 
00263     };
00264 
00265 
00273     AXIS2_EXTERN axis2_handler_desc_t *AXIS2_CALL
00274     axis2_handler_desc_create_with_qname(
00275         const axis2_env_t *env, 
00276         const axis2_qname_t *qname);
00277 
00280 #define AXIS2_HANDLER_DESC_GET_HANDLER(handler_desc, env) \
00281         ((handler_desc)->ops->get_handler(handler_desc, env))
00282 
00285 #define AXIS2_HANDLER_DESC_SET_HANDLER(handler_desc, env, handler) \
00286         ((handler_desc)->ops->set_handler(handler_desc, env, handler))
00287 
00290 #define AXIS2_HANDLER_DESC_GET_RULES(handler_desc, env) \
00291         ((handler_desc)->ops->get_rules(handler_desc, env))
00292 
00295 #define AXIS2_HANDLER_DESC_SET_RULES(handler_desc, env, rules) \
00296         ((handler_desc)->ops->set_rules(handler_desc, env, rules))
00297 
00300 #define AXIS2_HANDLER_DESC_GET_QNAME(handler_desc, env) \
00301         ((handler_desc)->ops->get_qname(handler_desc, env))
00302 
00305 #define AXIS2_HANDLER_DESC_SET_QNAME(handler_desc, env, name) \
00306         ((handler_desc)->ops->set_qname(handler_desc, env, name))
00307 
00310 #define AXIS2_HANDLER_DESC_GET_PARAM(handler_desc, env, name) \
00311         ((handler_desc)->ops->get_param(handler_desc, env, name))
00312 
00315 #define AXIS2_HANDLER_DESC_ADD_PARAM(handler_desc, env, param) \
00316         ((handler_desc)->ops->add_param(handler_desc, env, param))
00317 
00320 #define AXIS2_HANDLER_DESC_GET_CLASS_NAME(handler_desc, env) \
00321         ((handler_desc)->ops->get_class_name(handler_desc, env))
00322 
00325 #define AXIS2_HANDLER_DESC_SET_CLASS_NAME(handler_desc, env, class_name) \
00326         ((handler_desc)->ops->set_class_name(handler_desc, env, class_name))
00327 
00330 #define AXIS2_HANDLER_DESC_GET_PARENT(handler_desc, env) \
00331         ((handler_desc)->ops->get_parent(handler_desc, env))
00332 
00335 #define AXIS2_HANDLER_DESC_SET_PARENT(handler_desc, env, parent) \
00336         ((handler_desc)->ops->set_parent(handler_desc, env, parent))
00337 
00340 #define AXIS2_HANDLER_DESC_FREE(handler_desc, env) \
00341         ((handler_desc)->ops->free(handler_desc, env))
00342 
00345 #ifdef __cplusplus
00346 }
00347 #endif
00348 
00349 #endif    /* AXIS2_HANDLER_DESC_H */

Generated on Tue Oct 3 20:47:58 2006 for Axis2/C by  doxygen 1.4.7