00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_WSDL10_SVC_H
00018 #define WODEN_WSDL10_SVC_H
00019
00028 #include <woden.h>
00029 #include <woden_wsdl10_svc_element.h>
00030 #include <woden_wsdl_obj.h>
00031 #include <woden_configurable.h>
00032 #include <woden_configurable_component.h>
00033 #include <woden_nc_name.h>
00034
00040 typedef union woden_wsdl10_svc_base woden_wsdl10_svc_base_t;
00041 typedef struct woden_wsdl10_svc woden_wsdl10_svc_t;
00042 typedef struct woden_wsdl10_svc_ops woden_wsdl10_svc_ops_t;
00043 struct woden_documentation_element;
00044 struct woden_wsdl_component;
00045 struct woden_documentable;
00046
00047 #ifdef __cplusplus
00048 extern "C"
00049 {
00050 #endif
00051
00052 struct woden_wsdl10_svc_ops
00053 {
00058 axis2_status_t (AXIS2_CALL *
00059 free) (void *svc,
00060 const axis2_env_t *env);
00061
00062 axis2_hash_t *(AXIS2_CALL *
00063 super_objs) (void *svc,
00064 const axis2_env_t *env);
00065
00066 woden_obj_types_t (AXIS2_CALL *
00067 type) (void *svc,
00068 const axis2_env_t *env);
00072 struct woden_configurable *(AXIS2_CALL *
00073 get_base_impl) (
00074 void *svc,
00075 const axis2_env_t *env);
00076
00077
00078
00079
00080 axis2_qname_t *(AXIS2_CALL *
00081 get_qname) (
00082 void *svc,
00083 const axis2_env_t *env);
00084
00085 void *(AXIS2_CALL *
00086 get_interface) (
00087 void *svc,
00088 const axis2_env_t *env);
00089
00090 axis2_array_list_t *(AXIS2_CALL *
00091 get_endpoints) (
00092 void *svc,
00093 const axis2_env_t *env);
00094
00095
00096
00097
00098 axis2_status_t (AXIS2_CALL *
00099 set_interface_element) (
00100 void *svc,
00101 const axis2_env_t *env,
00102 void *winterface);
00103
00104
00105 };
00106
00107 union woden_wsdl10_svc_base
00108 {
00109 woden_configurable_t configurable;
00110 woden_wsdl10_svc_element_t svc_element;
00111 woden_configurable_component_t configurable_component;
00112 };
00113
00114 struct woden_wsdl10_svc
00115 {
00116 woden_wsdl10_svc_base_t base;
00117 woden_wsdl10_svc_ops_t *ops;
00118 };
00119
00120 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00121 woden_wsdl10_svc_create(
00122 const axis2_env_t *env);
00123
00124
00125
00126 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00127 woden_wsdl10_svc_to_svc_element(
00128 void *svc,
00129 const axis2_env_t *env);
00130
00131 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00132 woden_wsdl10_svc_to_documentable_element(
00133 void *svc,
00134 const axis2_env_t *env);
00135
00136 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00137 woden_wsdl10_svc_to_configurable(
00138 void *svc,
00139 const axis2_env_t *env);
00140
00141 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00142 woden_wsdl10_svc_to_configurable_component(
00143 void *svc,
00144 const axis2_env_t *env);
00145
00146 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00147 woden_wsdl10_svc_to_wsdl_component(
00148 void *svc,
00149 const axis2_env_t *env);
00150
00151 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00152 woden_wsdl10_svc_to_configurable_element(
00153 void *svc,
00154 const axis2_env_t *env);
00155
00156 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00157 woden_wsdl10_svc_to_documentable(
00158 void *svc,
00159 const axis2_env_t *env);
00160
00161 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00162 woden_wsdl10_svc_to_attr_extensible(
00163 void *svc,
00164 const axis2_env_t *env);
00165
00166 AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
00167 woden_wsdl10_svc_to_element_extensible(
00168 void *svc,
00169 const axis2_env_t *env);
00170
00171
00172 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00173 woden_wsdl10_svc_resolve_methods(
00174 woden_wsdl10_svc_t *svc,
00175 const axis2_env_t *env,
00176 woden_wsdl10_svc_t *svc_impl,
00177 axis2_hash_t *methods);
00178
00179
00180 #define WODEN_WSDL10_SVC_FREE(svc, env) \
00181 (((woden_wsdl10_svc_t *) svc)->ops->free(svc, env))
00182
00183 #define WODEN_WSDL10_SVC_SUPER_OBJS(svc, env) \
00184 (((woden_wsdl10_svc_t *) svc)->ops->super_objs(svc, env))
00185
00186 #define WODEN_WSDL10_SVC_TYPE(svc, env) \
00187 (((woden_wsdl10_svc_t *) svc)->ops->type(svc, env))
00188
00189 #define WODEN_WSDL10_SVC_GET_BASE_IMPL(svc, env) \
00190 (((woden_wsdl10_svc_t *) svc)->ops->get_base_impl(svc, env))
00191
00192 #define WODEN_WSDL10_SVC_GET_QNAME(svc, env) \
00193 (((woden_wsdl10_svc_t *) svc)->ops->\
00194 get_qname(svc, env))
00195
00196 #define WODEN_WSDL10_SVC_GET_INTERFACE(svc, env) \
00197 (((woden_wsdl10_svc_t *) svc)->ops->\
00198 get_interface(svc, env))
00199
00200 #define WODEN_WSDL10_SVC_GET_ENDPOINTS(svc, env) \
00201 (((woden_wsdl10_svc_t *) svc)->ops->\
00202 get_endpoints(svc, env))
00203
00204 #define WODEN_WSDL10_SVC_SET_INTERFACE_ELEMENT(svc, env, interface) \
00205 (((woden_wsdl10_svc_t *) svc)->ops->\
00206 set_interface_element(svc, env, interface))
00207
00209 #ifdef __cplusplus
00210 }
00211 #endif
00212 #endif