00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_WSDL_REF_H
00018 #define WODEN_WSDL_REF_H
00019
00030 #include <woden.h>
00031 #include <woden_wsdl_element.h>
00032 #include <woden_wsdl_component.h>
00033
00039 typedef union woden_wsdl_ref_base woden_wsdl_ref_base_t;
00040 typedef struct woden_wsdl_ref woden_wsdl_ref_t;
00041 typedef struct woden_wsdl_ref_ops woden_wsdl_ref_ops_t;
00042 struct woden_component_exts;
00043
00044 #ifdef __cplusplus
00045 extern "C"
00046 {
00047 #endif
00048
00049 struct woden_wsdl_ref_ops
00050 {
00055 axis2_status_t (AXIS2_CALL *
00056 free) (
00057 void *wsdl_ref,
00058 const axis2_env_t *env);
00059
00060 axis2_hash_t *(AXIS2_CALL *
00061 super_objs) (
00062 void *wsdl_ref,
00063 const axis2_env_t *env);
00064
00065 woden_obj_types_t (AXIS2_CALL *
00066 type) (
00067 void *wsdl_ref,
00068 const axis2_env_t *env);
00069
00073 woden_wsdl_element_t *(AXIS2_CALL *
00074 get_base_impl) (
00075 void *wsdl_ref,
00076 const axis2_env_t *env);
00077
00078 axis2_uri_t *(AXIS2_CALL *
00079 get_location) (
00080 void *wsdl_ref,
00081 const axis2_env_t *env);
00082
00083 axis2_status_t (AXIS2_CALL *
00084 set_location) (
00085 void *wsdl_ref,
00086 const axis2_env_t *env,
00087 axis2_uri_t *loc_uri);
00088
00089 void *(AXIS2_CALL *
00090 get_desc_element) (
00091 void *wsdl_ref,
00092 const axis2_env_t *env);
00093
00094 axis2_status_t (AXIS2_CALL *
00095 set_desc_element) (
00096 void *wsdl_ref,
00097 const axis2_env_t *env,
00098 void *desc);
00099
00100 axis2_status_t (AXIS2_CALL *
00101 add_documentation_element) (
00102 void *wsdl_ref,
00103 const axis2_env_t *env,
00104 void *doc_el);
00105
00106 axis2_array_list_t *(AXIS2_CALL *
00107 get_documentation_elements) (
00108 void *wsdl_ref,
00109 const axis2_env_t *env);
00110
00111
00112 };
00113
00114 struct woden_wsdl_ref
00115 {
00116 woden_wsdl_element_t wsdl_element;
00117 woden_wsdl_ref_ops_t *ops;
00118 };
00119
00120 AXIS2_EXTERN woden_wsdl_ref_t * AXIS2_CALL
00121 woden_wsdl_ref_create(
00122 const axis2_env_t *env);
00123
00124
00125 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00126 woden_wsdl_ref_resolve_methods(
00127 woden_wsdl_ref_t *wsdl_ref,
00128 const axis2_env_t *env,
00129 woden_wsdl_ref_t *wsdl_ref_impl,
00130 axis2_hash_t *methods);
00131
00132
00133 #define WODEN_WSDL_REF_FREE(wsdl_ref, env) \
00134 (((woden_wsdl_ref_t *) wsdl_ref)->ops->free(wsdl_ref, env))
00135
00136 #define WODEN_WSDL_REF_SUPER_OBJS(wsdl_ref, env) \
00137 (((woden_wsdl_ref_t *) wsdl_ref)->ops->super_objs(wsdl_ref, env))
00138
00139 #define WODEN_WSDL_REF_TYPE(wsdl_ref, env) \
00140 (((woden_wsdl_ref_t *) wsdl_ref)->ops->type(wsdl_ref, env))
00141
00142 #define WODEN_WSDL_REF_GET_BASE_IMPL(wsdl_ref, env) \
00143 (((woden_wsdl_ref_t *) wsdl_ref)->ops->get_base_impl(wsdl_ref, env))
00144
00145 #define WODEN_WSDL_REF_GET_LOCATION(wsdl_ref, env) \
00146 (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00147 get_location (wsdl_ref, env))
00148
00149 #define WODEN_WSDL_REF_SET_LOCATION(wsdl_ref, env, loc_uri) \
00150 (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00151 set_location(wsdl_ref, env, loc_uri))
00152
00153 #define WODEN_WSDL_REF_GET_DESC_ELEMENT(wsdl_ref, env) \
00154 (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00155 get_desc_element (wsdl_ref, env))
00156
00157 #define WODEN_WSDL_REF_SET_DESC_ELEMENT(wsdl_ref, env, desc) \
00158 (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00159 set_desc_element(wsdl_ref, env, desc))
00160
00161 #define WODEN_WSDL_REF_ADD_DOCUMENTATION_ELEMENT(wsdl_ref, env, doc_el) \
00162 (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00163 add_documentation_element (wsdl_ref, env, doc_el))
00164
00165 #define WODEN_WSDL_REF_GET_DOCUMENTATION_ELEMENTS(wsdl_ref, env) \
00166 (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00167 get_documentation_elements(wsdl_ref, env))
00168
00170 #ifdef __cplusplus
00171 }
00172 #endif
00173 #endif