00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_READER_H
00019 #define WODEN_READER_H
00020
00028 #include <woden.h>
00029 #include <woden_ext_registry.h>
00030 #include <axiom_document.h>
00031
00037 typedef union woden_reader_base woden_reader_base_t;
00038 typedef struct woden_reader woden_reader_t;
00039 typedef struct woden_reader_ops woden_reader_ops_t;
00040
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045
00046 struct woden_reader_ops
00047 {
00052 axis2_status_t (AXIS2_CALL *
00053 free) (
00054 void *reader,
00055 const axis2_env_t *env);
00056
00057 void *(AXIS2_CALL *
00058 read_wsdl) (
00059 void *reader,
00060 const axis2_env_t *env,
00061 axiom_node_t *root_node,
00062 const axis2_char_t *uri);
00063
00064 axis2_status_t (AXIS2_CALL *
00065 set_ext_registry) (
00066 void *reader,
00067 const axis2_env_t *env,
00068 woden_ext_registry_t *ext_reg);
00069
00070 woden_ext_registry_t *(AXIS2_CALL *
00071 get_ext_registry) (
00072 void *reader,
00073 const axis2_env_t *env);
00074
00075
00076 };
00077
00078 struct woden_reader
00079 {
00080 woden_reader_ops_t *ops;
00081 };
00082
00083 AXIS2_EXTERN woden_reader_t * AXIS2_CALL
00084 woden_reader_create(
00085 const axis2_env_t *env);
00086
00087 #define WODEN_READER_FREE(reader, env) \
00088 (((woden_reader_t *) reader)->ops->free(reader, env))
00089
00090 #define WODEN_READER_READ_WSDL(reader, env, root_node, uri) \
00091 (((woden_reader_t *) reader)->ops->\
00092 read_wsdl (reader, env, root_node, uri))
00093
00094 #define WODEN_READER_SET_EXT_REGISTRY(reader, env, ext_reg) \
00095 (((woden_reader_t *) reader)->ops->\
00096 set_ext_registry (reader, env, ext_reg))
00097
00098 #define WODEN_READER_GET_EXT_REGISTRY(reader, env) \
00099 (((woden_reader_t *) reader)->ops->\
00100 get_ext_registry(reader, env))
00101
00103 #ifdef __cplusplus
00104 }
00105 #endif
00106 #endif