00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_SOAP_HEADER_BLOCK_H
00018 #define WODEN_SOAP_HEADER_BLOCK_H
00019
00028 #include <woden.h>
00029 #include <woden_soap_header_block_element.h>
00030
00036 typedef union woden_soap_header_block_base woden_soap_header_block_base_t;
00037 typedef struct woden_soap_header_block woden_soap_header_block_t;
00038 typedef struct woden_soap_header_block_ops woden_soap_header_block_ops_t;
00039
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044
00045 struct woden_soap_header_block_ops
00046 {
00051 axis2_status_t (AXIS2_CALL *
00052 free) (
00053 void *header_block,
00054 const axis2_env_t *env);
00055
00056 axis2_hash_t *(AXIS2_CALL *
00057 super_objs) (
00058 void *header_block,
00059 const axis2_env_t *env);
00060
00061 woden_obj_types_t (AXIS2_CALL *
00062 type) (
00063 void *header_block,
00064 const axis2_env_t *env);
00065
00066 struct woden_component_exts *(AXIS2_CALL *
00067 get_base_impl) (
00068 void *header_block,
00069 const axis2_env_t *env);
00070
00071
00072
00073
00074
00075
00076 void *(AXIS2_CALL *
00077 get_element_decl) (
00078 void *header_block,
00079 const axis2_env_t *env);
00080
00081 axis2_bool_t (AXIS2_CALL *
00082 must_understand) (
00083 void *header_block,
00084 const axis2_env_t *env);
00085
00086 axis2_bool_t (AXIS2_CALL *
00087 is_required) (
00088 void *header_block,
00089 const axis2_env_t *env);
00090
00091 void *(AXIS2_CALL *
00092 get_parent) (
00093 void *header_block,
00094 const axis2_env_t *env);
00095
00096 void *(AXIS2_CALL *
00097 to_element) (
00098 void *header_block,
00099 const axis2_env_t *env);
00100
00101
00102
00103
00104
00105 axis2_status_t (AXIS2_CALL *
00106 set_element_decl) (
00107 void *header_block,
00108 const axis2_env_t *env,
00109 void *element_decl);
00110
00111 axis2_status_t (AXIS2_CALL *
00112 set_types) (
00113 void *header_block,
00114 const axis2_env_t *env,
00115 void *types);
00116
00117
00118
00119 };
00120
00121 struct woden_soap_header_block
00122 {
00123 woden_soap_header_block_element_t header_block_element;
00124 woden_soap_header_block_ops_t *ops;
00125 };
00126
00127 AXIS2_EXTERN woden_soap_header_block_t * AXIS2_CALL
00128 woden_soap_header_block_create(
00129 const axis2_env_t *env);
00130
00131
00132
00133 AXIS2_EXTERN woden_soap_header_block_t * AXIS2_CALL
00134 woden_soap_header_block_to_soap_header_block_element(
00135 void *header_block,
00136 const axis2_env_t *env);
00137
00138 AXIS2_EXTERN woden_soap_header_block_t * AXIS2_CALL
00139 woden_soap_header_block_to_ext_element(
00140 void *header_block,
00141 const axis2_env_t *env);
00142
00143 AXIS2_EXTERN woden_soap_header_block_t * AXIS2_CALL
00144 woden_soap_header_block_to_attr_extensible(
00145 void *header_block,
00146 const axis2_env_t *env);
00147
00148 AXIS2_EXTERN woden_soap_header_block_t * AXIS2_CALL
00149 woden_soap_header_block_to_element_extensible(
00150 void *header_block,
00151 const axis2_env_t *env);
00152
00153 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00154 woden_soap_header_block_resolve_methods(
00155 woden_soap_header_block_t *soap_header_block,
00156 const axis2_env_t *env,
00157 woden_soap_header_block_t *soap_header_block_impl,
00158 axis2_hash_t *methods);
00159
00160
00161 #define WODEN_SOAP_HEADER_BLOCK_FREE(soap_header_block, env) \
00162 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00163 free(soap_header_block, env))
00164
00165 #define WODEN_SOAP_HEADER_BLOCK_SUPER_OBJS(soap_header_block, env) \
00166 (((woden_soap_header_block_t *) soap_header_block)->\
00167 ops->super_objs(soap_header_block, env))
00168
00169 #define WODEN_SOAP_HEADER_BLOCK_TYPE(soap_header_block, env) \
00170 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00171 type(soap_header_block, env))
00172
00173 #define WODEN_SOAP_HEADER_BLOCK_GET_BASE_IMPL(soap_header_block, env) \
00174 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00175 get_base_impl(soap_header_block, env))
00176
00177 #define WODEN_SOAP_HEADER_BLOCK_GET_ELEMENT_DECL(soap_header_block, env) \
00178 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00179 get_element_decl (soap_header_block, env))
00180
00181 #define WODEN_SOAP_HEADER_BLOCK_MUST_UNDERSTAND(soap_header_block, env) \
00182 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00183 must_understand (soap_header_block, env))
00184
00185 #define WODEN_SOAP_HEADER_BLOCK_IS_REQUIRED(soap_header_block, env) \
00186 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00187 is_required (soap_header_block, env))
00188
00189 #define WODEN_SOAP_HEADER_BLOCK_GET_PARENT(soap_header_block, env) \
00190 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00191 get_parent (soap_header_block, env))
00192
00193 #define WODEN_SOAP_HEADER_BLOCK_TO_ELEMENT(soap_header_block, env) \
00194 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00195 to_element (soap_header_block, env))
00196
00197 #define WODEN_SOAP_HEADER_BLOCK_SET_ELEMENT_DECL(soap_header_block, env, element_decl) \
00198 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00199 set_element_decl (soap_header_block, env, element_decl))
00200
00201 #define WODEN_SOAP_HEADER_BLOCK_SET_TYPES(soap_header_block, env, types) \
00202 (((woden_soap_header_block_t *) soap_header_block)->ops->\
00203 set_types (soap_header_block, env, types))
00204
00206 #ifdef __cplusplus
00207 }
00208 #endif
00209 #endif