axis2_module_desc.h

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 
00030 #include <axis2_const.h>
00031 #include <axis2_error.h>
00032 #include <axis2_defines.h>
00033 #include <axis2_env.h>
00034 #include <axis2_allocator.h>
00035 #include <axis2_string.h>
00036 #include <axis2_array_list.h>
00037 #include <axis2_param_container.h>
00038 #include <axis2_flow_container.h>
00039 #include <axis2_param.h>
00040 #include <axis2_op.h>
00041 #include <axis2_conf.h>
00042 
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047 
00049     typedef struct axis2_module_desc_ops axis2_module_desc_ops_t;
00051     typedef struct axis2_module_desc axis2_module_desc_t;
00052 
00053     struct axis2_op;
00054     struct axis2_conf;
00055 
00056 
00061     struct axis2_module_desc_ops
00062     {
00069         axis2_status_t (AXIS2_CALL *
00070                 free)(
00071                     axis2_module_desc_t *module_desc,
00072                     const axis2_env_t *env);
00073 
00081         axis2_flow_t *(AXIS2_CALL *
00082                 get_in_flow)(
00083                     const axis2_module_desc_t *module_desc,
00084                     const axis2_env_t *env);
00085 
00094         axis2_status_t (AXIS2_CALL *
00095                 set_in_flow)(
00096                     axis2_module_desc_t *module_desc,
00097                     const axis2_env_t *env,
00098                     axis2_flow_t *in_flow);
00099 
00107         axis2_flow_t *(AXIS2_CALL *
00108                 get_out_flow)(
00109                     const axis2_module_desc_t *module_desc,
00110                     const axis2_env_t *env);
00111 
00120         axis2_status_t (AXIS2_CALL *
00121                 set_out_flow)(
00122                     axis2_module_desc_t *module_desc,
00123                     const axis2_env_t *env,
00124                     axis2_flow_t *out_flow);
00125 
00133         axis2_flow_t *(AXIS2_CALL *
00134                 get_fault_in_flow)(
00135                     const axis2_module_desc_t *module_desc,
00136                     const axis2_env_t *env);
00137 
00146         axis2_status_t (AXIS2_CALL *
00147                 set_fault_in_flow)(
00148                     axis2_module_desc_t *module_desc,
00149                     const axis2_env_t *env,
00150                     axis2_flow_t *falut_in_flow);
00151 
00159         axis2_flow_t *(AXIS2_CALL *
00160                 get_fault_out_flow)(
00161                     const axis2_module_desc_t *module_desc,
00162                     const axis2_env_t *env);
00163 
00172         axis2_status_t (AXIS2_CALL *
00173                 set_fault_out_flow)(
00174                     axis2_module_desc_t *module_desc,
00175                     const axis2_env_t *env,
00176                     axis2_flow_t *fault_out_flow);
00177 
00184         const axis2_qname_t *(AXIS2_CALL *
00185                 get_qname)(
00186                     const axis2_module_desc_t *module_desc,
00187                     const axis2_env_t *env);
00188 
00196         axis2_status_t (AXIS2_CALL *
00197                 set_qname)(
00198                     axis2_module_desc_t *module_desc,
00199                     const axis2_env_t *env,
00200                     const axis2_qname_t *qname);
00201 
00209         axis2_status_t (AXIS2_CALL *
00210                 add_op)(
00211                     axis2_module_desc_t *module_desc,
00212                     const axis2_env_t *env,
00213                     struct axis2_op *op);
00214 
00221         axis2_hash_t *(AXIS2_CALL *
00222                 get_all_ops)(
00223                     const axis2_module_desc_t *module_desc,
00224                     const axis2_env_t *env);
00225 
00233         struct axis2_conf *(AXIS2_CALL *
00234                 get_parent)(
00235                     const axis2_module_desc_t *module_desc,
00236                     const axis2_env_t *env);
00237 
00246         axis2_status_t (AXIS2_CALL *
00247                 set_parent)(
00248                     axis2_module_desc_t *module_desc,
00249                     const axis2_env_t *env,
00250                     struct axis2_conf *parent);
00251 
00259         axis2_status_t (AXIS2_CALL *
00260                 add_param)(
00261                     axis2_module_desc_t *module_desc,
00262                     const axis2_env_t *env,
00263                     axis2_param_t *param);
00264 
00272         axis2_param_t *(AXIS2_CALL *
00273                 get_param)(
00274                     const axis2_module_desc_t *module_desc,
00275                     const axis2_env_t *env,
00276                     const axis2_char_t *name);
00277 
00284         axis2_array_list_t *(AXIS2_CALL *
00285                 get_all_params)(
00286                     const axis2_module_desc_t *module_desc,
00287                     const axis2_env_t *env);
00288 
00296         axis2_bool_t (AXIS2_CALL *
00297                 is_param_locked)(
00298                     const axis2_module_desc_t *module_desc,
00299                     const axis2_env_t *env,
00300                     const axis2_char_t *param_name);
00301 
00308         struct axis2_module *(AXIS2_CALL *
00309                 get_module)(
00310                     const axis2_module_desc_t *module_desc,
00311                     const axis2_env_t *env);
00312 
00320         axis2_status_t (AXIS2_CALL *
00321                 set_module)(
00322                     axis2_module_desc_t *module_desc,
00323                     const axis2_env_t *env,
00324                     struct axis2_module *module);
00325 
00326     };
00327 
00331     struct axis2_module_desc
00332     {
00334         axis2_module_desc_ops_t *ops;
00339         axis2_flow_container_t *flow_container;
00344         axis2_param_container_t *params;
00345     };
00346 
00352     AXIS2_EXTERN axis2_module_desc_t *AXIS2_CALL
00353     axis2_module_desc_create (
00354         const axis2_env_t *env);
00355 
00362     AXIS2_EXTERN axis2_module_desc_t *AXIS2_CALL
00363     axis2_module_desc_create_with_qname(
00364         const axis2_env_t *env,
00365         const axis2_qname_t *qname);
00366 
00375     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00376     axis2_module_desc_free_void_arg(
00377         void *module_desc,
00378         const axis2_env_t *env);
00379 
00380 
00383 #define AXIS2_MODULE_DESC_FREE(module_desc, env) \
00384       ((module_desc)->ops->free(module_desc, env))
00385 
00388 #define AXIS2_MODULE_DESC_GET_IN_FLOW(module_desc, env) \
00389         ((module_desc)->ops->get_in_flow (module_desc, env))
00390 
00393 #define AXIS2_MODULE_DESC_SET_IN_FLOW(module_desc, env, in_flow) \
00394         ((module_desc)->ops->set_in_flow (module_desc, env, in_flow))
00395 
00398 #define AXIS2_MODULE_DESC_GET_OUT_FLOW(module_desc, env) \
00399       ((module_desc)->ops->get_out_flow (module_desc, env))
00400 
00403 #define AXIS2_MODULE_DESC_SET_OUT_FLOW(module_desc, env, out_flow) \
00404       ((module_desc)->ops->set_out_flow (module_desc, env, out_flow))
00405 
00408 #define AXIS2_MODULE_DESC_GET_FAULT_IN_FLOW(module_desc, env) \
00409       ((module_desc)->ops->get_fault_in_flow (module_desc, env))
00410 
00413 #define AXIS2_MODULE_DESC_SET_FAULT_IN_FLOW(module_desc, env, falut_in_flow) \
00414         ((module_desc)->ops->set_fault_in_flow(module_desc , env, falut_in_flow))
00415 
00418 #define AXIS2_MODULE_DESC_GET_FAULT_OUT_FLOW(module_desc, env) \
00419         ((module_desc)->ops->get_fault_out_flow(module_desc , env))
00420 
00423 #define AXIS2_MODULE_DESC_SET_FAULT_OUT_FLOW(module_desc, env, falut_out_flow) \
00424         ((module_desc)->ops->set_fault_out_flow(module_desc , env, falut_out_flow))
00425 
00428 #define AXIS2_MODULE_DESC_GET_QNAME(module_desc, env) \
00429         ((module_desc)->ops->get_qname(module_desc, env))
00430 
00433 #define AXIS2_MODULE_DESC_SET_QNAME(module_desc, env, qname) \
00434         ((module_desc)->ops->set_qname(module_desc, env, qname))
00435 
00438 #define AXIS2_MODULE_DESC_ADD_OP(module_desc, env, op) \
00439         ((module_desc)->ops->add_op(module_desc, env, op))
00440 
00443 #define AXIS2_MODULE_DESC_GET_ALL_OPS(module_desc, env) \
00444         ((module_desc)->ops->get_all_ops(module_desc, env))
00445 
00448 #define AXIS2_MODULE_DESC_GET_PARENT(module_desc, env) \
00449         ((module_desc)->ops->get_parent(module_desc, env))
00450 
00453 #define AXIS2_MODULE_DESC_SET_PARENT(module_desc, env, parent) \
00454         ((module_desc)->ops->set_parent(module_desc, env, parent))
00455 
00458 #define AXIS2_MODULE_DESC_ADD_PARAM(module_desc, env, param) \
00459         ((module_desc)->ops->add_param(module_desc, env, param))
00460 
00463 #define AXIS2_MODULE_DESC_GET_PARAM(module_desc, env, name) \
00464         ((module_desc)->ops->get_param(module_desc, env, name))
00465 
00468 #define AXIS2_MODULE_DESC_GET_ALL_PARAMS(module_desc, env) \
00469         ((module_desc)->ops->get_all_params(module_desc, env))
00470 
00473 #define AXIS2_MODULE_DESC_IS_PARAM_LOCKED(module_desc, env, param_name) \
00474         ((module_desc)->ops->is_param_locked(module_desc, env, param_name))
00475 
00478 #define AXIS2_MODULE_DESC_GET_MODULE(module_desc, env) \
00479         ((module_desc)->ops->get_module(module_desc, env))
00480 
00483 #define AXIS2_MODULE_DESC_SET_MODULE(module_desc, env, module) \
00484         ((module_desc)->ops->set_module(module_desc, env, module))
00485 
00488 #ifdef __cplusplus
00489 }
00490 #endif
00491 #endif /* AXIS2_MODULE_DESC_H */

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