axis2_phase_rule.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
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    /* AXIS2_PHASE_RULE_H */

Generated on Thu Aug 31 17:32:36 2006 for Axis2/C by  doxygen 1.4.6