00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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
00063 axis2_status_t (AXIS2_CALL *
00064 init) (struct axis2_module *module,
00065 const axis2_env_t *env);
00066
00067
00068
00069
00070
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
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