Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

axis2_module_desc.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 #ifndef AXIS2_MODULE_DESC_H
00017 #define AXIS2_MODULE_DESC_H
00018 
00032 #include <axis2_const.h>
00033 #include <axis2_error.h>
00034 #include <axis2_defines.h>
00035 #include <axis2_env.h>
00036 #include <axis2_allocator.h>
00037 #include <axis2_string.h>
00038 
00039 #include <axis2_array_list.h>
00040 #include <axis2_param_container.h>
00041 #include <axis2_flow_container.h>
00042 #include <axis2_param.h>
00043 #include <axis2_op.h>
00044 #include <axis2_conf.h>
00045 #include <axis2_module.h>
00046 
00047 
00048 #ifdef __cplusplus
00049 extern "C"
00050 {
00051 #endif
00052 
00053 struct axis2_op;
00054 struct axis2_conf;   
00055 typedef struct axis2_module_desc_ops axis2_module_desc_ops_t;
00056 typedef struct axis2_module_desc axis2_module_desc_t;   
00057    
00058 
00068 struct axis2_module_desc_ops
00069 {
00070     axis2_status_t (AXIS2_CALL *
00071     free) (axis2_module_desc_t *module_desc,
00072                                 const axis2_env_t *env);
00073         
00078     axis2_flow_t *(AXIS2_CALL *
00079     get_inflow) (axis2_module_desc_t *module_desc,
00080                                         const axis2_env_t *env);
00081     
00086     axis2_status_t (AXIS2_CALL *
00087     set_inflow) (axis2_module_desc_t *module_desc,
00088                                         const axis2_env_t *env,
00089                                         axis2_flow_t *inflow);
00090     
00095     axis2_flow_t *(AXIS2_CALL *
00096     get_outflow) (axis2_module_desc_t *module_desc,
00097                                         const axis2_env_t *env);
00098     
00103     axis2_status_t (AXIS2_CALL *
00104     set_outflow) (axis2_module_desc_t *module_desc,
00105                                         const axis2_env_t *env,
00106                                         axis2_flow_t *outflow);
00107     
00112     axis2_flow_t * (AXIS2_CALL *
00113     get_fault_inflow) (axis2_module_desc_t *module_desc,
00114                                             const axis2_env_t *env);
00115     
00120     axis2_status_t (AXIS2_CALL *
00121     set_fault_inflow) (axis2_module_desc_t *module_desc,
00122                                             const axis2_env_t *env,
00123                                             axis2_flow_t *falut_inflow);
00124     
00129     axis2_flow_t *(AXIS2_CALL *
00130     get_fault_outflow) (axis2_module_desc_t *module_desc,
00131                                                 const axis2_env_t *env);
00132     
00137     axis2_status_t (AXIS2_CALL *
00138     set_fault_outflow) (axis2_module_desc_t *module_desc,
00139                                                 const axis2_env_t *env,
00140                                                 axis2_flow_t *fault_outflow);
00141     
00145     axis2_qname_t * (AXIS2_CALL *
00146     get_name ) (axis2_module_desc_t *module_desc,
00147                                     const axis2_env_t *env);
00148     
00152     axis2_status_t (AXIS2_CALL *
00153     set_name ) (axis2_module_desc_t *module_desc,
00154                                     const axis2_env_t *env,
00155                                     axis2_qname_t *qname);
00156     
00157     axis2_status_t (AXIS2_CALL *
00158     add_op ) (axis2_module_desc_t *module_desc,
00159                                         const axis2_env_t *env,
00160                                         struct axis2_op *op);
00161     
00162     axis2_hash_t * (AXIS2_CALL *
00163     get_ops ) (axis2_module_desc_t *module_desc,
00164                                         const axis2_env_t *env);
00165     
00166     struct axis2_conf * (AXIS2_CALL *
00167     get_parent ) (axis2_module_desc_t *module_desc,
00168                                     const axis2_env_t *env);
00169     
00170     axis2_status_t (AXIS2_CALL *
00171     set_parent ) (axis2_module_desc_t *module_desc,
00172                                     const axis2_env_t *env,
00173                                     struct axis2_conf *parent);
00174     
00179     axis2_status_t (AXIS2_CALL *
00180     add_param) (axis2_module_desc_t *module_desc,
00181                                         const axis2_env_t *env,
00182                                         axis2_param_t *param);
00183     
00188     axis2_param_t * (AXIS2_CALL *
00189     get_param) (axis2_module_desc_t *module_desc,
00190                                         const axis2_env_t *env,
00191                                         axis2_char_t *name);
00192     
00193     axis2_array_list_t * (AXIS2_CALL *
00194     get_params) (axis2_module_desc_t *module_desc,
00195                                         const axis2_env_t *env);
00196     
00202     axis2_bool_t (AXIS2_CALL *
00203     is_param_locked ) (axis2_module_desc_t *module_desc,
00204                                         const axis2_env_t *env,
00205                                         axis2_char_t *param_name);
00206                                         
00210     struct axis2_module *(AXIS2_CALL *
00211     get_module) (axis2_module_desc_t *module_desc,
00212                                         const axis2_env_t *env);
00213     
00217     axis2_status_t (AXIS2_CALL *
00218     set_module) (axis2_module_desc_t *module_desc,
00219                                     const axis2_env_t *env,
00220                                     struct axis2_module *module);                                        
00221 
00222 };
00223 
00236 struct axis2_module_desc
00237 {
00238    axis2_module_desc_ops_t *ops;
00239     
00240     axis2_flow_container_t *flow_container;
00241     
00242     axis2_param_container_t *params;
00243     
00244 };
00245 
00249 AXIS2_EXTERN axis2_module_desc_t * AXIS2_CALL 
00250 axis2_module_desc_create (const axis2_env_t *env);
00251 
00255 AXIS2_EXTERN axis2_module_desc_t * AXIS2_CALL 
00256 axis2_module_desc_create_with_qname (const axis2_env_t *env, 
00257                                         axis2_qname_t *qname);
00258 
00264 AXIS2_EXTERN axis2_status_t AXIS2_CALL 
00265 axis2_module_desc_free_void_arg (void *module_desc,
00266                                         const axis2_env_t *env);
00267 
00268                                 
00269 /************************* Start of function macros   ***************************/
00270    
00271 #define AXIS2_MODULE_DESC_FREE(module_desc, env) \
00272       ((module_desc)->ops->free(module_desc, env))
00273    
00274 #define AXIS2_MODULE_DESC_GET_INFLOW(module_desc, env) \
00275         ((module_desc)->ops->get_inflow (module_desc, env))
00276 
00277 #define AXIS2_MODULE_DESC_SET_INFLOW(module_desc, env, inflow) \
00278         ((module_desc)->ops->set_inflow (module_desc, env, inflow))
00279 
00280 #define AXIS2_MODULE_DESC_GET_OUTFLOW(module_desc, env) \
00281       ((module_desc)->ops->get_outflow (module_desc, env))
00282       
00283 #define AXIS2_MODULE_DESC_SET_OUTFLOW(module_desc, env, outflow) \
00284       ((module_desc)->ops->set_outflow (module_desc, env, outflow))
00285 
00286 #define AXIS2_MODULE_DESC_GET_FAULT_INFLOW(module_desc, env) \
00287       ((module_desc)->ops->get_fault_inflow (module_desc, env))
00288         
00289 #define AXIS2_MODULE_DESC_SET_FAULT_INFLOW(module_desc, env, falut_inflow) \
00290         ((module_desc)->ops->set_fault_inflow(module_desc , env, falut_inflow))
00291       
00292 #define AXIS2_MODULE_DESC_GET_FAULT_OUTFLOW(module_desc, env) \
00293         ((module_desc)->ops->get_fault_outflow(module_desc , env))
00294       
00295 #define AXIS2_MODULE_DESC_SET_FAULT_OUTFLOW(module_desc, env, falut_outflow) \
00296         ((module_desc)->ops->set_fault_outflow(module_desc , env, falut_outflow))
00297       
00298 #define AXIS2_MODULE_DESC_GET_NAME(module_desc, env) \
00299         ((module_desc)->ops->get_name(module_desc, env))
00300 
00301 #define AXIS2_MODULE_DESC_SET_NAME(module_desc, env, qname) \
00302         ((module_desc)->ops->set_name(module_desc, env, qname))
00303 
00304 #define AXIS2_MODULE_DESC_ADD_OP(module_desc, env, op) \
00305         ((module_desc)->ops->add_op(module_desc, env, op))
00306         
00307 #define AXIS2_MODULE_DESC_GET_OPS(module_desc, env) \
00308         ((module_desc)->ops->get_ops(module_desc, env))
00309 
00310 #define AXIS2_MODULE_DESC_GET_PARENT(module_desc, env) \
00311         ((module_desc)->ops->get_parent(module_desc, env))
00312         
00313 #define AXIS2_MODULE_DESC_SET_PARENT(module_desc, env, parent) \
00314         ((module_desc)->ops->set_parent(module_desc, env, parent))
00315 
00316 #define AXIS2_MODULE_DESC_ADD_PARAM(module_desc, env, param) \
00317         ((module_desc)->ops->add_param(module_desc, env, param))
00318         
00319 #define AXIS2_MODULE_DESC_GET_PARAM(module_desc, env, name) \
00320         ((module_desc)->ops->get_param(module_desc, env, name))
00321 
00322 #define AXIS2_MODULE_DESC_GET_PARAMS(module_desc, env) \
00323         ((module_desc)->ops->get_params(module_desc, env))
00324         
00325 #define AXIS2_MODULE_DESC_IS_PARAM_LOCKED(module_desc, env, param_name) \
00326         ((module_desc)->ops->is_param_locked(module_desc, env, param_name))
00327 
00328 #define AXIS2_MODULE_DESC_GET_MODULE(module_desc, env) \
00329         ((module_desc)->ops->get_module(module_desc, env))
00330         
00331 #define AXIS2_MODULE_DESC_SET_MODULE(module_desc, env, module) \
00332         ((module_desc)->ops->set_module(module_desc, env, module))        
00333         
00334 /************************* End of function macros *****************************/
00337 #ifdef __cplusplus
00338 }
00339 #endif
00340 #endif /* AXIS2_MODULE_DESC_H */

Generated on Fri Jun 16 18:02:31 2006 for Axis2/C by  doxygen 1.4.2