00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIOM_SOAP_MESSAGE_H
00018 #define AXIOM_SOAP_MESSAGE_H
00019
00025 #include <axis2_env.h>
00026 #include <axiom_soap_envelope.h>
00027 #include <axiom_soap_builder.h>
00028
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033
00034 typedef struct axiom_soap_message axiom_soap_message_t;
00035 typedef struct axiom_soap_message_ops axiom_soap_message_ops_t;
00036
00037
00048 AXIS2_DECLARE_DATA struct axiom_soap_message_ops
00049 {
00058 axis2_status_t (AXIS2_CALL *
00059 free_fn)(axiom_soap_message_t *message,
00060 const axis2_env_t *env);
00061
00062 axiom_soap_envelope_t* (AXIS2_CALL *
00063 get_soap_envelope)(axiom_soap_message_t *message,
00064 const axis2_env_t *env);
00065
00066 axis2_status_t (AXIS2_CALL *
00067 serialize)(axiom_soap_message_t *message,
00068 const axis2_env_t *env,
00069 axiom_output_t *om_output);
00070
00071
00072 };
00073
00078 struct axiom_soap_message
00079 {
00081 axiom_soap_message_ops_t *ops;
00082
00083 };
00084
00089 AXIS2_EXTERN axiom_soap_message_t * AXIS2_CALL
00090 axiom_soap_message_create(const axis2_env_t *env,
00091 axiom_soap_builder_t *soap_builder,
00092 axiom_document_t *om_doc);
00093
00094
00095
00096
00098 #define AXIOM_SOAP_MESSAGE_FREE(message , env) \
00099 ((message)->ops->free_fn(message, env))
00100
00101 #define AXIOM_SOAP_MESSAGE_GET_SOAP_ENVELOPE(message, env) \
00102 ((message)->ops->get_envelope(message, env))
00103
00104 #define AXIOM_SOAP_MESSAGE_SERIALIZE(message, env, om_output) \
00105 ((message)->ops->serialize(message, env, om_output))
00106
00108 #ifdef __cplusplus
00109 }
00110 #endif
00111
00112
00113
00114 #endif