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