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

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 
00036 #include <axis2_const.h>
00037 #include <axis2_error.h>
00038 #include <axis2_defines.h>
00039 #include <axis2_env.h>
00040 #include <axis2_allocator.h>
00041 #include <axis2_string.h>
00042 #include <axis2_conf.h>
00043 #include <axis2_hash.h>
00044 
00045 
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050 
00056 struct axis2_conf;
00057 typedef struct axis2_module_ops axis2_module_ops_t;   
00058 typedef struct axis2_module axis2_module_t;
00059     
00060 AXIS2_DECLARE_DATA struct axis2_module_ops
00061 {
00062     /* initialize the module */
00063     axis2_status_t (AXIS2_CALL *
00064     init) (struct axis2_module *module, 
00065             const axis2_env_t *env);
00066 
00067     /* TODO figure out how to get the engage() concept done */
00068     /* public void engage(ExecutionChain exeChain) throws AxisFault; */
00069     
00070     /* shutdown the module */
00071     axis2_status_t (AXIS2_CALL * 
00072     shutdown)(struct axis2_module *module,
00073                 const axis2_env_t *env);
00074     
00079     axis2_status_t (AXIS2_CALL * 
00080     fill_handler_create_func_map)(struct axis2_module *module,
00081                                     const axis2_env_t *env);
00082 
00083 
00084 } ;
00085 
00086 AXIS2_DECLARE_DATA struct axis2_module 
00087 {
00088     axis2_module_ops_t *ops;
00089     axis2_hash_t *handler_create_func_map;
00090 };
00091 
00096 AXIS2_EXTERN axis2_module_t * AXIS2_CALL 
00097 axis2_module_create (const axis2_env_t *env);
00098 
00099 /*************************** Function macros **********************************/
00100 
00101 #define AXIS2_MODULE_INIT(module, env) \
00102       ((module)->ops->init (module, env)) 
00103 
00104 #define AXIS2_MODULE_SHUTDOWN(module, env) \
00105       ((module)->ops->shutdown (module, env)) 
00106 
00107 #define AXIS2_MODULE_FILL_HANDLER_CREATE_FUNC_MAP(module, env) \
00108       ((module)->ops->fill_handler_create_func_map (module, env))
00109 
00112 #ifdef __cplusplus
00113 }
00114 #endif
00115 #endif /* AXIS2_MODULE_H */

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