Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

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 
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 /************************** Start of function macros **************************/
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 /************************** End of function macros ****************************/    
00201 
00203 #ifdef __cplusplus
00204 }
00205 #endif
00206 
00207 #endif                          /* AXIS2_MEP_CLIENT_H */

Generated on Fri Jun 16 18:02:31 2006 for Axis2/C by  doxygen 1.4.2