From 0425aadc78680e53000fd0108b540d6eca048516 Mon Sep 17 00:00:00 2001 From: gmcdonald Date: Sat, 13 Feb 2010 01:32:03 +0000 Subject: Moving axis svn, part of TLP move INFRA-2441 git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@909681 13f79535-47bb-0310-9956-ffa450edef68 --- include/axis2_endpoint_ref.h | 319 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 include/axis2_endpoint_ref.h (limited to 'include/axis2_endpoint_ref.h') diff --git a/include/axis2_endpoint_ref.h b/include/axis2_endpoint_ref.h new file mode 100644 index 0000000..cb9dfe0 --- /dev/null +++ b/include/axis2_endpoint_ref.h @@ -0,0 +1,319 @@ + +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef AXIS2_ENDPOINT_REF_H +#define AXIS2_ENDPOINT_REF_H + +/** + * @defgroup axis2_endpoint_ref endpoint reference + * @ingroup axis2_addr + * endpoint reference represent an endpoint address in WS-Addressing. + * In addition to the endpoint address, it also encapsulates meta data, + * reference attributes and the service hosted at the given endpoint. + * In addition to the addressing related implementation, the endpoint reference + * struct is used across core code-base to represent endpoints. + * @{ + */ + +/** + * @file axis2_endpoint_ref.h + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + + /** Type name for struct axis2_endpoint_ref */ + typedef struct axis2_endpoint_ref axis2_endpoint_ref_t; + + /** + * Creates endpoint reference struct. + * @param env pointer to environment struct + * @param address endpoint address string + * @return pointer to newly created endpoint reference + */ + AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL + axis2_endpoint_ref_create( + const axutil_env_t * env, + const axis2_char_t * address); + + /** + * Frees the endpoint_ref given as a void pointer. This method would cast the + * void parameter to an endpoint_ref pointer and then call free method. + * @param endpoint_ref pointer to endpoint_ref as a void pointer + * @param env pointer to environment struct + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + void AXIS2_CALL + axis2_endpoint_ref_free_void_arg( + void *endpoint_ref, + const axutil_env_t * env); + + /** + * Gets endpoint address. Address URI identifies the endpoint. + * This may be a network address or a logical address. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return endpoint address string + */ + AXIS2_EXTERN const axis2_char_t *AXIS2_CALL + axis2_endpoint_ref_get_address( + const axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** + * Sets endpoint address. Address URI identifies the endpoint. + * This may be a network address or a logical address. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @param address address string + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_endpoint_ref_set_address( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env, + const axis2_char_t * address); + + /** + * Gets interface QName. QName represents the primary portType of + * the endpoint being conveyed. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return pointer to interface QName, returns a reference, not a cloned + * copy + */ + AXIS2_EXTERN const axutil_qname_t *AXIS2_CALL + axis2_endpoint_ref_get_interface_qname( + const axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** + * Sets interface QName. QName represents the primary portType of + * the endpoint being conveyed. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @param interface_qname pointer to interface QName, this method creates + * a clone of the QName + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_endpoint_ref_set_interface_qname( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env, + const axutil_qname_t * interface_qname); + + /** + * Gets reference parameter list. A reference may contain a number + * of individual parameters which are associated with the endpoint + * to facilitate a particular interaction. Reference parameters + * are element information items that are named by QName and are + * required to properly interact with the endpoint. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return pointer to array list containing all reference parameters, + * returns a reference, not a cloned copy + */ + AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL + axis2_endpoint_ref_get_ref_param_list( + const axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** + * Gets the list of metadata. An endpoint can have different associated + * metadata such as WSDL, XML Schema, and WS-Policy policies. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return pointer to array list containing metadata, returns a + * reference, not a cloned copy + */ + AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL + axis2_endpoint_ref_get_metadata_list( + const axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** + * Gets the list of reference attributes. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return pointer to array list containing reference attributes, + * returns a reference, not a cloned copy + */ + AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL + axis2_endpoint_ref_get_ref_attribute_list( + const axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** + * Gets the list of metadata attributes. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return pointer to array list containing metadata attributes, + * returns a reference, not a cloned copy + */ + AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL + axis2_endpoint_ref_get_metadata_attribute_list( + const axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** + * Gets the list of extensions. Extensions are a mechanism to allow + * additional elements to be specified in association with the endpoint. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return pointer to array list containing extensions, + * returns a reference, not a cloned copy + */ + AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL + axis2_endpoint_ref_get_extension_list( + const axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** + * Adds a reference parameter in the form of an AXIOM node. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @param ref_param_node pointer to AXIOM node representing reference + * parameter, endpoint reference does not assume the ownership of + * the node + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_endpoint_ref_add_ref_param( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env, + axiom_node_t * ref_param_node); + + /** + * Adds metadata in the form of an AXIOM node. An endpoint can have + * different associated metadata such as WSDL, XML Schema and + * WS-Policy policies. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @param metadata_node AXIOM node representing metadata, + * endpoint reference does not assume the ownership of the node + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_endpoint_ref_add_metadata( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env, + axiom_node_t * metadata_node); + + /** + * Adds a reference attribute in the form of an AXIOM attribute. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @param attr AXIOM attribute representing reference attribute, + * endpoint reference does not assume the ownership of the attribute + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_endpoint_ref_add_ref_attribute( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env, + axiom_attribute_t * attr); + + /** + * Adds a meta attribute in the form of an AXIOM attribute. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @param attr AXIOM attribute representing meta attribute, + * endpoint reference does not assume the ownership of the attribute + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_endpoint_ref_add_metadata_attribute( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env, + axiom_attribute_t * attr); + + /** + * Adds an extension in the form of an AXIOM node. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @param extension_node pointer to AXIOM node representing extension, + * endpoint reference does not assume the ownership of the node + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_endpoint_ref_add_extension( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env, + axiom_node_t * extension_node); + + /** + * Gets service name. An endpoint in WS-Addressing has a QName + * identifying the WSDL service element that contains the definition + * of the endpoint being conveyed. The service name provides a link + * to a full description of the service endpoint. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return pointer to service name struct, returns a reference, not + * a cloned copy + */ + AXIS2_EXTERN axis2_svc_name_t *AXIS2_CALL + axis2_endpoint_ref_get_svc_name( + const axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** + * Sets service name. An endpoint in WS-Addressing has a QName + * identifying the WSDL service element that contains the definition + * of the endpoint being conveyed. The service name provides a link + * to a full description of the service endpoint. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @param svc_name pointer to service name struct, endpoint assumes + * ownership of the struct + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_endpoint_ref_set_svc_name( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env, + axis2_svc_name_t * svc_name); + + /** + * Frees endpoint reference struct. + * @param endpoint_ref pointer to endpoint reference struct + * @param env pointer to environment struct + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN void AXIS2_CALL + axis2_endpoint_ref_free( + axis2_endpoint_ref_t * endpoint_ref, + const axutil_env_t * env); + + /** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* AXIS2_ENDPOINT_REF_H */ -- cgit v1.1-32-gdbae