00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_PHASE_RULE_H
00018 #define AXIS2_PHASE_RULE_H
00019
00035 #include <axis2_defines.h>
00036 #include <axis2_qname.h>
00037 #include <axis2_param.h>
00038
00039 #ifdef __cplusplus
00040 extern "C"
00041 {
00042 #endif
00043
00045 typedef struct axis2_phase_rule axis2_phase_rule_t;
00047 typedef struct axis2_phase_rule_ops axis2_phase_rule_ops_t;
00048
00049
00054 struct axis2_phase_rule_ops
00055 {
00063 const axis2_char_t *(AXIS2_CALL *
00064 get_before)(
00065 const axis2_phase_rule_t *phase_rule,
00066 const axis2_env_t *env);
00067
00076 axis2_status_t (AXIS2_CALL *
00077 set_before)(
00078 axis2_phase_rule_t *phase_rule,
00079 const axis2_env_t *env,
00080 const axis2_char_t *before);
00081
00089 const axis2_char_t *(AXIS2_CALL *
00090 get_after)(
00091 const axis2_phase_rule_t *phase_rule,
00092 const axis2_env_t *env);
00093
00102 axis2_status_t (AXIS2_CALL *
00103 set_after)(
00104 axis2_phase_rule_t *phase_rule,
00105 const axis2_env_t *env,
00106 const axis2_char_t *after);
00107
00114 const axis2_char_t *(AXIS2_CALL *
00115 get_name)(
00116 const axis2_phase_rule_t *phase_rule,
00117 const axis2_env_t *env);
00118
00126 axis2_status_t (AXIS2_CALL *
00127 set_name)(
00128 axis2_phase_rule_t *phase_rule,
00129 const axis2_env_t *env,
00130 const axis2_char_t *name);
00131
00139 axis2_bool_t (AXIS2_CALL *
00140 is_first)(
00141 const axis2_phase_rule_t *phase_rule,
00142 const axis2_env_t *env);
00143
00152 axis2_status_t (AXIS2_CALL *
00153 set_first)(
00154 axis2_phase_rule_t *phase_rule,
00155 const axis2_env_t *env,
00156 axis2_bool_t first);
00157
00165 axis2_bool_t (AXIS2_CALL *
00166 is_last)(
00167 const axis2_phase_rule_t *phase_rule,
00168 const axis2_env_t *env);
00169
00178 axis2_status_t (AXIS2_CALL *
00179 set_last)(
00180 axis2_phase_rule_t *phase_rule,
00181 const axis2_env_t *env,
00182 axis2_bool_t last);
00183
00190 axis2_status_t (AXIS2_CALL *
00191 free)(
00192 axis2_phase_rule_t *phase_rule,
00193 const axis2_env_t *env);
00194
00201 axis2_phase_rule_t *(AXIS2_CALL *
00202 clone)(
00203 axis2_phase_rule_t *phase_rule,
00204 const axis2_env_t *env);
00205
00206 };
00207
00211 struct axis2_phase_rule
00212 {
00214 axis2_phase_rule_ops_t *ops;
00215 };
00216
00217
00224 AXIS2_EXTERN axis2_phase_rule_t *AXIS2_CALL
00225 axis2_phase_rule_create(
00226 const axis2_env_t *env,
00227 const axis2_char_t *name);
00228
00232 #define AXIS2_PHASE_RULE_GET_BEFORE(phase_rule, env) \
00233 ((phase_rule)->ops->get_before(phase_rule, env))
00234
00238 #define AXIS2_PHASE_RULE_SET_BEFORE(phase_rule, env, before) \
00239 ((phase_rule)->ops->set_before(phase_rule, env, before))
00240
00244 #define AXIS2_PHASE_RULE_GET_AFTER(phase_rule, env) \
00245 ((phase_rule)->ops->get_after(phase_rule, env))
00246
00250 #define AXIS2_PHASE_RULE_SET_AFTER(phase_rule, env, after) \
00251 ((phase_rule)->ops->set_after(phase_rule, env, after))
00252
00255 #define AXIS2_PHASE_RULE_GET_NAME(phase_rule, env) \
00256 ((phase_rule)->ops->get_name(phase_rule, env))
00257
00260 #define AXIS2_PHASE_RULE_SET_NAME(phase_rule, env, name)\
00261 ((phase_rule)->ops->set_name(phase_rule, env, name))
00262
00265 #define AXIS2_PHASE_RULE_IS_FIRST(phase_rule, env) \
00266 ((phase_rule)->ops->is_first(phase_rule, env))
00267
00270 #define AXIS2_PHASE_RULE_SET_FIRST(phase_rule, env, first) \
00271 ((phase_rule)->ops->set_first(phase_rule, env, first))
00272
00275 #define AXIS2_PHASE_RULE_IS_LAST(phase_rule, env) \
00276 ((phase_rule)->ops->is_last(phase_rule, env))
00277
00280 #define AXIS2_PHASE_RULE_SET_LAST(phase_rule, env, last) \
00281 ((phase_rule)->ops->set_last(phase_rule, env, last))
00282
00285 #define AXIS2_PHASE_RULE_FREE(phase_rule, env) \
00286 ((phase_rule)->ops->free(phase_rule, env))
00287
00290 #define AXIS2_PHASE_RULE_CLONE(phase_rule, env) \
00291 ((phase_rule)->ops->clone(phase_rule, env))
00292
00295 #ifdef __cplusplus
00296 }
00297 #endif
00298
00299 #endif