00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_WSDL10_ENDPOINT_H
00018 #define WODEN_WSDL10_ENDPOINT_H
00019
00027 #include <woden.h>
00028 #include <woden_wsdl10_endpoint_element.h>
00029 #include <woden_nested_configurable.h>
00030 #include <woden_nested_component.h>
00031 #include <woden_configurable_component.h>
00032 #include <woden_nc_name.h>
00033
00039 typedef union woden_wsdl10_endpoint_base woden_wsdl10_endpoint_base_t;
00040 typedef struct woden_wsdl10_endpoint woden_wsdl10_endpoint_t;
00041 typedef struct woden_wsdl10_endpoint_ops woden_wsdl10_endpoint_ops_t;
00042 struct woden_documentation_element;
00043 struct woden_wsdl_component;
00044 struct woden_documentable;
00045
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050
00051 struct woden_wsdl10_endpoint_ops
00052 {
00057 axis2_status_t (AXIS2_CALL *
00058 free) (void *endpoint,
00059 const axis2_env_t *env);
00060
00061 axis2_hash_t *(AXIS2_CALL *
00062 super_objs) (void *endpoint,
00063 const axis2_env_t *env);
00064
00065 woden_obj_types_t (AXIS2_CALL *
00066 type) (void *endpoint,
00067 const axis2_env_t *env);
00071 struct woden_nested_configurable *(AXIS2_CALL *
00072 get_base_impl) (
00073 void *endpoint,
00074 const axis2_env_t *env);
00075
00076
00077
00078
00079
00080 woden_nc_name_t *(AXIS2_CALL *
00081 get_name) (
00082 void *endpoint,
00083 const axis2_env_t *env);
00084
00085 void *(AXIS2_CALL *
00086 get_binding) (
00087 void *endpoint,
00088 const axis2_env_t *env);
00089
00090 axis2_uri_t *(AXIS2_CALL *
00091 get_address) (
00092 void *endpoint,
00093 const axis2_env_t *env);
00094
00095 axis2_status_t (AXIS2_CALL *
00096 set_binding_element) (
00097 void *endpoint,
00098 const axis2_env_t *env,
00099 void *binding);
00100
00101 };
00102
00103 union woden_wsdl10_endpoint_base
00104 {
00105 woden_nested_configurable_t nested_configurable;
00106 woden_wsdl10_endpoint_element_t endpoint_element;
00107 woden_configurable_component_t configurable_component;
00108 woden_nested_component_t nested_component;
00109 };
00110
00111 struct woden_wsdl10_endpoint
00112 {
00113 woden_wsdl10_endpoint_base_t base;
00114 woden_wsdl10_endpoint_ops_t *ops;
00115 };
00116
00117 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00118 woden_wsdl10_endpoint_create(
00119 const axis2_env_t *env);
00120
00121
00122
00123 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00124 woden_wsdl10_endpoint_to_endpoint_element(
00125 void *endpoint,
00126 const axis2_env_t *env);
00127
00128 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00129 woden_wsdl10_endpoint_to_nested_element(
00130 void *endpoint,
00131 const axis2_env_t *env);
00132
00133 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00134 woden_wsdl10_endpoint_to_documentable_element(
00135 void *endpoint,
00136 const axis2_env_t *env);
00137
00138 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00139 woden_wsdl10_endpoint_to_nested_configurable(
00140 void *endpoint,
00141 const axis2_env_t *env);
00142
00143 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00144 woden_wsdl10_endpoint_to_configurable(
00145 void *endpoint,
00146 const axis2_env_t *env);
00147
00148 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00149 woden_wsdl10_endpoint_to_nested_component(
00150 void *endpoint,
00151 const axis2_env_t *env);
00152
00153 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00154 woden_wsdl10_endpoint_to_configurable_component(
00155 void *endpoint,
00156 const axis2_env_t *env);
00157
00158 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00159 woden_wsdl10_endpoint_to_wsdl_component(
00160 void *endpoint,
00161 const axis2_env_t *env);
00162
00163 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00164 woden_wsdl10_endpoint_to_configurable_element(
00165 void *endpoint,
00166 const axis2_env_t *env);
00167
00168 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00169 woden_wsdl10_endpoint_to_documentable(
00170 void *endpoint,
00171 const axis2_env_t *env);
00172
00173 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00174 woden_wsdl10_endpoint_to_attr_extensible(
00175 void *endpoint,
00176 const axis2_env_t *env);
00177
00178 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00179 woden_wsdl10_endpoint_to_element_extensible(
00180 void *endpoint,
00181 const axis2_env_t *env);
00182
00183
00184 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00185 woden_wsdl10_endpoint_resolve_methods(
00186 woden_wsdl10_endpoint_t *endpoint,
00187 const axis2_env_t *env,
00188 woden_wsdl10_endpoint_t *endpoint_impl,
00189 axis2_hash_t *methods);
00190
00191
00192 #define WODEN_WSDL10_ENDPOINT_FREE(endpoint, env) \
00193 (((woden_wsdl10_endpoint_t *) endpoint)->ops->free(endpoint, env))
00194
00195 #define WODEN_WSDL10_ENDPOINT_SUPER_OBJS(endpoint, env) \
00196 (((woden_wsdl10_endpoint_t *) endpoint)->ops->super_objs(endpoint, env))
00197
00198 #define WODEN_WSDL10_ENDPOINT_TYPE(endpoint, env) \
00199 (((woden_wsdl10_endpoint_t *) endpoint)->ops->type(endpoint, env))
00200
00201 #define WODEN_WSDL10_ENDPOINT_GET_BASE_IMPL(endpoint, env) \
00202 (((woden_wsdl10_endpoint_t *) endpoint)->ops->get_base_impl(endpoint, env))
00203
00204 #define WODEN_WSDL10_ENDPOINT_GET_NAME(endpoint, env) \
00205 (((woden_wsdl10_endpoint_t *) endpoint)->ops->\
00206 get_name(endpoint, env))
00207
00208 #define WODEN_WSDL10_ENDPOINT_GET_BINDING(endpoint, env) \
00209 (((woden_wsdl10_endpoint_t *) endpoint)->ops->\
00210 get_binding(endpoint, env))
00211
00212 #define WODEN_WSDL10_ENDPOINT_GET_ADDRESS(endpoint, env) \
00213 (((woden_wsdl10_endpoint_t *) endpoint)->ops->\
00214 get_address(endpoint, env))
00215
00216 #define WODEN_WSDL10_ENDPOINT_SET_BINDING_ELEMENT(endpoint, env, binding) \
00217 (((woden_wsdl10_endpoint_t *) endpoint)->ops->\
00218 set_binding_element(endpoint, env, binding))
00219
00221 #ifdef __cplusplus
00222 }
00223 #endif
00224 #endif