00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef W2C_ENGINE_H
00019 #define W2C_ENGINE_H
00020
00026 #include <axis2_utils.h>
00027 #include <w2c_cmdline_option_parser.h>
00028
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033
00040 typedef struct w2c_engine w2c_engine_t;
00041 typedef struct w2c_engine_ops w2c_engine_ops_t;
00042
00043 AXIS2_DECLARE_DATA struct w2c_engine_ops
00044 {
00052 axis2_status_t (AXIS2_CALL *
00053 free)(w2c_engine_t *engine,
00054 const axis2_env_t *env);
00055
00063 axis2_status_t (AXIS2_CALL *
00064 generate)(w2c_engine_t *engine,
00065 const axis2_env_t *env);
00066
00067
00068 };
00069
00070 AXIS2_DECLARE_DATA struct w2c_engine
00071 {
00072 struct w2c_engine_ops *ops;
00073 };
00074
00081 AXIS2_EXTERN w2c_engine_t* AXIS2_CALL
00082 w2c_engine_create_with_parser( const axis2_env_t *env,
00083 w2c_cmdline_option_parser_t *parser );
00084
00085
00086
00087 #define W2C_ENGINE_FREE(engine, env) \
00088 ((engine)->ops->free (engine, env))
00089
00090 #define W2C_ENGINE_GENERATE(engine, env) \
00091 ((engine)->ops->generate(engine, env ))
00092
00095 #ifdef __cplusplus
00096 }
00097 #endif
00098
00099 #endif