00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_ENDPOINT_REF_H
00018 #define AXIS2_ENDPOINT_REF_H
00019
00035 #include <axis2_defines.h>
00036 #include <axis2_env.h>
00037 #include <axis2_const.h>
00038 #include <axis2_array_list.h>
00039 #include <axis2_any_content_type.h>
00040 #include <axis2_svc_name.h>
00041 #include <axiom_node.h>
00042 #include <axiom_attribute.h>
00043
00044 #ifdef __cplusplus
00045 extern "C"
00046 {
00047 #endif
00048
00050 typedef struct axis2_endpoint_ref axis2_endpoint_ref_t;
00052 typedef struct axis2_endpoint_ref_ops axis2_endpoint_ref_ops_t;
00053
00054
00059 struct axis2_endpoint_ref_ops
00060 {
00068 const axis2_char_t *(AXIS2_CALL *
00069 get_address)(
00070 const axis2_endpoint_ref_t *endpoint_ref,
00071 const axis2_env_t *env);
00072
00081 axis2_status_t (AXIS2_CALL *
00082 set_address)(
00083 axis2_endpoint_ref_t *endpoint_ref,
00084 const axis2_env_t *env,
00085 const axis2_char_t *address);
00086
00095 const axis2_qname_t *(AXIS2_CALL *
00096 get_interface_qname)(
00097 const axis2_endpoint_ref_t *endpoint_ref,
00098 const axis2_env_t *env);
00099
00109 axis2_status_t (AXIS2_CALL *
00110 set_interface_qname)(
00111 axis2_endpoint_ref_t *endpoint_ref,
00112 const axis2_env_t *env,
00113 const axis2_qname_t *interface_qname);
00114
00126 axis2_array_list_t *(AXIS2_CALL *
00127 get_ref_param_list)(
00128 const axis2_endpoint_ref_t *endpoint_ref,
00129 const axis2_env_t *env);
00130
00139 axis2_array_list_t *(AXIS2_CALL *
00140 get_metadata_list)(
00141 const axis2_endpoint_ref_t *endpoint_ref,
00142 const axis2_env_t *env);
00143
00151 axis2_array_list_t *(AXIS2_CALL *
00152 get_ref_attribute_list)(
00153 const axis2_endpoint_ref_t *endpoint_ref,
00154 const axis2_env_t *env);
00155
00163 axis2_array_list_t *(AXIS2_CALL *
00164 get_metadata_attribute_list)(
00165 const axis2_endpoint_ref_t *endpoint_ref,
00166 const axis2_env_t *env);
00167
00176 axis2_array_list_t *(AXIS2_CALL *
00177 get_extension_list)(
00178 const axis2_endpoint_ref_t *endpoint_ref,
00179 const axis2_env_t *env);
00180
00190 axis2_status_t (AXIS2_CALL *
00191 add_ref_param)(
00192 axis2_endpoint_ref_t *endpoint_ref,
00193 const axis2_env_t *env,
00194 axiom_node_t *ref_param_node);
00195
00206 axis2_status_t (AXIS2_CALL *
00207 add_metadata)(
00208 axis2_endpoint_ref_t *endpoint_ref,
00209 const axis2_env_t *env,
00210 axiom_node_t *metadata_node);
00211
00220 axis2_status_t (AXIS2_CALL *
00221 add_ref_attribute)(
00222 axis2_endpoint_ref_t *endpoint_ref,
00223 const axis2_env_t *env,
00224 axiom_attribute_t *attr);
00225
00234 axis2_status_t (AXIS2_CALL *
00235 add_metadata_attribute)(
00236 axis2_endpoint_ref_t *endpoint_ref,
00237 const axis2_env_t *env,
00238 axiom_attribute_t *attr);
00239
00248 axis2_status_t (AXIS2_CALL *
00249 add_extension)(
00250 axis2_endpoint_ref_t *endpoint_ref,
00251 const axis2_env_t *env,
00252 axiom_node_t *extension_node);
00253
00264 axis2_svc_name_t *(AXIS2_CALL *
00265 get_svc_name)(
00266 const axis2_endpoint_ref_t *endpoint_ref,
00267 const axis2_env_t *env);
00268
00280 axis2_status_t (AXIS2_CALL *
00281 set_svc_name)(
00282 axis2_endpoint_ref_t *endpoint_ref,
00283 const axis2_env_t *env,
00284 axis2_svc_name_t *svc_name);
00285
00286
00293 axis2_status_t (AXIS2_CALL *
00294 free)(
00295 axis2_endpoint_ref_t *endpoint_ref,
00296 const axis2_env_t *env);
00297
00298 };
00299
00303 struct axis2_endpoint_ref
00304 {
00306 axis2_endpoint_ref_ops_t *ops;
00307 };
00308
00309
00316 AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
00317 axis2_endpoint_ref_create(
00318 const axis2_env_t *env,
00319 const axis2_char_t *address);
00320
00323 #define AXIS2_ENDPOINT_REF_GET_ADDRESS(endpoint_ref, env) \
00324 ((endpoint_ref)->ops->get_address(endpoint_ref, env))
00325
00328 #define AXIS2_ENDPOINT_REF_SET_ADDRESS(endpoint_ref, env, address) \
00329 ((endpoint_ref)->ops->set_address(endpoint_ref, env, address))
00330
00333 #define AXIS2_ENDPOINT_REF_GET_INTERFACE_NAME(endpoint_ref, env) \
00334 ((endpoint_ref)->ops->get_interface_qname(endpoint_ref, env))
00335
00338 #define AXIS2_ENDPOINT_REF_SET_INTERFACE_NAME(endpoint_ref, env, interface_qname)\
00339 ((endpoint_ref)->ops->set_interface_qname(endpoint_ref, env, interface_qname))
00340
00343 #define AXIS2_ENDPOINT_REF_GET_SVC_NAME(endpoint_ref, env) \
00344 ((endpoint_ref)->ops->get_svc_name(endpoint_ref, env))
00345
00348 #define AXIS2_ENDPOINT_REF_SET_SVC_NAME(endpoint_ref, env, svc_name) \
00349 ((endpoint_ref)->ops->set_svc_name(endpoint_ref, env, svc_name))
00350
00353 #define AXIS2_ENDPOINT_REF_GET_REF_PARAM_LIST(endpoint_ref, env) \
00354 ((endpoint_ref)->ops->get_ref_param_list(endpoint_ref, env))
00355
00358 #define AXIS2_ENDPOINT_REF_GET_METADATA_LIST(endpoint_ref, env) \
00359 ((endpoint_ref)->ops->get_metadata_list(endpoint_ref, env))
00360
00363 #define AXIS2_ENDPOINT_REF_ADD_REF_PARAM(endpoint_ref, env, node) \
00364 ((endpoint_ref)->ops->add_ref_param(endpoint_ref, env, node))
00365
00368 #define AXIS2_ENDPOINT_REF_ADD_METADATA(endpoint_ref, env, node) \
00369 ((endpoint_ref)->ops->add_metadata(endpoint_ref, env, node))
00370
00373 #define AXIS2_ENDPOINT_REF_FREE(endpoint_ref, env) \
00374 ((endpoint_ref)->ops->free(endpoint_ref, env))
00375
00378 #define AXIS2_ENDPOINT_REF_GET_REF_ATTRIBUTE_LIST(endpoint_ref, env) \
00379 ((endpoint_ref)->ops->get_ref_attribute_list(endpoint_ref, env))
00380
00383 #define AXIS2_ENDPOINT_REF_GET_META_ATTRIBUTE_LIST(endpoint_ref, env) \
00384 ((endpoint_ref)->ops->get_metadata_attribute_list(endpoint_ref, env))
00385
00388 #define AXIS2_ENDPOINT_REF_GET_REF_EXTENSION_LIST(endpoint_ref, env) \
00389 ((endpoint_ref)->ops->get_extension_list(endpoint_ref, env))
00390
00393 #define AXIS2_ENDPOINT_REF_ADD_REF_ATTRIBUTE(endpoint_ref, env, attr) \
00394 ((endpoint_ref)->ops->add_ref_attribute(endpoint_ref, env, attr))
00395
00398 #define AXIS2_ENDPOINT_REF_ADD_META_ATTRIBUTE(endpoint_ref, env, attr) \
00399 ((endpoint_ref)->ops->add_metadata_attribute(endpoint_ref, env, attr))
00400
00403 #define AXIS2_ENDPOINT_REF_ADD_EXTENSION(endpoint_ref, env, node) \
00404 ((endpoint_ref)->ops->add_extension(endpoint_ref, env, node))
00405
00406
00409 #ifdef __cplusplus
00410 }
00411 #endif
00412
00413 #endif