axis2_module.h

Go to the documentation of this file.
00001 
00002 /*
00003 * Licensed to the Apache Software Foundation (ASF) under one or more
00004 * contributor license agreements.  See the NOTICE file distributed with
00005 * this work for additional information regarding copyright ownership.
00006 * The ASF licenses this file to You under the Apache License, Version 2.0
00007 * (the "License"); you may not use this file except in compliance with
00008 * the License.  You may obtain a copy of the License at
00009 *
00010 *      http://www.apache.org/licenses/LICENSE-2.0
00011 *
00012 * Unless required by applicable law or agreed to in writing, software
00013 * distributed under the License is distributed on an "AS IS" BASIS,
00014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015 * See the License for the specific language governing permissions and
00016 * limitations under the License.
00017 */
00018 #ifndef AXIS2_MODULE_H
00019 #define AXIS2_MODULE_H
00020 
00040 #include <axis2_const.h>
00041 #include <axutil_error.h>
00042 #include <axis2_defines.h>
00043 #include <axutil_env.h>
00044 #include <axutil_allocator.h>
00045 #include <axutil_string.h>
00046 #include <axis2_conf.h>
00047 #include <axis2_module_desc.h>
00048 #include <axutil_hash.h>
00049 
00050 #ifdef __cplusplus
00051 extern "C"
00052 {
00053 #endif
00054 
00056     typedef struct axis2_module_ops axis2_module_ops_t;
00057 
00059     typedef struct axis2_module axis2_module_t;
00060 
00061     struct axis2_conf;
00062 
00074     struct axis2_module_ops
00075     {
00076 
00085         axis2_status_t(
00086             AXIS2_CALL
00087             * init)(
00088                 axis2_module_t * module,
00089                 const axutil_env_t * env,
00090                 struct axis2_conf_ctx * conf_ctx,
00091                 axis2_module_desc_t * module_desc);
00092 
00099         axis2_status_t(
00100             AXIS2_CALL
00101             * shutdown)(
00102                 axis2_module_t * module,
00103                 const axutil_env_t * env);
00104 
00111         axis2_status_t(
00112             AXIS2_CALL
00113             * fill_handler_create_func_map)(
00114                 axis2_module_t * module,
00115                 const axutil_env_t * env);
00116 
00117     };
00118 
00122     struct axis2_module
00123     {
00124 
00126         const axis2_module_ops_t *ops;
00127 
00129         axutil_hash_t *handler_create_func_map;
00130     };
00131 
00137     AXIS2_EXTERN axis2_module_t *AXIS2_CALL
00138     axis2_module_create(
00139         const axutil_env_t * env);
00140 
00143 #define axis2_module_init(module, env, conf_ctx, module_desc) \
00144       ((module)->ops->init (module, env, conf_ctx, module_desc))
00145 
00148 #define axis2_module_shutdown(module, env) \
00149       ((module)->ops->shutdown (module, env))
00150 
00153 #define axis2_module_fill_handler_create_func_map(module, env) \
00154       ((module)->ops->fill_handler_create_func_map (module, env))
00155 
00158 #ifdef __cplusplus
00159 }
00160 #endif
00161 #endif                          /* AXIS2_MODULE_H */

Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by  doxygen 1.5.3