# handler description
[description]

## Files
file | axis2_handler_desc.h
## Typedefs
typedef struct axis2_handler_desc | axis2_handler_desc_t
## Functions
AXIS2_EXTERN const axutil_string_t * | axis2_handler_desc_get_name (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_handler_desc_set_name (axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axutil_string_t *name)
AXIS2_EXTERN axis2_phase_rule_t * | axis2_handler_desc_get_rules (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_handler_desc_set_rules (axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axis2_phase_rule_t *phase_rule)
AXIS2_EXTERN axutil_param_t * | axis2_handler_desc_get_param (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env, const axis2_char_t *name)
AXIS2_EXTERN axis2_status_t | axis2_handler_desc_add_param (axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axutil_param_t *param)
AXIS2_EXTERN axutil_array_list_t * | axis2_handler_desc_get_all_params (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_bool_t | axis2_handler_desc_is_param_locked (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env, const axis2_char_t *param_name)
AXIS2_EXTERN axis2_handler_t * | axis2_handler_desc_get_handler (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_handler_desc_set_handler (axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axis2_handler_t *handler)
AXIS2_EXTERN const axis2_char_t * | axis2_handler_desc_get_class_name (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_handler_desc_set_class_name (axis2_handler_desc_t *handler_desc, const axutil_env_t *env, const axis2_char_t *class_name)
AXIS2_EXTERN axutil_param_container_t * | axis2_handler_desc_get_parent (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_handler_desc_set_parent (axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axutil_param_container_t *parent)
AXIS2_EXTERN void | axis2_handler_desc_free (axis2_handler_desc_t *handler_desc, const axutil_env_t *env)
AXIS2_EXTERN axutil_param_container_t * | axis2_handler_desc_get_param_container (const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_handler_desc_t * | axis2_handler_desc_create (const axutil_env_t *env, axutil_string_t *name)

## Detailed Description

handler description captures information on a handler. Each handler in the system has an associated handler description. Deployment engine would create handler descriptions based on configuration information. When handlers are loaded from shared libraries, the information captured in handler description would be used.

## Typedef Documentation

typedef struct axis2_handler_desc axis2_handler_desc_t

Type name for struct axis2_handler_desc

## Function Documentation

AXIS2_EXTERN axis2_status_t axis2_handler_desc_add_param | ( | axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env,
|  | axutil_param_t * | param |
| ) |  |  |

Adds given parameter to the parameter list.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct
  | param | pointer to param

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_handler_desc_t* axis2_handler_desc_create | ( | const axutil_env_t * | env,
|  | axutil_string_t * | name |
| ) |  |  |

Creates handler description struct instance.

Parameters:

  | env | pointer to env pointer to environment struct
  | name | pointer to string representing handler name, can be NULL, create function clones this

Returns:
  pointer to newly created handler description struct

AXIS2_EXTERN void axis2_handler_desc_free | ( | axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Frees handler description.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axutil_array_list_t* axis2_handler_desc_get_all_params | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets all parameters stored within handler description.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct

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

AXIS2_EXTERN const axis2_char_t* axis2_handler_desc_get_class_name | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the class name. Class name is the name of the shared library file that contains the implementation of the handler.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct

Returns:
  class name string

AXIS2_EXTERN axis2_handler_t* axis2_handler_desc_get_handler | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the handler associated with the handler description.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct

Returns:
  pointer to handler, returns a reference, not a cloned copy

AXIS2_EXTERN const axutil_string_t* axis2_handler_desc_get_name | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets QName.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct

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

AXIS2_EXTERN axutil_param_t* axis2_handler_desc_get_param | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | name |
| ) |  |  |

Gets named parameter.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct
  | name | parameter name string

Returns:
  pointer to parameter if found, else NULL. Return a reference not a cloned copy

AXIS2_EXTERN axutil_param_container_t* axis2_handler_desc_get_param_container | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the param container.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct

Returns:
  pointer to parameter container, returns a reference, not a cloned copy

AXIS2_EXTERN axutil_param_container_t* axis2_handler_desc_get_parent | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the parent. Parent of handler description is of type parameter container.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct

Returns:
  pointer to parent parameter container, returns a reference, not a cloned copy

AXIS2_EXTERN axis2_phase_rule_t* axis2_handler_desc_get_rules | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets phase rules.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct

Returns:
  pointer to phase rule struct containing phase rules

AXIS2_EXTERN axis2_bool_t axis2_handler_desc_is_param_locked | ( | const axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | param_name |
| ) |  |  |

Checks if the named parameter is locked at any level

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct
  | param_name | parameter name string

Returns:
  AXIS2_TRUE if the parameter is locked, else AXIS2_FALSE

AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_class_name | ( | axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | class_name |
| ) |  |  |

Sets the class name. Class name is the name of the shared library file that contains the implementation of the handler.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct
  | class_name | class name string

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_handler | ( | axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env,
|  | axis2_handler_t * | handler |
| ) |  |  |

Sets the handler associated with the handler description.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct
  | handler | pointer to handler, handler description assumes the ownership of the handler

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_name | ( | axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env,
|  | axutil_string_t * | name |
| ) |  |  |

Sets QName.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct
  | name | pointer to string representing handler name of QName

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_parent | ( | axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env,
|  | axutil_param_container_t * | parent |
| ) |  |  |

Gets the parent. Parent of handler description is of type parameter container.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct
  | parent | pointer to parent parameter container struct, handler description assumes ownership of struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_rules | ( | axis2_handler_desc_t * | handler_desc,
|  | const axutil_env_t * | env,
|  | axis2_phase_rule_t * | phase_rule |
| ) |  |  |

Sets phase rules.

Parameters:

  | handler_desc | pointer to handler description
  | env | pointer to environment struct
  | phase_rule | pointer to phase rule struct, handler description assumes ownership of the struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE