axis2_phase_rule.h

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

Generated on Wed Dec 20 20:14:10 2006 for Axis2/C by  doxygen 1.5.1