00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_RESOLVER_H
00018 #define WODEN_RESOLVER_H
00019
00027 #include <woden.h>
00028 #include <axiom_document.h>
00029 #include <axiom_node.h>
00030
00036 typedef union woden_resolver_base woden_resolver_base_t;
00037 typedef struct woden_resolver woden_resolver_t;
00038 typedef struct woden_resolver_ops woden_resolver_ops_t;
00039
00040 #define WODEN_WSDL10 10
00041 #define WODEN_WSDL20 20
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00048 struct woden_resolver_ops
00049 {
00054 axis2_status_t (AXIS2_CALL *
00055 free) (
00056 void *resolver,
00057 const axis2_env_t *env);
00058
00059 void *(AXIS2_CALL *
00060 read) (
00061 void *resolver,
00062 const axis2_env_t *env,
00063 axiom_document_t *om_doc,
00064 const axis2_char_t *doc_base_uri);
00065
00066 int (AXIS2_CALL *
00067 get_spec) (
00068 void *resolver,
00069 const axis2_env_t *env);
00070
00071
00072 };
00073
00074 struct woden_resolver
00075 {
00076 woden_resolver_ops_t *ops;
00077 };
00078
00079 AXIS2_EXTERN woden_resolver_t * AXIS2_CALL
00080 woden_resolver_create(
00081 const axis2_env_t *env);
00082
00083 #define WODEN_RESOLVER_FREE(resolver, env) \
00084 (((woden_resolver_t *) resolver)->ops->free(resolver, env))
00085
00086 #define WODEN_RESOLVER_READ(resolver, env, om_doc, doc_base_uri) \
00087 (((woden_resolver_t *) resolver)->ops->\
00088 read (resolver, env, om_doc, doc_base_uri))
00089
00090 #define WODEN_RESOLVER_GET_SPEC(resolver, env) \
00091 (((woden_resolver_t *) resolver)->ops->\
00092 get_spec(resolver, env))
00093
00095 #ifdef __cplusplus
00096 }
00097 #endif
00098
00099
00100 #endif