00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_MEP_CLIENT_H
00018 #define AXIS2_MEP_CLIENT_H
00019
00020
00026 #include <axis2_defines.h>
00027 #include <axis2_env.h>
00028 #include <axis2_error.h>
00029 #include <axis2_op.h>
00030 #include <axiom_node.h>
00031 #include <axiom_soap_envelope.h>
00032
00033 #ifdef __cplusplus
00034 extern "C"
00035 {
00036 #endif
00037
00043 typedef struct axis2_mep_client_ops axis2_mep_client_ops_t;
00044 typedef struct axis2_mep_client axis2_mep_client_t;
00045
00046
00051 struct axis2_mep_client_ops
00052 {
00053 axis2_char_t* (AXIS2_CALL *
00054 get_soap_action)(struct axis2_mep_client *mep_client,
00055 const axis2_env_t *env);
00060 axis2_status_t (AXIS2_CALL *
00061 prepare_invocation)(struct axis2_mep_client *mep_client,
00062 const axis2_env_t *env,
00063 axis2_op_t *op,
00064 axis2_msg_ctx_t *msg_ctx);
00072 axis2_msg_ctx_t* (AXIS2_CALL *
00073 prepare_soap_envelope)(struct axis2_mep_client *mep_client,
00074 const axis2_env_t *env,
00075 axiom_node_t *to_send);
00085 axis2_transport_out_desc_t* (AXIS2_CALL *
00086 infer_transport)(struct axis2_mep_client *mep_client,
00087 const axis2_env_t *env,
00088 axis2_endpoint_ref_t *epr);
00095 axiom_soap_envelope_t* (AXIS2_CALL *
00096 create_default_soap_envelope)(struct axis2_mep_client *mep_client,
00097 const axis2_env_t *env);
00106 axis2_status_t (AXIS2_CALL *
00107 engage_module)(struct axis2_mep_client *mep_client,
00108 const axis2_env_t *env,
00109 axis2_qname_t *qname);
00113 axis2_status_t (AXIS2_CALL *
00114 set_soap_version_uri)(struct axis2_mep_client *mep_client,
00115 const axis2_env_t *env,
00116 axis2_char_t *soap_version_uri);
00120 axis2_status_t (AXIS2_CALL *
00121 set_soap_action)(struct axis2_mep_client *mep_client,
00122 const axis2_env_t *env,
00123 axis2_char_t *soap_action);
00127 axis2_status_t (AXIS2_CALL *
00128 set_wsa_action)(struct axis2_mep_client *mep_client,
00129 const axis2_env_t *env,
00130 axis2_char_t *wsa_action);
00131
00132
00133 axis2_svc_ctx_t* (AXIS2_CALL *
00134 get_svc_ctx)(struct axis2_mep_client *mep_client,
00135 const axis2_env_t *env);
00136
00137
00138 axis2_status_t (AXIS2_CALL *
00139 free)(struct axis2_mep_client *mep_client,
00140 const axis2_env_t *env);
00141 };
00142
00147 struct axis2_mep_client
00148 {
00149 axis2_mep_client_ops_t *ops;
00150 };
00151
00152 AXIS2_EXTERN axis2_mep_client_t* AXIS2_CALL axis2_mep_client_create(const axis2_env_t *env,
00153 axis2_svc_ctx_t *svc_ctx,
00154 const axis2_char_t *mep);
00155
00156 axis2_msg_ctx_t* AXIS2_CALL
00157 axis2_mep_client_two_way_send(const axis2_env_t *env,
00158 axis2_msg_ctx_t *msg_ctx);
00159
00160 axis2_msg_ctx_t* AXIS2_CALL
00161 axis2_mep_client_receive(const axis2_env_t *env,
00162 axis2_msg_ctx_t *msg_ctx);
00163
00164
00165
00166 #define AXIS2_MEP_CLIENT_GET_SOAP_ACTION(mep_client, env) \
00167 ((mep_client)->ops->get_soap_action(mep_client, env))
00168
00169 #define AXIS2_MEP_CLIENT_PREPARE_INVOCATION(mep_client, env, op, msg_ctx) \
00170 ((mep_client)->ops->prepare_invocation(mep_client, env, op, msg_ctx))
00171
00172 #define AXIS2_MEP_CLIENT_PREPARE_SOAP_ENVELOPE(mep_client, env, to_send) \
00173 ((mep_client)->ops->prepare_soap_envelope(mep_client, env, to_send))
00174
00175 #define AXIS2_MEP_CLIENT_INFER_TRANSPORT(mep_client, env, epr) \
00176 ((mep_client)->ops->infer_transport(mep_client, env, epr))
00177
00178 #define AXIS2_MEP_CLIENT_CREATE_DEFAULT_SOAP_ENVELOPE(mep_client, env) \
00179 ((mep_client)->ops->create_default_soap_envelope(mep_client, env))
00180
00181 #define AXIS2_MEP_CLIENT_ENGAGE_MODULE(mep_client, env, qname) \
00182 ((mep_client)->ops->engage_module(mep_client, env, qname))
00183
00184 #define AXIS2_MEP_CLIENT_SET_SOAP_VERSION_URI(mep_client, env, soap_version_uri)\
00185 ((mep_client)->ops->set_soap_version_uri(mep_client, env, soap_version_uri))
00186
00187 #define AXIS2_MEP_CLIENT_SET_SOAP_ACTION(mep_client, env, soap_action) \
00188 ((mep_client)->ops->set_soap_action(mep_client, env, soap_action))
00189
00190 #define AXIS2_MEP_CLIENT_SET_WSA_ACTION(mep_client, env, wsa_action) \
00191 ((mep_client)->ops->set_wsa_action(mep_client, env, wsa_action))
00192
00193 #define AXIS2_MEP_CLIENT_GET_SVC_CTX(mep_client, env) \
00194 ((mep_client)->ops->get_svc_ctx(mep_client, env))
00195
00196 #define AXIS2_MEP_CLIENT_FREE(mep_client, env) \
00197 ((mep_client)->ops->free (mep_client, env))
00198
00199
00200
00201
00203 #ifdef __cplusplus
00204 }
00205 #endif
00206
00207 #endif