/* * 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_MSG_INFO_HEADERS_H #define AXIS2_MSG_INFO_HEADERS_H /** * @defgroup axis2_msg_info_headers message information headers * @ingroup axis2_addr * message information headers encapsulates properties that enable the * identification and location of the endpoints involved in an interaction. * The basic interaction pattern from which all others are composed is * "one way". In this pattern a source sends a message to a destination * without any further definition of the interaction. "Request Reply" is a * common interaction pattern that consists of an initial message sent by * a source endpoint (the request) and a subsequent message sent from the * destination of the request back to the source (the reply). * A reply can be either an application message, a fault, or any other message. * message information headers capture addressing information related to these * interaction patterns such as from, to, reply to and fault to addresses. * @{ */ /** * @file axis2_msg_info_headers.h */ #include #include #include #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /** Type name for struct axis2_msg_info_headers */ typedef struct axis2_msg_info_headers axis2_msg_info_headers_t; /** * Creates message information headers struct. * @param env pointer to environment struct * @param to pointer to endpoint reference representing to endpoint * @param action WS-Addressing action string * @return pointer to newly created message information headers struct */ AXIS2_EXTERN axis2_msg_info_headers_t *AXIS2_CALL axis2_msg_info_headers_create( const axutil_env_t * env, axis2_endpoint_ref_t * to, const axis2_char_t * action); /** * Gets to endpoint. to endpoint represents the address of the * intended receiver of this message. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return pointer to endpoint reference representing to address, * returns a reference, not a cloned copy */ AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL axis2_msg_info_headers_get_to( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets to endpoint. to endpoint represents the address of the * intended receiver of this message. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param to pointer to endpoint reference representing to address, * message information headers assumes ownership of the endpoint * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_to( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, axis2_endpoint_ref_t * to); /** * Gets from endpoint. from endpoint represents the address of the * endpoint where the message originated from. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return pointer to endpoint reference representing from address, * returns a reference, not a cloned copy */ AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL axis2_msg_info_headers_get_from( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets from endpoint. from endpoint represents the address of the * endpoint where the message originated from. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param from pointer to endpoint reference representing from address, * message information headers assumes ownership of the endpoint * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_from( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, axis2_endpoint_ref_t * from); /** * Gets reply to endpoint. reply to endpoint identifies the intended * receiver to which a message is replied. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return pointer to endpoint reference representing reply to address, * returns a reference, not a cloned copy */ AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL axis2_msg_info_headers_get_reply_to( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets reply to endpoint. reply to endpoint identifies the intended * receiver to which a message is replied. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param reply_to pointer to endpoint reference representing reply to * address, message information headers assumes ownership of the endpoint * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_reply_to( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, axis2_endpoint_ref_t * reply_to); /** * Sets the bool value indicating whether the reply to endpoint should * be none. reply to endpoint identifies the intended receiver for * replies to a message. The URI "http://www.w3.org/2005/08/addressing/none" * in the reply to address indicates that no reply should be sent. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param none AXIS2_TRUE if http://www.w3.org/2005/08/addressing/none * is to be used as reply to URI, else AXIS2_FALSE * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_reply_to_none( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, const axis2_bool_t none); /** * Gets the bool value indicating whether the reply to endpoint should * be none. reply to endpoint identifies the intended receiver for * replies related to a message. The URI * "http://www.w3.org/2005/08/addressing/none" * in the reply to address indicates that no reply should be sent. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return AXIS2_TRUE if http://www.w3.org/2005/08/addressing/none * is to be used as reply to URI, else AXIS2_FALSE */ AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_msg_info_headers_get_reply_to_none( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets the bool value indicating whether the reply to endpoint should * be anonymous. reply to endpoint identifies the intended receiver for * replies related to a message. The URI * "http://www.w3.org/2005/08/addressing/anonymous" * in the reply to address indicates that reply should be sent to * from address. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param anonymous AXIS2_TRUE if * http://www.w3.org/2005/08/addressing/anonymous * is to be used as reply to URI, else AXIS2_FALSE * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_reply_to_anonymous( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, const axis2_bool_t anonymous); /** * Gets the bool value indicating whether the reply to endpoint should * be anonymous. reply to endpoint identifies the intended receiver for * replies related to a message. The URI * "http://www.w3.org/2005/08/addressing/anonymous" * in the reply to address indicates that reply should be sent to * from address. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return AXIS2_TRUE if http://www.w3.org/2005/08/addressing/anonymous * is to be used as reply to URI, else AXIS2_FALSE */ AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_msg_info_headers_get_reply_to_anonymous( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Gets fault to endpoint. fault to endpoint identifies the intended * receiver for faults related to a message. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return pointer to endpoint reference representing fault to address, * returns a reference, not a cloned copy */ AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL axis2_msg_info_headers_get_fault_to( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets fault to endpoint. fault to endpoint identifies the intended * receiver for faults related to a message. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param fault_to pointer to endpoint reference representing fault to * address, message information headers assumes ownership of the endpoint * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_fault_to( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, axis2_endpoint_ref_t * fault_to); /** * Sets the bool value indicating whether the fault to endpoint should * be none. fault to endpoint identifies the intended receiver for * faults related to a message. The URI * "http://www.w3.org/2005/08/addressing/none" * in the fault to address indicates that no fault should be sent back. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param none AXIS2_TRUE if http://www.w3.org/2005/08/addressing/none * is to be used as fault to URI, else AXIS2_FALSE * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_fault_to_none( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, const axis2_bool_t none); /** * Gets the bool value indicating whether the fault to endpoint should * be none. fault to endpoint identifies the intended receiver for * faults related to a message. The URI * "http://www.w3.org/2005/08/addressing/none" * in the fault to address indicates that no fault should be sent back. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return AXIS2_TRUE if http://www.w3.org/2005/08/addressing/none * is to be used as fault to URI, else AXIS2_FALSE */ AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_msg_info_headers_get_fault_to_none( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets the bool value indicating whether the fault to endpoint should * be anonymous. fault to endpoint identifies the intended receiver for * faults related to a message. The URI * "http://www.w3.org/2005/08/addressing/anonymous" * in the fault to address indicates that fault should be sent to * from address. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param anonymous AXIS2_TRUE if * http://www.w3.org/2005/08/addressing/anonymous * is to be used as fault to URI, else AXIS2_FALSE * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_fault_to_anonymous( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, const axis2_bool_t anonymous); /** * Gets the bool value indicating whether the fault to endpoint should * be anonymous. fault to endpoint identifies the intended receiver for * faults related to a message. The URI * "http://www.w3.org/2005/08/addressing/anonymous" * in the fault to address indicates that fault should be sent to * from address. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return AXIS2_TRUE if http://www.w3.org/2005/08/addressing/anonymous * is to be used as fault to URI, else AXIS2_FALSE */ AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_msg_info_headers_get_fault_to_anonymous( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Gets WS-Addressing action. action is an absolute IRI * (Internationalized Resource Identifier) that uniquely identifies * the semantics implied by this message. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return WS-Addressing action string */ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL axis2_msg_info_headers_get_action( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets WS-Addressing action. action is an absolute IRI * (Internationalized Resource Identifier) that uniquely identifies * the semantics implied by this message. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param action WS-Addressing action string * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_action( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, const axis2_char_t * action); /** * Gets message ID. message ID is an absolute IRI that uniquely * identifies the message. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return message ID string. */ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL axis2_msg_info_headers_get_message_id( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets message ID. message ID is an absolute URI that uniquely * identifies the message. Message ID will be prefixed with "urn:uuid:" * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param message_id message ID string * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_message_id( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, const axis2_char_t * message_id); /** * Sets message ID. message ID is an absolute URI that uniquely * identifies the message. Message ID Given will be used. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param message_id message ID string * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_in_message_id( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, const axis2_char_t * message_id); /** * Gets relates to information. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return pointer to relates to struct, returns a reference, not a * cloned copy * @sa axis2_relates_to */ AXIS2_EXTERN axis2_relates_to_t *AXIS2_CALL axis2_msg_info_headers_get_relates_to( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Sets relates to information. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param relates_to pointer to relates to struct, message information * headers assumes ownership of struct * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_set_relates_to( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, axis2_relates_to_t * relates_to); /** * Gets all reference parameters associated with message information * headers. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return pointer to array list containing all reference parameters */ AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL axis2_msg_info_headers_get_all_ref_params( const axis2_msg_info_headers_t * msg_info_headers, const axutil_env_t * env); /** * Adds a reference parameter in the form of an AXIOM node. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @param ref_param pointer to AXIOM node representing reference * parameter, message information header does not assume ownership of * node * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_msg_info_headers_add_ref_param( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env, axiom_node_t * ref_param); /** * Frees message information header struct. * @param msg_info_headers pointer to message information headers struct * @param env pointer to environment struct * @return void */ AXIS2_EXTERN void AXIS2_CALL axis2_msg_info_headers_free( struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t * env); /** @} */ #ifdef __cplusplus } #endif #endif /* AXIS2_MSG_INFO_HEADERS_H */