# endpoint reference
[WS-Addressing]

## Files
file | axis2_endpoint_ref.h
## Typedefs
typedef struct axis2_endpoint_ref | axis2_endpoint_ref_t
## Functions
AXIS2_EXTERN axis2_endpoint_ref_t * | axis2_endpoint_ref_create (const axutil_env_t *env, const axis2_char_t *address)
void | axis2_endpoint_ref_free_void_arg (void *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN const axis2_char_t * | axis2_endpoint_ref_get_address (const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_endpoint_ref_set_address (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, const axis2_char_t *address)
AXIS2_EXTERN const axutil_qname_t * | axis2_endpoint_ref_get_interface_qname (const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_endpoint_ref_set_interface_qname (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, const axutil_qname_t *interface_qname)
AXIS2_EXTERN axutil_array_list_t * | axis2_endpoint_ref_get_ref_param_list (const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN axutil_array_list_t * | axis2_endpoint_ref_get_metadata_list (const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN axutil_array_list_t * | axis2_endpoint_ref_get_ref_attribute_list (const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN axutil_array_list_t * | axis2_endpoint_ref_get_metadata_attribute_list (const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN axutil_array_list_t * | axis2_endpoint_ref_get_extension_list (const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_endpoint_ref_add_ref_param (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_node_t *ref_param_node)
AXIS2_EXTERN axis2_status_t | axis2_endpoint_ref_add_metadata (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_node_t *metadata_node)
AXIS2_EXTERN axis2_status_t | axis2_endpoint_ref_add_ref_attribute (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_attribute_t *attr)
AXIS2_EXTERN axis2_status_t | axis2_endpoint_ref_add_metadata_attribute (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_attribute_t *attr)
AXIS2_EXTERN axis2_status_t | axis2_endpoint_ref_add_extension (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_node_t *extension_node)
AXIS2_EXTERN axis2_svc_name_t * | axis2_endpoint_ref_get_svc_name (const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_endpoint_ref_set_svc_name (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axis2_svc_name_t *svc_name)
AXIS2_EXTERN void | axis2_endpoint_ref_free (axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)

## Detailed Description

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.

## Typedef Documentation

typedef struct axis2_endpoint_ref axis2_endpoint_ref_t

Type name for struct axis2_endpoint_ref

## Function Documentation

AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_extension | ( | axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env,
|  | axiom_node_t * | extension_node |
| ) |  |  |

Adds an extension in the form of an AXIOM node.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct
  | extension_node | pointer to AXIOM node representing extension, endpoint reference does not assume the ownership of the node

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_metadata | ( | axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env,
|  | axiom_node_t * | metadata_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.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct
  | metadata_node | AXIOM node representing metadata, endpoint reference does not assume the ownership of the node

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_metadata_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.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct
  | attr | AXIOM attribute representing meta attribute, endpoint reference does not assume the ownership of the attribute

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_ref_attribute | ( | axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env,
|  | axiom_attribute_t * | attr |
| ) |  |  |

Adds a reference attribute in the form of an AXIOM attribute.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct
  | attr | AXIOM attribute representing reference attribute, endpoint reference does not assume the ownership of the attribute

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_ref_param | ( | axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env,
|  | axiom_node_t * | ref_param_node |
| ) |  |  |

Adds a reference parameter in the form of an AXIOM node.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct
  | ref_param_node | pointer to AXIOM node representing reference parameter, endpoint reference does not assume the ownership of the node

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_endpoint_ref_t* axis2_endpoint_ref_create | ( | const axutil_env_t * | env,
|  | const axis2_char_t * | address |
| ) |  |  |

Creates endpoint reference struct.

Parameters:

  | env | pointer to environment struct
  | address | endpoint address string

Returns:
  pointer to newly created endpoint reference

AXIS2_EXTERN void axis2_endpoint_ref_free | ( | axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env |
| ) |  |  |

Frees endpoint reference struct.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

void axis2_endpoint_ref_free_void_arg | ( | void * | endpoint_ref,
|  | const axutil_env_t * | env |
| ) |  |  |

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.

Parameters:

  | endpoint_ref | pointer to endpoint_ref as a void pointer
  | env | pointer to environment struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN const axis2_char_t* axis2_endpoint_ref_get_address | ( | const axis2_endpoint_ref_t * | 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.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  endpoint address string

AXIS2_EXTERN axutil_array_list_t* axis2_endpoint_ref_get_extension_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.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  pointer to array list containing extensions, returns a reference, not a cloned copy

AXIS2_EXTERN const axutil_qname_t* axis2_endpoint_ref_get_interface_qname | ( | const axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets interface QName. QName represents the primary portType of the endpoint being conveyed.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  pointer to interface QName, returns a reference, not a cloned copy

AXIS2_EXTERN axutil_array_list_t* axis2_endpoint_ref_get_metadata_attribute_list | ( | const axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the list of metadata attributes.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  pointer to array list containing metadata attributes, returns a reference, not a cloned copy

AXIS2_EXTERN axutil_array_list_t* axis2_endpoint_ref_get_metadata_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.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  pointer to array list containing metadata, returns a reference, not a cloned copy

AXIS2_EXTERN axutil_array_list_t* axis2_endpoint_ref_get_ref_attribute_list | ( | const axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the list of reference attributes.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  pointer to array list containing reference attributes, returns a reference, not a cloned copy

AXIS2_EXTERN axutil_array_list_t* axis2_endpoint_ref_get_ref_param_list | ( | const axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env |
| ) |  |  |

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.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  pointer to array list containing all reference parameters, returns a reference, not a cloned copy

AXIS2_EXTERN axis2_svc_name_t* axis2_endpoint_ref_get_svc_name | ( | const axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env |
| ) |  |  |

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.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct

Returns:
  pointer to service name struct, returns a reference, not a cloned copy

AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_set_address | ( | axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | address |
| ) |  |  |

Sets endpoint address. Address URI identifies the endpoint. This may be a network address or a logical address.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct
  | address | address string

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_set_interface_qname | ( | axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env,
|  | const axutil_qname_t * | interface_qname |
| ) |  |  |

Sets interface QName. QName represents the primary portType of the endpoint being conveyed.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct
  | interface_qname | pointer to interface QName, this method creates a clone of the QName

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_set_svc_name | ( | axis2_endpoint_ref_t * | endpoint_ref,
|  | const axutil_env_t * | env,
|  | axis2_svc_name_t * | svc_name |
| ) |  |  |

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.

Parameters:

  | endpoint_ref | pointer to endpoint reference struct
  | env | pointer to environment struct
  | svc_name | pointer to service name struct, endpoint assumes ownership of the struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE