axis2_mep_client.h

Go to the documentation of this file.
00001 /*
00002 * Copyright 2004,2005 The Apache Software Foundation.
00003 *
00004 * Licensed under the Apache License, Version 2.0 (the "License");
00005 * you may not use this file except in compliance with the License.
00006 * You may obtain a copy of the License at
00007 *
00008 *      http://www.apache.org/licenses/LICENSE-2.0
00009 *
00010 * Unless required by applicable law or agreed to in writing, software
00011 * distributed under the License is distributed on an "AS IS" BASIS,
00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013 * See the License for the specific language governing permissions and
00014 * limitations under the License.
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                          /* AXIS2_MEP_CLIENT_H */

Generated on Thu Oct 26 21:11:23 2006 for Axis2/C by  doxygen 1.4.7