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