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