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

axis2_di_client.h

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_DICLIENT_H
00018 #define AXIS2_DICLIENT_H
00019 
00020 
00026 #include <axis2_defines.h>
00027 #include <axis2_env.h>
00028 #include <axis2_error.h>
00029 
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034 
00040 typedef struct axis2_diclient_ops axis2_diclient_ops_t;
00041 typedef struct axis2_diclient axis2_diclient_t; 
00042 
00043 struct axiom_node;
00044 struct axis2_op;
00045 
00050 struct axis2_diclient_ops
00051 {
00052     axis2_status_t (AXIS2_CALL *
00053    free)(struct axis2_diclient *diclient, 
00054           const axis2_env_t *env);
00055 
00063     axis2_status_t (AXIS2_CALL *
00064     invoke) (axis2_diclient_t *diclient,
00065              const axis2_env_t *env,
00066              axiom_node_t *node,
00067              struct axis2_op *op);
00068    
00077     axis2_status_t (AXIS2_CALL *
00078     init) (axis2_diclient_t *diclient,
00079            const axis2_env_t *env,
00080          axis2_char_t *wsdl_file_name);
00081 
00089     axis2_status_t *(AXIS2_CALL *
00090     set_address_and_action_for_op) (axis2_diclient_t *diclient,
00091                                     const axis2_env_t *env,
00092                                     axis2_qname_t *op_qname);
00093 
00094 
00099     axis2_hash_t *(AXIS2_CALL *
00100     get_endpoints) (axis2_diclient_t *diclient,
00101                   const axis2_env_t *env);
00102 
00107     axis2_hash_t *(AXIS2_CALL *
00108     get_services) (axis2_diclient_t *diclient,
00109                   const axis2_env_t *env);
00110 
00115     axis2_hash_t *(AXIS2_CALL *
00116     get_operations) (axis2_diclient_t *diclient,
00117             const axis2_env_t *env);
00118    
00126     axis2_char_t *(AXIS2_CALL *
00127     get_param_localname) (axis2_diclient_t *diclient,
00128                             const axis2_env_t *env,
00129                             axis2_qname_t *op_qname);
00130 
00138     axis2_char_t *(AXIS2_CALL *
00139     get_param_namespace) (axis2_diclient_t *diclient,
00140                             const axis2_env_t *env,
00141                             axis2_qname_t *op_qname);
00142 
00150     axis2_hash_t *(AXIS2_CALL *
00151     get_params) (axis2_diclient_t *diclient,
00152                             const axis2_env_t *env,
00153                             axis2_qname_t *op_qname);
00154 };
00155 
00160 struct axis2_diclient
00161 {
00162     axis2_diclient_ops_t *ops;    
00163 };
00164 
00165 AXIS2_EXTERN axis2_diclient_t* AXIS2_CALL 
00166 axis2_diclient_create(const axis2_env_t *env);
00167 
00168 /************************** Start of function macros **************************/
00169 
00170 #define AXIS2_DICLIENT_FREE(diclient, env) \
00171       ((diclient)->ops->free (diclient, env))
00172       
00173 #define AXIS2_DICLIENT_INVOKE(diclient, env, node, op) \
00174       ((diclient)->ops->invoke (diclient, env, node, op))
00175 
00176 #define AXIS2_DICLIENT_INIT(diclient, env, wsdl_file_name) \
00177       ((diclient)->ops->init (diclient, env, wsdl_file_name))
00178 
00179 #define AXIS2_DICLIENT_SET_ADDRESS_AND_ACTION_FOR_OP(diclient, env, op_qname) \
00180       ((diclient)->ops->set_address_and_action_for_op (diclient, env, \
00181                 op_qname))
00182 
00183 #define AXIS2_DICLIENT_GET_ENDPOINTS(diclient, env) \
00184       ((diclient)->ops->get_endpoints (diclient, env))
00185 
00186 #define AXIS2_DICLIENT_GET_SERVICES(diclient, env) \
00187       ((diclient)->ops->get_services (diclient, env))
00188 
00189 #define AXIS2_DICLIENT_GET_OPERATIONS(diclient, env) \
00190       ((diclient)->ops->get_operations (diclient, env))
00191 
00192 #define AXIS2_DICLIENT_GET_PARAM_LOCALNAME(diclient, env, op_qname) \
00193       ((diclient)->ops->get_param_localname (diclient, env, op_qname))
00194 
00195 #define AXIS2_DICLIENT_GET_PARAM_NAMESPACE(diclient, env, op_qname) \
00196       ((diclient)->ops->get_param_namespace (diclient, env, op_qname))
00197 
00198 #define AXIS2_DICLIENT_GET_PARAMS(diclient, env, op_qname) \
00199       ((diclient)->ops->get_params (diclient, env, op_qname))
00200 
00201 /************************** End of function macros ****************************/    
00202 
00204 #ifdef __cplusplus
00205 }
00206 #endif
00207 
00208 #endif                          /* AXIS2_DICLIENT_H */
00209 

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