axis2_module.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_H
00017 #define AXIS2_MODULE_H
00018 
00038 #include <axis2_const.h>
00039 #include <axis2_error.h>
00040 #include <axis2_defines.h>
00041 #include <axis2_env.h>
00042 #include <axis2_allocator.h>
00043 #include <axis2_string.h>
00044 #include <axis2_conf.h>
00045 #include <axis2_module_desc.h>
00046 #include <axis2_hash.h>
00047 
00048 
00049 #ifdef __cplusplus
00050 extern "C"
00051 {
00052 #endif
00053 
00055     typedef struct axis2_module_ops axis2_module_ops_t;
00057     typedef struct axis2_module axis2_module_t;
00058 
00059     struct axis2_conf;
00060 
00061     struct axis2_module_ops
00062     {
00071         axis2_status_t (AXIS2_CALL *
00072                 init) (
00073                     axis2_module_t *module,
00074                     const axis2_env_t *env,
00075                     struct axis2_conf_ctx *conf_ctx,
00076                     axis2_module_desc_t *module_desc);
00077 
00084         axis2_status_t (AXIS2_CALL *
00085                 shutdown)(
00086                     axis2_module_t *module,
00087                     const axis2_env_t *env);
00088 
00095         axis2_status_t (AXIS2_CALL *
00096                 fill_handler_create_func_map)(
00097                     axis2_module_t *module,
00098                     const axis2_env_t *env);
00099 
00100 
00101     };
00102 
00106     struct axis2_module
00107     {
00109         axis2_module_ops_t *ops;
00111         axis2_hash_t *handler_create_func_map;
00112     };
00113 
00119     AXIS2_EXTERN axis2_module_t * AXIS2_CALL
00120     axis2_module_create (
00121         const axis2_env_t *env);
00122 
00125 #define AXIS2_MODULE_INIT(module, env, conf_ctx, module_desc) \
00126       ((module)->ops->init (module, env, conf_ctx, module_desc))
00127 
00130 #define AXIS2_MODULE_SHUTDOWN(module, env) \
00131       ((module)->ops->shutdown (module, env))
00132 
00135 #define AXIS2_MODULE_FILL_HANDLER_CREATE_FUNC_MAP(module, env) \
00136       ((module)->ops->fill_handler_create_func_map (module, env))
00137 
00140 #ifdef __cplusplus
00141 }
00142 #endif
00143 #endif /* AXIS2_MODULE_H */

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