00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef W2C_EMITTER_H
00019 #define W2C_EMITTER_H
00020
00026 #include <axis2_utils.h>
00027 #include <w2c_engine_configuration.h>
00028 #include <w2c_config_property_loader.h>
00029
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034
00041 typedef struct w2c_emitter w2c_emitter_t;
00042 typedef struct w2c_emitter_ops w2c_emitter_ops_t;
00043
00044 AXIS2_DECLARE_DATA struct w2c_emitter_ops
00045 {
00053 axis2_status_t (AXIS2_CALL *
00054 free)(w2c_emitter_t *emitter,
00055 const axis2_env_t *env);
00056
00066 axis2_status_t (AXIS2_CALL *
00067 set_config)(w2c_emitter_t *emitter,
00068 const axis2_env_t *env,
00069 w2c_engine_configuration_t *config,
00070 w2c_config_property_loader_t *loader );
00071
00077 axis2_status_t (AXIS2_CALL *
00078 emit_skel)(w2c_emitter_t *emitter,
00079 const axis2_env_t *env);
00080
00086 axis2_status_t (AXIS2_CALL *
00087 emit_stub)(w2c_emitter_t *emitter,
00088 const axis2_env_t *env);
00089
00090 };
00091
00092 AXIS2_DECLARE_DATA struct w2c_emitter
00093 {
00094 struct w2c_emitter_ops *ops;
00095 };
00096
00099
00100
00101 #define W2C_EMITTER_FREE(emitter, env) \
00102 ((emitter)->ops->free (emitter, env))
00103
00104 #define W2C_EMITTER_SET_CONFIG(emitter, env, config, loader) \
00105 ((emitter)->ops->set_config(emitter, env, config, loader))
00106
00107 #define W2C_EMITTER_EMIT_SKEL(emitter, env) \
00108 ((emitter)->ops->emit_skel(emitter, env ))
00109
00110 #define W2C_EMITTER_EMIT_STUB(emitter, env) \
00111 ((emitter)->ops->emit_stub(emitter, env ))
00112
00115 #ifdef __cplusplus
00116 }
00117 #endif
00118
00119 #endif