00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_WSDL10_PART_H
00019 #define WODEN_WSDL10_PART_H
00020
00027 #include <woden.h>
00028 #include <woden_wsdl10_part_element.h>
00029 #include <woden_nested_configurable.h>
00030 #include <axis2_qname.h>
00031
00037 typedef union woden_wsdl10_part_base woden_wsdl10_part_base_t;
00038 typedef struct woden_wsdl10_part woden_wsdl10_part_t;
00039 typedef struct woden_wsdl10_part_ops woden_wsdl10_part_ops_t;
00040
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 struct woden_wsdl10_part_ops
00048 {
00053 axis2_status_t (AXIS2_CALL *
00054 free) (void *part,
00055 const axis2_env_t *env);
00056
00057 axis2_hash_t *(AXIS2_CALL *
00058 super_objs) (void *part,
00059 const axis2_env_t *env);
00060
00061 woden_obj_types_t (AXIS2_CALL *
00062 type) (void *part,
00063 const axis2_env_t *env);
00067 struct woden_nested_configurable *(AXIS2_CALL *
00068 get_base_impl) (
00069 void *part,
00070 const axis2_env_t *env);
00071
00072 axis2_qname_t *(AXIS2_CALL *
00073 get_qname) (
00074 void *part,
00075 const axis2_env_t *env);
00076
00077 void *(AXIS2_CALL *
00078 get_element_declaration) (
00079 void *part,
00080 const axis2_env_t *env);
00081
00082 void *(AXIS2_CALL *
00083 to_element) (
00084 void *part,
00085 const axis2_env_t *env);
00086
00087
00088
00089
00090 axis2_status_t (AXIS2_CALL *
00091 set_element_declaration) (
00092 void *part,
00093 const axis2_env_t *env,
00094 void *element);
00095
00096 axis2_status_t (AXIS2_CALL *
00097 set_types) (
00098 void *part,
00099 const axis2_env_t *env,
00100 void *types);
00101 };
00102
00103 union woden_wsdl10_part_base
00104 {
00105 woden_nested_configurable_t nested_configurable;
00106 woden_wsdl10_part_element_t part_element;
00107 };
00108
00109 struct woden_wsdl10_part
00110 {
00111 woden_wsdl10_part_base_t base;
00112 woden_wsdl10_part_ops_t *ops;
00113 };
00114
00115 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00116 woden_wsdl10_part_create(
00117 const axis2_env_t *env);
00118
00119
00120
00121 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00122 woden_wsdl10_part_to_part_element(
00123 void *part,
00124 const axis2_env_t *env);
00125
00126 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00127 woden_wsdl10_part_to_nested_configurable(
00128 void *part,
00129 const axis2_env_t *env);
00130
00131 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00132 woden_wsdl10_part_to_configurable(
00133 void *part,
00134 const axis2_env_t *env);
00135
00136 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00137 woden_wsdl10_part_to_nested_element(
00138 void *part,
00139 const axis2_env_t *env);
00140
00141 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00142 woden_wsdl10_part_to_configurable_element(
00143 void *part,
00144 const axis2_env_t *env);
00145
00146 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00147 woden_wsdl10_part_to_documentable_element(
00148 void *part,
00149 const axis2_env_t *env);
00150
00151 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00152 woden_wsdl10_part_to_documentable(
00153 void *part,
00154 const axis2_env_t *env);
00155
00156 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00157 woden_wsdl10_part_to_attr_extensible(
00158 void *part,
00159 const axis2_env_t *env);
00160
00161 AXIS2_EXTERN woden_wsdl10_part_t * AXIS2_CALL
00162 woden_wsdl10_part_to_element_extensible(
00163 void *part,
00164 const axis2_env_t *env);
00165
00166
00167 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00168 woden_wsdl10_part_resolve_methods(
00169 woden_wsdl10_part_t *part,
00170 const axis2_env_t *env,
00171 woden_wsdl10_part_t *part_impl,
00172 axis2_hash_t *methods);
00173
00174
00175 #define WODEN_WSDL10_PART_FREE(part, env) \
00176 (((woden_wsdl10_part_t *) part)->ops->\
00177 free(part, env))
00178
00179 #define WODEN_WSDL10_PART_SUPER_OBJS(part, env) \
00180 (((woden_wsdl10_part_t *) part)->ops->\
00181 super_objs(part, env))
00182
00183 #define WODEN_WSDL10_PART_TYPE(part, env) \
00184 (((woden_wsdl10_part_t *) part)->ops->\
00185 type(part, env))
00186
00187 #define WODEN_WSDL10_PART_GET_BASE_IMPL(part, env) \
00188 (((woden_wsdl10_part_t *) part)->ops->\
00189 get_base_impl(part, env))
00190
00191 #define WODEN_WSDL10_PART_GET_QNAME(part, env) \
00192 (((woden_wsdl10_part_t *) part)->ops->\
00193 get_qname(part, env))
00194
00195 #define WODEN_WSDL10_PART_GET_ELEMENT_DECLARATION(part, env) \
00196 (((woden_wsdl10_part_t *) part)->ops->\
00197 get_element_declaration(part, env))
00198
00199 #define WODEN_WSDL10_PART_TO_ELEMENT(part, env) \
00200 (((woden_wsdl10_part_t *) part)->ops->\
00201 to_element(part, env))
00202
00203 #define WODEN_WSDL10_PART_SET_ELEMENT_DECLARATION(part, env, element) \
00204 (((woden_wsdl10_part_t *) part)->ops->\
00205 set_element_declaration(part, env, element))
00206
00207 #define WODEN_WSDL10_PART_SET_TYPES(part, env, types) \
00208 (((woden_wsdl10_part_t *) part)->ops->\
00209 set_types(part, env, types))
00210
00212 #ifdef __cplusplus
00213 }
00214 #endif
00215 #endif