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
00025 #include <axis2_defines.h>
00026 #include <axis2_qname.h>
00027 #include <axis2_param.h>
00028
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033
00034 struct axis2_phase_rule;
00035 struct axis2_phase_rule_ops;
00036
00046 AXIS2_DECLARE_DATA typedef struct axis2_phase_rule_ops
00047 {
00048 axis2_char_t* (AXIS2_CALL *
00049 get_before) (struct axis2_phase_rule *phase_rule,
00050 const axis2_env_t *env);
00051
00052 axis2_status_t (AXIS2_CALL *
00053 set_before) (struct axis2_phase_rule *phase_rule,
00054 const axis2_env_t *env,
00055 const axis2_char_t *before);
00056
00057 axis2_char_t* (AXIS2_CALL *
00058 get_after) (struct axis2_phase_rule * phase_rule,
00059 const axis2_env_t *env);
00060
00061 axis2_status_t (AXIS2_CALL *
00062 set_after) (struct axis2_phase_rule * phase_rule,
00063 const axis2_env_t *env,
00064 const axis2_char_t *after);
00065
00066 axis2_char_t* (AXIS2_CALL *
00067 get_name) (struct axis2_phase_rule * phase_rule,
00068 const axis2_env_t *env);
00069
00070 axis2_status_t (AXIS2_CALL *
00071 set_name) (struct axis2_phase_rule * phase_rule,
00072 const axis2_env_t *env,
00073 const axis2_char_t *name);
00074
00075 axis2_bool_t (AXIS2_CALL *
00076 is_phase_first) (struct axis2_phase_rule * phase_rule,
00077 const axis2_env_t *env);
00078
00079 axis2_status_t (AXIS2_CALL *
00080 set_phase_first) (struct axis2_phase_rule * phase_rule,
00081 const axis2_env_t *env,
00082 axis2_bool_t phae_first);
00083
00084 axis2_bool_t (AXIS2_CALL *
00085 is_phase_last) (struct axis2_phase_rule * phase_rule,
00086 const axis2_env_t *env);
00087
00088 axis2_status_t (AXIS2_CALL *
00089 set_phase_last) (struct axis2_phase_rule * phase_rule,
00090 const axis2_env_t *env,
00091 axis2_bool_t phae_last);
00092
00093 axis2_status_t (AXIS2_CALL *
00094 free) (struct axis2_phase_rule *phase_rule,
00095 const axis2_env_t *env);
00096
00097 struct axis2_phase_rule* (AXIS2_CALL *
00098 clone) (struct axis2_phase_rule *phase_rule,
00099 const axis2_env_t *env);
00100
00101 } axis2_phase_rule_ops_t;
00102
00106 typedef struct axis2_phase_rule
00107 {
00109 axis2_phase_rule_ops_t *ops;
00110 } axis2_phase_rule_t;
00111
00112
00116 AXIS2_EXTERN axis2_phase_rule_t* AXIS2_CALL
00117 axis2_phase_rule_create(const axis2_env_t *env,
00118 const axis2_char_t *phase_name);
00119
00120 #define AXIS2_PHASE_RULE_GET_BEFORE(phase_rule, env) \
00121 ((phase_rule)->ops->get_before(phase_rule, env))
00122
00123 #define AXIS2_PHASE_RULE_SET_BEFORE(phase_rule, env, before) \
00124 ((phase_rule)->ops->set_before(phase_rule, env, before))
00125
00126 #define AXIS2_PHASE_RULE_GET_AFTER(phase_rule, env) \
00127 ((phase_rule)->ops->get_after(phase_rule, env))
00128
00129 #define AXIS2_PHASE_RULE_SET_AFTER(phase_rule, env, after) \
00130 ((phase_rule)->ops->set_after(phase_rule, env, after))
00131
00132 #define AXIS2_PHASE_RULE_GET_NAME(phase_rule, env) \
00133 ((phase_rule)->ops->get_name(phase_rule, env))
00134
00135 #define AXIS2_PHASE_RULE_SET_NAME(phase_rule, env, name)\
00136 ((phase_rule)->ops->set_name(phase_rule, env, name))
00137
00138 #define AXIS2_PHASE_RULE_IS_PHASE_FIRST(phase_rule, env) \
00139 ((phase_rule)->ops->is_phase_first(phase_rule, env))
00140
00141 #define AXIS2_PHASE_RULE_SET_PHASE_FIRST(phase_rule, env, phase_first) \
00142 ((phase_rule)->ops->set_phase_first(phase_rule, env, phase_first))
00143
00144 #define AXIS2_PHASE_RULE_IS_PHASE_LAST(phase_rule, env) \
00145 ((phase_rule)->ops->is_phase_last(phase_rule, env))
00146
00147 #define AXIS2_PHASE_RULE_SET_PHASE_LAST(phase_rule, env, phase_last) \
00148 ((phase_rule)->ops->set_phase_last(phase_rule, env, phase_last))
00149
00150 #define AXIS2_PHASE_RULE_FREE(phase_rule, env) \
00151 ((phase_rule)->ops->free(phase_rule, env))
00152
00153 #define AXIS2_PHASE_RULE_CLONE(phase_rule, env) \
00154 ((phase_rule)->ops->clone(phase_rule, env))
00155
00158 #ifdef __cplusplus
00159 }
00160 #endif
00161
00162 #endif