00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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