axis2_mep_client.h

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

Generated on Wed Dec 20 20:34:49 2006 for Axis2/C by  doxygen 1.5.1