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