00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_PHASE_RULE_H
00019 #define AXIS2_PHASE_RULE_H
00020
00036 #include <axis2_defines.h>
00037 #include <axis2_qname.h>
00038 #include <axis2_param.h>
00039
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044
00046 typedef struct axis2_phase_rule axis2_phase_rule_t;
00048 typedef struct axis2_phase_rule_ops axis2_phase_rule_ops_t;
00049
00050
00055 struct axis2_phase_rule_ops
00056 {
00064 const axis2_char_t *(AXIS2_CALL *
00065 get_before)(
00066 const axis2_phase_rule_t *phase_rule,
00067 const axis2_env_t *env);
00068
00077 axis2_status_t (AXIS2_CALL *
00078 set_before)(
00079 axis2_phase_rule_t *phase_rule,
00080 const axis2_env_t *env,
00081 const axis2_char_t *before);
00082
00090 const axis2_char_t *(AXIS2_CALL *
00091 get_after)(
00092 const axis2_phase_rule_t *phase_rule,
00093 const axis2_env_t *env);
00094
00103 axis2_status_t (AXIS2_CALL *
00104 set_after)(
00105 axis2_phase_rule_t *phase_rule,
00106 const axis2_env_t *env,
00107 const axis2_char_t *after);
00108
00115 const axis2_char_t *(AXIS2_CALL *
00116 get_name)(
00117 const axis2_phase_rule_t *phase_rule,
00118 const axis2_env_t *env);
00119
00127 axis2_status_t (AXIS2_CALL *
00128 set_name)(
00129 axis2_phase_rule_t *phase_rule,
00130 const axis2_env_t *env,
00131 const axis2_char_t *name);
00132
00140 axis2_bool_t (AXIS2_CALL *
00141 is_first)(
00142 const axis2_phase_rule_t *phase_rule,
00143 const axis2_env_t *env);
00144
00153 axis2_status_t (AXIS2_CALL *
00154 set_first)(
00155 axis2_phase_rule_t *phase_rule,
00156 const axis2_env_t *env,
00157 axis2_bool_t first);
00158
00166 axis2_bool_t (AXIS2_CALL *
00167 is_last)(
00168 const axis2_phase_rule_t *phase_rule,
00169 const axis2_env_t *env);
00170
00179 axis2_status_t (AXIS2_CALL *
00180 set_last)(
00181 axis2_phase_rule_t *phase_rule,
00182 const axis2_env_t *env,
00183 axis2_bool_t last);
00184
00191 axis2_status_t (AXIS2_CALL *
00192 free)(
00193 axis2_phase_rule_t *phase_rule,
00194 const axis2_env_t *env);
00195
00202 axis2_phase_rule_t *(AXIS2_CALL *
00203 clone)(
00204 axis2_phase_rule_t *phase_rule,
00205 const axis2_env_t *env);
00206
00207 };
00208
00212 struct axis2_phase_rule
00213 {
00215 axis2_phase_rule_ops_t *ops;
00216 };
00217
00218
00225 AXIS2_EXTERN axis2_phase_rule_t *AXIS2_CALL
00226 axis2_phase_rule_create(
00227 const axis2_env_t *env,
00228 const axis2_char_t *name);
00229
00233 #define AXIS2_PHASE_RULE_GET_BEFORE(phase_rule, env) \
00234 ((phase_rule)->ops->get_before(phase_rule, env))
00235
00239 #define AXIS2_PHASE_RULE_SET_BEFORE(phase_rule, env, before) \
00240 ((phase_rule)->ops->set_before(phase_rule, env, before))
00241
00245 #define AXIS2_PHASE_RULE_GET_AFTER(phase_rule, env) \
00246 ((phase_rule)->ops->get_after(phase_rule, env))
00247
00251 #define AXIS2_PHASE_RULE_SET_AFTER(phase_rule, env, after) \
00252 ((phase_rule)->ops->set_after(phase_rule, env, after))
00253
00256 #define AXIS2_PHASE_RULE_GET_NAME(phase_rule, env) \
00257 ((phase_rule)->ops->get_name(phase_rule, env))
00258
00261 #define AXIS2_PHASE_RULE_SET_NAME(phase_rule, env, name)\
00262 ((phase_rule)->ops->set_name(phase_rule, env, name))
00263
00266 #define AXIS2_PHASE_RULE_IS_FIRST(phase_rule, env) \
00267 ((phase_rule)->ops->is_first(phase_rule, env))
00268
00271 #define AXIS2_PHASE_RULE_SET_FIRST(phase_rule, env, first) \
00272 ((phase_rule)->ops->set_first(phase_rule, env, first))
00273
00276 #define AXIS2_PHASE_RULE_IS_LAST(phase_rule, env) \
00277 ((phase_rule)->ops->is_last(phase_rule, env))
00278
00281 #define AXIS2_PHASE_RULE_SET_LAST(phase_rule, env, last) \
00282 ((phase_rule)->ops->set_last(phase_rule, env, last))
00283
00286 #define AXIS2_PHASE_RULE_FREE(phase_rule, env) \
00287 ((phase_rule)->ops->free(phase_rule, env))
00288
00291 #define AXIS2_PHASE_RULE_CLONE(phase_rule, env) \
00292 ((phase_rule)->ops->clone(phase_rule, env))
00293
00296 #ifdef __cplusplus
00297 }
00298 #endif
00299
00300 #endif