00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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
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
00202
00204 #ifdef __cplusplus
00205 }
00206 #endif
00207
00208 #endif
00209