00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_SOAP_HEADER_BLOCK_DESERIALIZER_H
00018 #define WODEN_SOAP_HEADER_BLOCK_DESERIALIZER_H
00019
00028 #include <woden.h>
00029 #include <woden_ext_deserializer.h>
00030 #include <woden_ext_registry.h>
00031 #include <axiom_node.h>
00032 #include <axis2_qname.h>
00033
00039 typedef struct woden_soap_header_block_deserializer
00040 woden_soap_header_block_deserializer_t;
00041 typedef struct woden_soap_header_block_deserializer_ops
00042 woden_soap_header_block_deserializer_ops_t;
00043
00044
00045 #ifdef __cplusplus
00046 extern "C"
00047 {
00048 #endif
00049
00050 struct woden_soap_header_block_deserializer_ops
00051 {
00056 axis2_status_t (AXIS2_CALL *
00057 free) (void *mod_deser,
00058 const axis2_env_t *env);
00059
00060 axis2_hash_t *(AXIS2_CALL *
00061 super_objs) (void *mod_deser,
00062 const axis2_env_t *env);
00063
00064 woden_obj_types_t (AXIS2_CALL *
00065 type) (void *mod_deser,
00066 const axis2_env_t *env);
00070 struct woden_ext_deserializer *(AXIS2_CALL *
00071 get_base_impl) (
00072 void *mod_deser,
00073 const axis2_env_t *env);
00074
00075 void *(AXIS2_CALL *
00076 marshall) (
00077 void *mod_deser,
00078 const axis2_env_t *env,
00079 axis2_char_t *parent_type,
00080 void *parent,
00081 axis2_qname_t *element_type,
00082 axiom_node_t *el_node,
00083 void *desc,
00084 woden_ext_registry_t *ext_reg);
00085
00086 };
00087
00088 struct woden_soap_header_block_deserializer
00089 {
00090 woden_ext_deserializer_t ext_deserializer;
00091 woden_soap_header_block_deserializer_ops_t *ops;
00092 };
00093
00094 AXIS2_EXTERN woden_soap_header_block_deserializer_t * AXIS2_CALL
00095 woden_soap_header_block_deserializer_create(
00096 const axis2_env_t *env);
00097
00098
00099
00100 AXIS2_EXTERN woden_soap_header_block_deserializer_t * AXIS2_CALL
00101 woden_soap_header_block_deserializer_to_ext_deserializer(
00102 void *mod_deser,
00103 const axis2_env_t *env);
00104
00105 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00106 woden_soap_header_block_deserializer_resolve_methods(
00107 woden_soap_header_block_deserializer_t *mod_deser,
00108 const axis2_env_t *env,
00109 woden_soap_header_block_deserializer_t *mod_deser_impl,
00110 axis2_hash_t *methods);
00111
00112
00113 #define WODEN_SOAP_HEADER_BLOCK_DESERIALIZER_FREE(mod_deser, env) \
00114 (((woden_soap_header_block_deserializer_t *) mod_deser)->ops->free(mod_deser, env))
00115
00116 #define WODEN_SOAP_HEADER_BLOCK_DESERIALIZER_SUPER_OBJS(mod_deser, env) \
00117 (((woden_soap_header_block_deserializer_t *) mod_deser)->ops->super_objs(mod_deser, env))
00118
00119 #define WODEN_SOAP_HEADER_BLOCK_DESERIALIZER_TYPE(mod_deser, env) \
00120 (((woden_soap_header_block_deserializer_t *) mod_deser)->ops->type(mod_deser, env))
00121
00122 #define WODEN_SOAP_HEADER_BLOCK_DESERIALIZER_GET_BASE_IMPL(mod_deser, env) \
00123 (((woden_soap_header_block_deserializer_t *) mod_deser)->ops->get_base_impl(mod_deser, env))
00124
00125 #define WODEN_SOAP_HEADER_BLOCK_DESERIALIZER_MARSHALL(mod_deser, env, \
00126 parent_type, parent, element_type, el_node, desc, ext_reg) \
00127 (((woden_soap_header_block_deserializer_t *) mod_deser)->\
00128 marshall(mod_deser, env, parent_type, parent, element_type, el_node, \
00129 desc, ext_reg))
00130
00132 #ifdef __cplusplus
00133 }
00134 #endif
00135 #endif