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
00025 #include <axis2_utils_defines.h>
00026 #include <axis2_qname.h>
00027 #include <axis2_param.h>
00028 #include <axis2_param_container.h>
00029 #include <axis2_phase_rule.h>
00030 #include <axis2_handler.h>
00031
00032 #ifdef __cplusplus
00033 extern "C"
00034 {
00035 #endif
00036
00037 struct axis2_handler_desc;
00038 struct axis2_handler_desc_ops;
00039
00049 AXIS2_DECLARE_DATA typedef struct axis2_handler_desc_ops
00050 {
00051 axis2_qname_t* (AXIS2_CALL *
00052 get_qname) (struct axis2_handler_desc *handler_desc,
00053 const axis2_env_t *env);
00054
00055 axis2_status_t (AXIS2_CALL *
00056 set_qname) (struct axis2_handler_desc *handler_desc,
00057 const axis2_env_t *env,
00058 axis2_qname_t *qname);
00059
00060 axis2_phase_rule_t* (AXIS2_CALL *
00061 get_rules) (struct axis2_handler_desc *handler_desc,
00062 const axis2_env_t *env);
00063
00064 axis2_status_t (AXIS2_CALL *
00065 set_rules) (struct axis2_handler_desc *handler_desc,
00066 const axis2_env_t *env,
00067 axis2_phase_rule_t *phase_rule);
00068
00069 axis2_param_t* (AXIS2_CALL *
00070 get_param) (struct axis2_handler_desc *handler_desc,
00071 const axis2_env_t *env,
00072 axis2_char_t *name);
00073
00074 axis2_status_t (AXIS2_CALL *
00075 add_param) (struct axis2_handler_desc *handler_desc,
00076 const axis2_env_t *env,
00077 axis2_param_t * param);
00078
00079 axis2_array_list_t* (AXIS2_CALL *
00080 get_params) (struct axis2_handler_desc *handler_desc,
00081 const axis2_env_t *env);
00082
00086 axis2_bool_t (AXIS2_CALL *
00087 is_param_locked)(struct axis2_handler_desc *handler_desc,
00088 const axis2_env_t *env, axis2_char_t * param_name);
00089
00090 axis2_handler_t* (AXIS2_CALL *
00091 get_handler) (struct axis2_handler_desc *handler_desc,
00092 const axis2_env_t *env);
00093
00094 axis2_status_t (AXIS2_CALL *
00095 set_handler) (struct axis2_handler_desc *handler_desc,
00096 const axis2_env_t *env,
00097 axis2_handler_t * handler);
00098
00099 axis2_char_t* (AXIS2_CALL *
00100 get_class_name) (struct axis2_handler_desc *handler_desc,
00101 const axis2_env_t *env);
00102
00103 axis2_status_t (AXIS2_CALL *
00104 set_class_name) (struct axis2_handler_desc *handler_desc,
00105 const axis2_env_t *env,
00106 axis2_char_t *class_name);
00107
00108 axis2_param_container_t* (AXIS2_CALL *
00109 get_parent) (struct axis2_handler_desc *handler_desc,
00110 const axis2_env_t *env);
00111
00112 axis2_status_t (AXIS2_CALL *
00113 set_parent) (struct axis2_handler_desc *handler_desc,
00114 const axis2_env_t *env,
00115 axis2_param_container_t * parent);
00116
00117 axis2_status_t (AXIS2_CALL *
00118 free) (struct axis2_handler_desc *handler_desc,
00119 const axis2_env_t *env);
00120
00121 } axis2_handler_desc_ops_t;
00122
00126 typedef struct axis2_handler_desc
00127 {
00129 axis2_handler_desc_ops_t *ops;
00130
00132 axis2_param_container_t *param_container;
00133
00134 } axis2_handler_desc_t;
00135
00136
00141 AXIS2_EXTERN axis2_handler_desc_t* AXIS2_CALL
00142 axis2_handler_desc_create_with_qname(const axis2_env_t *env, axis2_qname_t *qname);
00143
00144 #define AXIS2_HANDLER_DESC_GET_HANDLER(handler_desc, env) \
00145 ((handler_desc)->ops->get_handler(handler_desc, env))
00146
00147 #define AXIS2_HANDLER_DESC_SET_HANDLER(handler_desc, env, handler) \
00148 ((handler_desc)->ops->set_handler(handler_desc, env, handler))
00149
00150 #define AXIS2_HANDLER_DESC_GET_RULES(handler_desc, env) \
00151 ((handler_desc)->ops->get_rules(handler_desc, env))
00152
00153 #define AXIS2_HANDLER_DESC_SET_RULES(handler_desc, env, rules) \
00154 ((handler_desc)->ops->set_rules(handler_desc, env, rules))
00155
00156 #define AXIS2_HANDLER_DESC_GET_QNAME(handler_desc, env) \
00157 ((handler_desc)->ops->get_qname(handler_desc, env))
00158
00159 #define AXIS2_HANDLER_DESC_SET_QNAME(handler_desc, env, name) \
00160 ((handler_desc)->ops->set_qname(handler_desc, env, name))
00161
00162 #define AXIS2_HANDLER_DESC_GET_PARAM(handler_desc, env, name) \
00163 ((handler_desc)->ops->get_param(handler_desc, env, name))
00164
00165 #define AXIS2_HANDLER_DESC_ADD_PARAM(handler_desc, env, param) \
00166 ((handler_desc)->ops->add_param(handler_desc, env, param))
00167
00168 #define AXIS2_HANDLER_DESC_IS_PHASE_FIRST(handler_desc, env) \
00169 ((handler_desc)->ops->is_phase_first((handler_desc, env))
00170
00171 #define AXIS2_HANDLER_DESC_GET_PHASE_FIRST(handler_desc, env, phase_first) \
00172 ((handler_desc)->ops->set_phase_first(handler_desc, env, phase_first))
00173
00174 #define AXIS2_HANDLER_DESC_IS_PHASE_LAST(handler_desc, env) \
00175 ((handler_desc)->ops->is_phase_last(handler_desc, env))
00176
00177 #define AXIS2_HANDLER_DESC_GET_PHASE_LAST(handler_desc, env, phase_last) \
00178 ((handler_desc)->ops->set_phase_last(handler_desc, env, phase_last))
00179
00180 #define AXIS2_HANDLER_DESC_GET_CLASS_NAME(handler_desc, env) \
00181 ((handler_desc)->ops->get_class_name(handler_desc, env))
00182
00183 #define AXIS2_HANDLER_DESC_SET_CLASS_NAME(handler_desc, env, class_name) \
00184 ((handler_desc)->ops->set_class_name(handler_desc, env, class_name))
00185
00186 #define AXIS2_HANDLER_DESC_GET_PARENT(handler_desc, env) \
00187 ((handler_desc)->ops->get_parent(handler_desc, env))
00188
00189 #define AXIS2_HANDLER_DESC_SET_PARENT(handler_desc, env, parent) \
00190 ((handler_desc)->ops->set_parent(handler_desc, env, parent))
00191
00192 #define AXIS2_HANDLER_DESC_FREE(handler_desc, env) \
00193 ((handler_desc)->ops->free(handler_desc, env))
00194
00197 #ifdef __cplusplus
00198 }
00199 #endif
00200
00201 #endif