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
00031 #include <axis2_defines.h>
00032 #include <axis2_env.h>
00033 #include <axis2_const.h>
00034 #include <axis2_array_list.h>
00035 #include <axis2_any_content_type.h>
00036 #include <axis2_svc_name.h>
00037 #include <axiom_node.h>
00038 #include <axiom_attribute.h>
00039
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044
00046 typedef struct axis2_endpoint_ref axis2_endpoint_ref_t;
00048 typedef struct axis2_endpoint_ref_ops axis2_endpoint_ref_ops_t;
00049
00050
00054 struct axis2_endpoint_ref_ops
00055 {
00061 axis2_char_t *(AXIS2_CALL *
00062 get_address)(
00063 const axis2_endpoint_ref_t *endpoint_ref,
00064 const axis2_env_t *env);
00065
00072 axis2_status_t (AXIS2_CALL *
00073 set_address)(
00074 struct axis2_endpoint_ref *endpoint_ref,
00075 const axis2_env_t *env,
00076 axis2_char_t *address);
00077
00082 axis2_qname_t *(AXIS2_CALL *
00083 get_interface_qname)(
00084 const axis2_endpoint_ref_t *endpoint_ref,
00085 const axis2_env_t *env);
00093 axis2_status_t (AXIS2_CALL *
00094 set_interface_qname)(
00095 struct axis2_endpoint_ref *endpoint_ref,
00096 const axis2_env_t *env,
00097 axis2_qname_t *interface_qname);
00103 axis2_any_content_type_t *(AXIS2_CALL *
00104 get_ref_properties)(
00105 const axis2_endpoint_ref_t *endpoint_ref,
00106 const axis2_env_t *env);
00114 axis2_status_t (AXIS2_CALL *
00115 set_ref_properties)(
00116 struct axis2_endpoint_ref *endpoint_ref,
00117 const axis2_env_t *env,
00118 axis2_any_content_type_t *ref_properties);
00119
00124 axis2_array_list_t *(AXIS2_CALL *
00125 get_ref_param_list)(
00126 const axis2_endpoint_ref_t *endpoint_ref,
00127 const axis2_env_t *env);
00128
00133 axis2_array_list_t *(AXIS2_CALL *
00134 get_meta_data_list)(
00135 const axis2_endpoint_ref_t *endpoint_ref,
00136 const axis2_env_t *env);
00137
00142 axis2_array_list_t *(AXIS2_CALL *
00143 get_ref_attribute_list)(
00144 const axis2_endpoint_ref_t *endpoint_ref,
00145 const axis2_env_t *env);
00146
00151 axis2_array_list_t *(AXIS2_CALL *
00152 get_meta_attribute_list)(
00153 const axis2_endpoint_ref_t *endpoint_ref,
00154 const axis2_env_t *env);
00155
00160 axis2_array_list_t *(AXIS2_CALL *
00161 get_extension_list)(
00162 const axis2_endpoint_ref_t *endpoint_ref,
00163 const axis2_env_t *env);
00164
00171 axis2_status_t (AXIS2_CALL *
00172 add_ref_param)(
00173 struct axis2_endpoint_ref *endpoint_ref,
00174 const axis2_env_t *env,
00175 axiom_node_t *ref_param_node);
00176
00183 axis2_status_t (AXIS2_CALL *
00184 add_meta_data)(
00185 struct axis2_endpoint_ref *endpoint_ref,
00186 const axis2_env_t *env,
00187 axiom_node_t *meta_data_node);
00188
00195 axis2_status_t (AXIS2_CALL *
00196 add_ref_attribute)(
00197 struct axis2_endpoint_ref *endpoint_ref,
00198 const axis2_env_t *env,
00199 axiom_attribute_t *attr);
00200
00207 axis2_status_t (AXIS2_CALL *
00208 add_meta_attribute)(
00209 struct axis2_endpoint_ref *endpoint_ref,
00210 const axis2_env_t *env,
00211 axiom_attribute_t *attr);
00212
00219 axis2_status_t (AXIS2_CALL *
00220 add_extension)(
00221 struct axis2_endpoint_ref *endpoint_ref,
00222 const axis2_env_t *env,
00223 axiom_node_t *extension_node);
00224
00228
00229
00230
00234
00235
00236
00237
00243 axis2_svc_name_t *(AXIS2_CALL *
00244 get_svc_name)(
00245 const axis2_endpoint_ref_t *endpoint_ref,
00246 const axis2_env_t *env);
00254 axis2_status_t (AXIS2_CALL *
00255 set_svc_name)(
00256 struct axis2_endpoint_ref *endpoint_ref,
00257 const axis2_env_t *env,
00258 axis2_svc_name_t *svc_name);
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00292 axis2_status_t (AXIS2_CALL *
00293 free)(
00294 struct axis2_endpoint_ref *endpoint_ref,
00295 const axis2_env_t *env);
00296
00297 };
00298
00302 struct axis2_endpoint_ref
00303 {
00305 axis2_endpoint_ref_ops_t *ops;
00306 };
00307
00308
00314 AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
00315 axis2_endpoint_ref_create(
00316 const axis2_env_t *env,
00317 const axis2_char_t *address);
00318
00321 #define AXIS2_ENDPOINT_REF_GET_ADDRESS(endpoint_ref, env) \
00322 ((endpoint_ref)->ops->get_address(endpoint_ref, env))
00323
00326 #define AXIS2_ENDPOINT_REF_SET_ADDRESS(endpoint_ref, env, address) \
00327 ((endpoint_ref)->ops->set_address(endpoint_ref, env, address))
00328
00331 #define AXIS2_ENDPOINT_REF_GET_INTERFACE_NAME(endpoint_ref, env) \
00332 ((endpoint_ref)->ops->get_interface_qname(endpoint_ref, env))
00333
00336 #define AXIS2_ENDPOINT_REF_SET_INTERFACE_NAME(endpoint_ref, env, interface_qname)\
00337 ((endpoint_ref)->ops->set_interface_qname(endpoint_ref, env, interface_qname))
00338
00341 #define AXIS2_ENDPOINT_REF_GET_REF_PROPERTIES(endpoint_ref, env) \
00342 ((endpoint_ref)->ops->get_ref_properties(endpoint_ref, env))
00343
00346 #define AXIS2_ENDPOINT_REF_SET_REF_PROPERTIES(endpoint_ref, env, ref_properties)\
00347 ((endpoint_ref)->ops->set_ref_properties(endpoint_ref, env, ref_properties))
00348
00349
00350
00351
00352
00353
00354
00357 #define AXIS2_ENDPOINT_REF_GET_SVC_NAME(endpoint_ref, env) \
00358 ((endpoint_ref)->ops->get_svc_name(endpoint_ref, env))
00359
00362 #define AXIS2_ENDPOINT_REF_SET_SVC_NAME(endpoint_ref, env, svc_name) \
00363 ((endpoint_ref)->ops->set_svc_name(endpoint_ref, env, svc_name))
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00379 #define AXIS2_ENDPOINT_REF_GET_REF_PARAM_LIST(endpoint_ref, env) \
00380 ((endpoint_ref)->ops->get_ref_param_list(endpoint_ref, env))
00381
00384 #define AXIS2_ENDPOINT_REF_GET_META_DATA_LIST(endpoint_ref, env) \
00385 ((endpoint_ref)->ops->get_meta_data_list(endpoint_ref, env))
00386
00389 #define AXIS2_ENDPOINT_REF_ADD_REF_PARAM(endpoint_ref, env, node) \
00390 ((endpoint_ref)->ops->add_ref_param(endpoint_ref, env, node))
00391
00394 #define AXIS2_ENDPOINT_REF_ADD_META_DATA(endpoint_ref, env, node) \
00395 ((endpoint_ref)->ops->add_meta_data(endpoint_ref, env, node))
00396
00399 #define AXIS2_ENDPOINT_REF_FREE(endpoint_ref, env) \
00400 ((endpoint_ref)->ops->free(endpoint_ref, env))
00401
00404 #define AXIS2_ENDPOINT_REF_GET_REF_ATTRIBUTE_LIST(endpoint_ref, env) \
00405 ((endpoint_ref)->ops->get_ref_attribute_list(endpoint_ref, env))
00406
00409 #define AXIS2_ENDPOINT_REF_GET_META_ATTRIBUTE_LIST(endpoint_ref, env) \
00410 ((endpoint_ref)->ops->get_meta_attribute_list(endpoint_ref, env))
00411
00414 #define AXIS2_ENDPOINT_REF_GET_REF_EXTENSION_LIST(endpoint_ref, env) \
00415 ((endpoint_ref)->ops->get_extension_list(endpoint_ref, env))
00416
00419 #define AXIS2_ENDPOINT_REF_ADD_REF_ATTRIBUTE(endpoint_ref, env, attr) \
00420 ((endpoint_ref)->ops->add_ref_attribute(endpoint_ref, env, attr))
00421
00424 #define AXIS2_ENDPOINT_REF_ADD_META_ATTRIBUTE(endpoint_ref, env, attr) \
00425 ((endpoint_ref)->ops->add_meta_attribute(endpoint_ref, env, attr))
00426
00429 #define AXIS2_ENDPOINT_REF_ADD_EXTENSION(endpoint_ref, env, node) \
00430 ((endpoint_ref)->ops->add_extension(endpoint_ref, env, node))
00431
00432
00435 #ifdef __cplusplus
00436 }
00437 #endif
00438
00439 #endif