# description
[description]

## Files
file | axis2_desc.h
## Typedefs
typedef struct axis2_desc | axis2_desc_t
## Functions
AXIS2_EXTERN axis2_desc_t * | axis2_desc_create (const axutil_env_t *env)
AXIS2_EXTERN void | axis2_desc_free (axis2_desc_t *desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_desc_add_param (axis2_desc_t *desc, const axutil_env_t *env, axutil_param_t *param)
AXIS2_EXTERN axutil_param_t * | axis2_desc_get_param (const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *param_name)
AXIS2_EXTERN axutil_array_list_t * | axis2_desc_get_all_params (const axis2_desc_t *desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_bool_t | axis2_desc_is_param_locked (const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *param_name)
AXIS2_EXTERN axis2_status_t | axis2_desc_add_child (const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *key, const struct axis2_msg *child)
AXIS2_EXTERN axutil_hash_t * | axis2_desc_get_all_children (const axis2_desc_t *desc, const axutil_env_t *env)
AXIS2_EXTERN void * | axis2_desc_get_child (const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *key)
AXIS2_EXTERN axis2_status_t | axis2_desc_remove_child (const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *key)
AXIS2_EXTERN axis2_status_t | axis2_desc_set_parent (axis2_desc_t *desc, const axutil_env_t *env, axis2_desc_t *parent)
AXIS2_EXTERN axis2_desc_t * | axis2_desc_get_parent (const axis2_desc_t *desc, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_desc_set_policy_include (axis2_desc_t *desc, const axutil_env_t *env, struct axis2_policy_include *policy_include)
AXIS2_EXTERN struct axis2_policy_include * | axis2_desc_get_policy_include (axis2_desc_t *desc, const axutil_env_t *env)

## Detailed Description

Base struct of description hierarchy. Encapsulates common data and functions of the description hierarchy.

## Typedef Documentation

typedef struct axis2_desc axis2_desc_t

Type name of struct axis2_desc

## Function Documentation

AXIS2_EXTERN axis2_status_t axis2_desc_add_child | ( | const axis2_desc_t * | desc,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | key,
|  | const struct axis2_msg * | child |
| ) |  |  |

Adds child to the description. The type of children is based on the level of the description hierarchy. As an example, service has children of type operation, service group has children of type service

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct
  | key | key with which the child is to be added
  | child | child to be added

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_desc_add_param | ( | axis2_desc_t * | desc,
|  | const axutil_env_t * | env,
|  | axutil_param_t * | param |
| ) |  |  |

Adds given parameter to the list of parameters.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct
  | param | pointer to parameter

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_desc_t* axis2_desc_create | ( | const axutil_env_t * | env | ) |

Creates a description struct instance.

Parameters:

  | env | pointer to environment struct

Returns:
  pointer to newly created description

AXIS2_EXTERN void axis2_desc_free | ( | axis2_desc_t * | desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Frees description struct.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct

Returns:
  void

AXIS2_EXTERN axutil_hash_t* axis2_desc_get_all_children | ( | const axis2_desc_t * | desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets all children.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct

Returns:
  pointer to hash map containing children

AXIS2_EXTERN axutil_array_list_t* axis2_desc_get_all_params | ( | const axis2_desc_t * | desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets all parameters stored in description.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct

Returns:
  pointer to array list containing the list of parameters

AXIS2_EXTERN void* axis2_desc_get_child | ( | const axis2_desc_t * | desc,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | key |
| ) |  |  |

Gets child with given key.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct
  | key | key with which the child is stored

Returns:
  pointer to child, returned as a void* value, need to cast to correct type

AXIS2_EXTERN axutil_param_t* axis2_desc_get_param | ( | const axis2_desc_t * | desc,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | param_name |
| ) |  |  |

Gets named parameter.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct
  | param_name | parameter name string

Returns:
  pointer to named parameter, NULL if it does not exist

AXIS2_EXTERN axis2_desc_t* axis2_desc_get_parent | ( | const axis2_desc_t * | desc,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets parent description.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct

Returns:
  parent pointer to parent description

AXIS2_EXTERN struct axis2_policy_include* axis2_desc_get_policy_include | ( | axis2_desc_t * | desc,
|  | const axutil_env_t * | env |
| ) |  |  | `[read]`

Gets policy include

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct

Returns:
  returns policy include that was added to description

See also:
  policy include

AXIS2_EXTERN axis2_bool_t axis2_desc_is_param_locked | ( | const axis2_desc_t * | desc,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | param_name |
| ) |  |  |

Checks if a named parameter is locked.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct
  | param_name | parameter name string

Returns:
  AXIS2_TRUE if parameter is locked, else AXIS2_FALSE

AXIS2_EXTERN axis2_status_t axis2_desc_remove_child | ( | const axis2_desc_t * | desc,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | key |
| ) |  |  |

Removes the named child.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct
  | key | key that represents the child to be removed

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_desc_set_parent | ( | axis2_desc_t * | desc,
|  | const axutil_env_t * | env,
|  | axis2_desc_t * | parent |
| ) |  |  |

Sets parent description.

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct
  | parent | pointer to parent description

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_desc_set_policy_include | ( | axis2_desc_t * | desc,
|  | const axutil_env_t * | env,
|  | struct axis2_policy_include * | policy_include |
| ) |  |  |

Sets policy include

Parameters:

  | desc | pointer to description
  | env | pointer to environment struct
  | policy_include | policy include to be added to description

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE