00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIOM_SOAP_BUILDER_H
00018 #define AXIOM_SOAP_BUILDER_H
00019
00020 #include <axiom_stax_builder.h>
00021 #include <axiom_soap_envelope.h>
00022
00028 #ifdef __cplusplus
00029 extern "C"
00030 {
00031 #endif
00032
00033
00034 typedef struct axiom_soap_builder axiom_soap_builder_t;
00035 typedef struct axiom_soap_builder_ops axiom_soap_builder_ops_t;
00036
00048 struct axiom_soap_builder_ops
00049 {
00050 axis2_status_t (AXIS2_CALL *free)(axiom_soap_builder_t *builder,
00051 const axis2_env_t *env);
00052
00053 axiom_soap_envelope_t* (AXIS2_CALL *get_soap_envelope)
00054 (axiom_soap_builder_t *builder,
00055 const axis2_env_t *env);
00056
00057 axiom_document_t* (AXIS2_CALL *get_document)
00058 (axiom_soap_builder_t *builder,
00059 const axis2_env_t *env);
00060
00061 axis2_status_t (AXIS2_CALL *next)(axiom_soap_builder_t *builder,
00062 const axis2_env_t *env);
00063
00064
00065 axiom_node_t* (AXIS2_CALL *get_document_element)
00066 (axiom_soap_builder_t *builder,
00067 const axis2_env_t *env);
00068
00069 axis2_status_t (AXIS2_CALL *set_bool_processing_mandatory_fault_elements)
00070 (axiom_soap_builder_t *builder,
00071 const axis2_env_t *env,
00072 axis2_bool_t value);
00073
00074 axis2_status_t (AXIS2_CALL *set_processing_detail_elements)
00075 (axiom_soap_builder_t *builder,
00076 const axis2_env_t *env,
00077 axis2_bool_t value);
00078
00079 axis2_bool_t (AXIS2_CALL *is_processing_detail_elements)
00080 (axiom_soap_builder_t *builder,
00081 const axis2_env_t *env);
00082
00083
00084 int (AXIS2_CALL *get_soap_version)(axiom_soap_builder_t *builder,
00085 const axis2_env_t *env);
00086
00087 axis2_status_t (AXIS2_CALL *process_namespace_data)
00088 (axiom_soap_builder_t *builder,
00089 const axis2_env_t *env,
00090 axiom_node_t *om_node,
00091 axis2_bool_t is_soap_element);
00092 axis2_status_t (AXIS2_CALL *
00093 set_mime_body_parts)
00094 (axiom_soap_builder_t *builder,
00095 const axis2_env_t *env,
00096 axis2_hash_t *map);
00097 };
00098
00099
00105 struct axiom_soap_builder
00106 {
00108 axiom_soap_builder_ops_t *ops;
00109 };
00110
00116 AXIS2_EXTERN axiom_soap_builder_t * AXIS2_CALL
00117 axiom_soap_builder_create(const axis2_env_t *env,
00118 axiom_stax_builder_t *builder,
00119 const axis2_char_t *soap_version);
00120
00121
00122
00123 #define AXIOM_SOAP_BUILDER_FREE(builder, env) \
00124 ((builder)->ops->free(builder, env))
00125
00126 #define AXIOM_SOAP_BUILDER_GET_SOAP_ENVELOPE(builder, env) \
00127 ((builder)->ops->get_soap_envelope(builder, env))
00128
00129 #define AXIOM_SOAP_BUILDER_GET_DOCUMENT_ELEMENT(builder, env) \
00130 ((builder)->ops->get_document_element(builder, env))
00131
00132 #define AXIOM_SOAP_BUILDER_NEXT(builder, env) \
00133 ((builder)->ops->next(builder, env))
00134
00135 #define AXIOM_SOAP_BUILDER_GET_DOCUMENT(builder, env) \
00136 ((builder)->ops->get_document(builder, env))
00137
00138 #define AXIOM_SOAP_BUILDER_NEXT(builder, env) \
00139 ((builder)->ops->next(builder, env))
00140
00141 #define AXIOM_SOAP_BUILDER_SET_BOOL_PROCESSING_MANDATORY_FAULT_ELEMENTS(builder, env, value) \
00142 ((builder)->ops->set_bool_processing_mandatory_fault_elements(builder, env, value))
00143
00144 #define AXIOM_SOAP_BUILDER_SET_PROCESSING_DETAIL_ELEMENTS(builder, env, value) \
00145 ((builder)->ops->set_processing_detail_elements(builder, env, value))
00146
00147 #define AXIOM_SOAP_BUILDER_IS_PROCESSING_DETAIL_ELEMENTS(builder, env) \
00148 ((builder)->ops->is_processing_detail_elements(builder, env))
00149
00150
00151 #define AXIOM_SOAP_BUILDER_GET_SOAP_VERSION(builder, env) \
00152 ((builder)->ops->get_soap_version(builder, env))
00153
00154 #define AXIOM_SOAP_BUILDER_PROCESS_NAMESPACE_DATA(builder, env, om_node, is_soap_element) \
00155 ((builder)->ops->process_namespace_data(builder, env, om_node, is_soap_element))
00156
00157 #define AXIOM_SOAP_BUILDER_SET_MIME_BODY_PARTS(builder, env, map) \
00158 ((builder)->ops->set_mime_body_parts(builder, env, map))
00159
00161 #ifdef __cplusplus
00162 }
00163 #endif
00164 #endif