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