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