axis2_endpoint_ref.h

Go to the documentation of this file.
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_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    /* AXIS2_ENDPOINT_REF_H */

Generated on Tue Oct 3 20:47:58 2006 for Axis2/C by  doxygen 1.4.7