00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_MEP_CLIENT_H
00019 #define AXIS2_MEP_CLIENT_H
00020
00032 #include <axis2_defines.h>
00033 #include <axis2_env.h>
00034 #include <axis2_error.h>
00035 #include <axis2_op.h>
00036 #include <axiom_node.h>
00037 #include <axiom_soap_envelope.h>
00038
00039 #ifdef __cplusplus
00040 extern "C"
00041 {
00042 #endif
00043
00045 typedef struct axis2_mep_client_ops axis2_mep_client_ops_t;
00047 typedef struct axis2_mep_client axis2_mep_client_t;
00048
00049
00054 struct axis2_mep_client_ops
00055 {
00062 const axis2_char_t *(AXIS2_CALL *
00063 get_soap_action)(
00064 const axis2_mep_client_t *mep_client,
00065 const axis2_env_t *env);
00066
00076 axis2_status_t (AXIS2_CALL *
00077 prepare_invocation)(
00078 axis2_mep_client_t *mep_client,
00079 const axis2_env_t *env,
00080 axis2_op_t *op,
00081 axis2_msg_ctx_t *msg_ctx);
00082
00091 axis2_msg_ctx_t* (AXIS2_CALL *
00092 prepare_soap_envelope)(
00093 axis2_mep_client_t *mep_client,
00094 const axis2_env_t *env,
00095 axiom_node_t *to_send);
00096
00106 axis2_transport_out_desc_t *(AXIS2_CALL *
00107 infer_transport)(
00108 axis2_mep_client_t *mep_client,
00109 const axis2_env_t *env,
00110 axis2_endpoint_ref_t *epr);
00111
00118 axiom_soap_envelope_t *(AXIS2_CALL *
00119 create_default_soap_envelope)(
00120 axis2_mep_client_t *mep_client,
00121 const axis2_env_t *env);
00122
00133 axis2_status_t (AXIS2_CALL *
00134 engage_module)(
00135 axis2_mep_client_t *mep_client,
00136 const axis2_env_t *env,
00137 const axis2_qname_t *qname);
00138
00146 axis2_status_t (AXIS2_CALL *
00147 set_soap_version_uri)(
00148 axis2_mep_client_t *mep_client,
00149 const axis2_env_t *env,
00150 const axis2_char_t *soap_version_uri);
00151
00159 axis2_status_t (AXIS2_CALL *
00160 set_soap_action)(
00161 axis2_mep_client_t *mep_client,
00162 const axis2_env_t *env,
00163 const axis2_char_t *soap_action);
00164
00172 axis2_status_t (AXIS2_CALL *
00173 set_wsa_action)(
00174 axis2_mep_client_t *mep_client,
00175 const axis2_env_t *env,
00176 const axis2_char_t *wsa_action);
00177
00184 axis2_svc_ctx_t *(AXIS2_CALL *
00185 get_svc_ctx)(
00186 const axis2_mep_client_t *mep_client,
00187 const axis2_env_t *env);
00188
00189
00196 axis2_status_t (AXIS2_CALL *
00197 free)(
00198 axis2_mep_client_t *mep_client,
00199 const axis2_env_t *env);
00200 };
00201
00205 struct axis2_mep_client
00206 {
00208 axis2_mep_client_ops_t *ops;
00209 };
00210
00220 AXIS2_EXTERN axis2_mep_client_t *AXIS2_CALL
00221 axis2_mep_client_create(
00222 const axis2_env_t *env,
00223 axis2_svc_ctx_t *svc_ctx,
00224 const axis2_char_t *mep);
00225
00234 axis2_msg_ctx_t *AXIS2_CALL
00235 axis2_mep_client_two_way_send(
00236 const axis2_env_t *env,
00237 axis2_msg_ctx_t *msg_ctx);
00238
00247 axis2_msg_ctx_t *AXIS2_CALL
00248 axis2_mep_client_receive(
00249 const axis2_env_t *env,
00250 axis2_msg_ctx_t *msg_ctx);
00251
00254 #define AXIS2_MEP_CLIENT_GET_SOAP_ACTION(mep_client, env) \
00255 ((mep_client)->ops->get_soap_action(mep_client, env))
00256
00259 #define AXIS2_MEP_CLIENT_PREPARE_INVOCATION(mep_client, env, op, msg_ctx) \
00260 ((mep_client)->ops->prepare_invocation(mep_client, env, op, msg_ctx))
00261
00264 #define AXIS2_MEP_CLIENT_PREPARE_SOAP_ENVELOPE(mep_client, env, to_send) \
00265 ((mep_client)->ops->prepare_soap_envelope(mep_client, env, to_send))
00266
00269 #define AXIS2_MEP_CLIENT_INFER_TRANSPORT(mep_client, env, epr) \
00270 ((mep_client)->ops->infer_transport(mep_client, env, epr))
00271
00274 #define AXIS2_MEP_CLIENT_CREATE_DEFAULT_SOAP_ENVELOPE(mep_client, env) \
00275 ((mep_client)->ops->create_default_soap_envelope(mep_client, env))
00276
00279 #define AXIS2_MEP_CLIENT_ENGAGE_MODULE(mep_client, env, qname) \
00280 ((mep_client)->ops->engage_module(mep_client, env, qname))
00281
00284 #define AXIS2_MEP_CLIENT_SET_SOAP_VERSION_URI(mep_client, env, soap_version_uri)\
00285 ((mep_client)->ops->set_soap_version_uri(mep_client, env, soap_version_uri))
00286
00289 #define AXIS2_MEP_CLIENT_SET_SOAP_ACTION(mep_client, env, soap_action) \
00290 ((mep_client)->ops->set_soap_action(mep_client, env, soap_action))
00291
00294 #define AXIS2_MEP_CLIENT_SET_WSA_ACTION(mep_client, env, wsa_action) \
00295 ((mep_client)->ops->set_wsa_action(mep_client, env, wsa_action))
00296
00299 #define AXIS2_MEP_CLIENT_GET_SVC_CTX(mep_client, env) \
00300 ((mep_client)->ops->get_svc_ctx(mep_client, env))
00301
00304 #define AXIS2_MEP_CLIENT_FREE(mep_client, env) \
00305 ((mep_client)->ops->free (mep_client, env))
00306
00307
00309 #ifdef __cplusplus
00310 }
00311 #endif
00312
00313 #endif