00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_ENDPOINT_REF_H
00019 #define AXIS2_ENDPOINT_REF_H
00020
00036 #include <axis2_defines.h>
00037 #include <axis2_env.h>
00038 #include <axis2_const.h>
00039 #include <axis2_array_list.h>
00040 #include <axis2_any_content_type.h>
00041 #include <axis2_svc_name.h>
00042 #include <axiom_node.h>
00043 #include <axiom_attribute.h>
00044
00045 #ifdef __cplusplus
00046 extern "C"
00047 {
00048 #endif
00049
00051 typedef struct axis2_endpoint_ref axis2_endpoint_ref_t;
00053 typedef struct axis2_endpoint_ref_ops axis2_endpoint_ref_ops_t;
00054
00055
00060 struct axis2_endpoint_ref_ops
00061 {
00069 const axis2_char_t *(AXIS2_CALL *
00070 get_address)(
00071 const axis2_endpoint_ref_t *endpoint_ref,
00072 const axis2_env_t *env);
00073
00082 axis2_status_t (AXIS2_CALL *
00083 set_address)(
00084 axis2_endpoint_ref_t *endpoint_ref,
00085 const axis2_env_t *env,
00086 const axis2_char_t *address);
00087
00096 const axis2_qname_t *(AXIS2_CALL *
00097 get_interface_qname)(
00098 const axis2_endpoint_ref_t *endpoint_ref,
00099 const axis2_env_t *env);
00100
00110 axis2_status_t (AXIS2_CALL *
00111 set_interface_qname)(
00112 axis2_endpoint_ref_t *endpoint_ref,
00113 const axis2_env_t *env,
00114 const axis2_qname_t *interface_qname);
00115
00127 axis2_array_list_t *(AXIS2_CALL *
00128 get_ref_param_list)(
00129 const axis2_endpoint_ref_t *endpoint_ref,
00130 const axis2_env_t *env);
00131
00140 axis2_array_list_t *(AXIS2_CALL *
00141 get_metadata_list)(
00142 const axis2_endpoint_ref_t *endpoint_ref,
00143 const axis2_env_t *env);
00144
00152 axis2_array_list_t *(AXIS2_CALL *
00153 get_ref_attribute_list)(
00154 const axis2_endpoint_ref_t *endpoint_ref,
00155 const axis2_env_t *env);
00156
00164 axis2_array_list_t *(AXIS2_CALL *
00165 get_metadata_attribute_list)(
00166 const axis2_endpoint_ref_t *endpoint_ref,
00167 const axis2_env_t *env);
00168
00177 axis2_array_list_t *(AXIS2_CALL *
00178 get_extension_list)(
00179 const axis2_endpoint_ref_t *endpoint_ref,
00180 const axis2_env_t *env);
00181
00191 axis2_status_t (AXIS2_CALL *
00192 add_ref_param)(
00193 axis2_endpoint_ref_t *endpoint_ref,
00194 const axis2_env_t *env,
00195 axiom_node_t *ref_param_node);
00196
00207 axis2_status_t (AXIS2_CALL *
00208 add_metadata)(
00209 axis2_endpoint_ref_t *endpoint_ref,
00210 const axis2_env_t *env,
00211 axiom_node_t *metadata_node);
00212
00221 axis2_status_t (AXIS2_CALL *
00222 add_ref_attribute)(
00223 axis2_endpoint_ref_t *endpoint_ref,
00224 const axis2_env_t *env,
00225 axiom_attribute_t *attr);
00226
00235 axis2_status_t (AXIS2_CALL *
00236 add_metadata_attribute)(
00237 axis2_endpoint_ref_t *endpoint_ref,
00238 const axis2_env_t *env,
00239 axiom_attribute_t *attr);
00240
00249 axis2_status_t (AXIS2_CALL *
00250 add_extension)(
00251 axis2_endpoint_ref_t *endpoint_ref,
00252 const axis2_env_t *env,
00253 axiom_node_t *extension_node);
00254
00265 axis2_svc_name_t *(AXIS2_CALL *
00266 get_svc_name)(
00267 const axis2_endpoint_ref_t *endpoint_ref,
00268 const axis2_env_t *env);
00269
00281 axis2_status_t (AXIS2_CALL *
00282 set_svc_name)(
00283 axis2_endpoint_ref_t *endpoint_ref,
00284 const axis2_env_t *env,
00285 axis2_svc_name_t *svc_name);
00286
00287
00294 axis2_status_t (AXIS2_CALL *
00295 free)(
00296 axis2_endpoint_ref_t *endpoint_ref,
00297 const axis2_env_t *env);
00298
00299 };
00300
00304 struct axis2_endpoint_ref
00305 {
00307 axis2_endpoint_ref_ops_t *ops;
00308 };
00309
00310
00317 AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
00318 axis2_endpoint_ref_create(
00319 const axis2_env_t *env,
00320 const axis2_char_t *address);
00321
00329 axis2_status_t AXIS2_CALL
00330 axis2_endpoint_ref_free_void_arg(
00331 void *endpoint_ref,
00332 const axis2_env_t *env);
00333
00336 #define AXIS2_ENDPOINT_REF_GET_ADDRESS(endpoint_ref, env) \
00337 ((endpoint_ref)->ops->get_address(endpoint_ref, env))
00338
00341 #define AXIS2_ENDPOINT_REF_SET_ADDRESS(endpoint_ref, env, address) \
00342 ((endpoint_ref)->ops->set_address(endpoint_ref, env, address))
00343
00346 #define AXIS2_ENDPOINT_REF_GET_INTERFACE_NAME(endpoint_ref, env) \
00347 ((endpoint_ref)->ops->get_interface_qname(endpoint_ref, env))
00348
00351 #define AXIS2_ENDPOINT_REF_SET_INTERFACE_NAME(endpoint_ref, env, interface_qname)\
00352 ((endpoint_ref)->ops->set_interface_qname(endpoint_ref, env, interface_qname))
00353
00356 #define AXIS2_ENDPOINT_REF_GET_SVC_NAME(endpoint_ref, env) \
00357 ((endpoint_ref)->ops->get_svc_name(endpoint_ref, env))
00358
00361 #define AXIS2_ENDPOINT_REF_SET_SVC_NAME(endpoint_ref, env, svc_name) \
00362 ((endpoint_ref)->ops->set_svc_name(endpoint_ref, env, svc_name))
00363
00366 #define AXIS2_ENDPOINT_REF_GET_REF_PARAM_LIST(endpoint_ref, env) \
00367 ((endpoint_ref)->ops->get_ref_param_list(endpoint_ref, env))
00368
00371 #define AXIS2_ENDPOINT_REF_GET_METADATA_LIST(endpoint_ref, env) \
00372 ((endpoint_ref)->ops->get_metadata_list(endpoint_ref, env))
00373
00376 #define AXIS2_ENDPOINT_REF_ADD_REF_PARAM(endpoint_ref, env, node) \
00377 ((endpoint_ref)->ops->add_ref_param(endpoint_ref, env, node))
00378
00381 #define AXIS2_ENDPOINT_REF_ADD_METADATA(endpoint_ref, env, node) \
00382 ((endpoint_ref)->ops->add_metadata(endpoint_ref, env, node))
00383
00386 #define AXIS2_ENDPOINT_REF_FREE(endpoint_ref, env) \
00387 ((endpoint_ref)->ops->free(endpoint_ref, env))
00388
00391 #define AXIS2_ENDPOINT_REF_GET_REF_ATTRIBUTE_LIST(endpoint_ref, env) \
00392 ((endpoint_ref)->ops->get_ref_attribute_list(endpoint_ref, env))
00393
00396 #define AXIS2_ENDPOINT_REF_GET_META_ATTRIBUTE_LIST(endpoint_ref, env) \
00397 ((endpoint_ref)->ops->get_metadata_attribute_list(endpoint_ref, env))
00398
00401 #define AXIS2_ENDPOINT_REF_GET_REF_EXTENSION_LIST(endpoint_ref, env) \
00402 ((endpoint_ref)->ops->get_extension_list(endpoint_ref, env))
00403
00406 #define AXIS2_ENDPOINT_REF_ADD_REF_ATTRIBUTE(endpoint_ref, env, attr) \
00407 ((endpoint_ref)->ops->add_ref_attribute(endpoint_ref, env, attr))
00408
00411 #define AXIS2_ENDPOINT_REF_ADD_META_ATTRIBUTE(endpoint_ref, env, attr) \
00412 ((endpoint_ref)->ops->add_metadata_attribute(endpoint_ref, env, attr))
00413
00416 #define AXIS2_ENDPOINT_REF_ADD_EXTENSION(endpoint_ref, env, node) \
00417 ((endpoint_ref)->ops->add_extension(endpoint_ref, env, node))
00418
00419
00422 #ifdef __cplusplus
00423 }
00424 #endif
00425
00426 #endif