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
00031 #include <axis2_defines.h>
00032 #include <axis2_env.h>
00033 #include <axis2_error.h>
00034 #include <axis2_op.h>
00035 #include <axiom_node.h>
00036 #include <axiom_soap_envelope.h>
00037
00038 #ifdef __cplusplus
00039 extern "C"
00040 {
00041 #endif
00042
00044 typedef struct axis2_mep_client_ops axis2_mep_client_ops_t;
00046 typedef struct axis2_mep_client axis2_mep_client_t;
00047
00048
00053 struct axis2_mep_client_ops
00054 {
00061 const axis2_char_t *(AXIS2_CALL *
00062 get_soap_action)(
00063 const axis2_mep_client_t *mep_client,
00064 const axis2_env_t *env);
00065
00075 axis2_status_t (AXIS2_CALL *
00076 prepare_invocation)(
00077 axis2_mep_client_t *mep_client,
00078 const axis2_env_t *env,
00079 axis2_op_t *op,
00080 axis2_msg_ctx_t *msg_ctx);
00081
00090 axis2_msg_ctx_t* (AXIS2_CALL *
00091 prepare_soap_envelope)(
00092 axis2_mep_client_t *mep_client,
00093 const axis2_env_t *env,
00094 axiom_node_t *to_send);
00095
00105 axis2_transport_out_desc_t *(AXIS2_CALL *
00106 infer_transport)(
00107 axis2_mep_client_t *mep_client,
00108 const axis2_env_t *env,
00109 axis2_endpoint_ref_t *epr);
00110
00117 axiom_soap_envelope_t *(AXIS2_CALL *
00118 create_default_soap_envelope)(
00119 axis2_mep_client_t *mep_client,
00120 const axis2_env_t *env);
00121
00132 axis2_status_t (AXIS2_CALL *
00133 engage_module)(
00134 axis2_mep_client_t *mep_client,
00135 const axis2_env_t *env,
00136 const axis2_qname_t *qname);
00137
00145 axis2_status_t (AXIS2_CALL *
00146 set_soap_version_uri)(
00147 axis2_mep_client_t *mep_client,
00148 const axis2_env_t *env,
00149 const axis2_char_t *soap_version_uri);
00150
00158 axis2_status_t (AXIS2_CALL *
00159 set_soap_action)(
00160 axis2_mep_client_t *mep_client,
00161 const axis2_env_t *env,
00162 const axis2_char_t *soap_action);
00163
00171 axis2_status_t (AXIS2_CALL *
00172 set_wsa_action)(
00173 axis2_mep_client_t *mep_client,
00174 const axis2_env_t *env,
00175 const axis2_char_t *wsa_action);
00176
00183 axis2_svc_ctx_t *(AXIS2_CALL *
00184 get_svc_ctx)(
00185 const axis2_mep_client_t *mep_client,
00186 const axis2_env_t *env);
00187
00188
00195 axis2_status_t (AXIS2_CALL *
00196 free)(
00197 axis2_mep_client_t *mep_client,
00198 const axis2_env_t *env);
00199 };
00200
00204 struct axis2_mep_client
00205 {
00207 axis2_mep_client_ops_t *ops;
00208 };
00209
00219 AXIS2_EXTERN axis2_mep_client_t *AXIS2_CALL
00220 axis2_mep_client_create(
00221 const axis2_env_t *env,
00222 axis2_svc_ctx_t *svc_ctx,
00223 const axis2_char_t *mep);
00224
00233 axis2_msg_ctx_t *AXIS2_CALL
00234 axis2_mep_client_two_way_send(
00235 const axis2_env_t *env,
00236 axis2_msg_ctx_t *msg_ctx);
00237
00246 axis2_msg_ctx_t *AXIS2_CALL
00247 axis2_mep_client_receive(
00248 const axis2_env_t *env,
00249 axis2_msg_ctx_t *msg_ctx);
00250
00253 #define AXIS2_MEP_CLIENT_GET_SOAP_ACTION(mep_client, env) \
00254 ((mep_client)->ops->get_soap_action(mep_client, env))
00255
00258 #define AXIS2_MEP_CLIENT_PREPARE_INVOCATION(mep_client, env, op, msg_ctx) \
00259 ((mep_client)->ops->prepare_invocation(mep_client, env, op, msg_ctx))
00260
00263 #define AXIS2_MEP_CLIENT_PREPARE_SOAP_ENVELOPE(mep_client, env, to_send) \
00264 ((mep_client)->ops->prepare_soap_envelope(mep_client, env, to_send))
00265
00268 #define AXIS2_MEP_CLIENT_INFER_TRANSPORT(mep_client, env, epr) \
00269 ((mep_client)->ops->infer_transport(mep_client, env, epr))
00270
00273 #define AXIS2_MEP_CLIENT_CREATE_DEFAULT_SOAP_ENVELOPE(mep_client, env) \
00274 ((mep_client)->ops->create_default_soap_envelope(mep_client, env))
00275
00278 #define AXIS2_MEP_CLIENT_ENGAGE_MODULE(mep_client, env, qname) \
00279 ((mep_client)->ops->engage_module(mep_client, env, qname))
00280
00283 #define AXIS2_MEP_CLIENT_SET_SOAP_VERSION_URI(mep_client, env, soap_version_uri)\
00284 ((mep_client)->ops->set_soap_version_uri(mep_client, env, soap_version_uri))
00285
00288 #define AXIS2_MEP_CLIENT_SET_SOAP_ACTION(mep_client, env, soap_action) \
00289 ((mep_client)->ops->set_soap_action(mep_client, env, soap_action))
00290
00293 #define AXIS2_MEP_CLIENT_SET_WSA_ACTION(mep_client, env, wsa_action) \
00294 ((mep_client)->ops->set_wsa_action(mep_client, env, wsa_action))
00295
00298 #define AXIS2_MEP_CLIENT_GET_SVC_CTX(mep_client, env) \
00299 ((mep_client)->ops->get_svc_ctx(mep_client, env))
00300
00303 #define AXIS2_MEP_CLIENT_FREE(mep_client, env) \
00304 ((mep_client)->ops->free (mep_client, env))
00305
00306
00308 #ifdef __cplusplus
00309 }
00310 #endif
00311
00312 #endif