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