# phase holder
[phase resolver]

## Files
file | axis2_phase_holder.h
## Typedefs
typedef struct axis2_phase_holder | axis2_phase_holder_t
## Functions
AXIS2_EXTERN void | axis2_phase_holder_free (axis2_phase_holder_t *phase_holder, const axutil_env_t *env)
AXIS2_EXTERN axis2_bool_t | axis2_phase_holder_is_phase_exist (axis2_phase_holder_t *phase_holder, const axutil_env_t *env, const axis2_char_t *phase_name)
AXIS2_EXTERN axis2_status_t | axis2_phase_holder_add_handler (axis2_phase_holder_t *phase_holder, const axutil_env_t *env, struct axis2_handler_desc *handler)
AXIS2_EXTERN axis2_status_t | axis2_phase_holder_remove_handler (axis2_phase_holder_t *phase_holder, const axutil_env_t *env, struct axis2_handler_desc *handler)
AXIS2_EXTERN struct axis2_phase * | axis2_phase_holder_get_phase (const axis2_phase_holder_t *phase_holder, const axutil_env_t *env, const axis2_char_t *phase_name)
AXIS2_EXTERN axis2_status_t | axis2_phase_holder_build_transport_handler_chain (axis2_phase_holder_t *phase_holder, const axutil_env_t *env, struct axis2_phase *phase, axutil_array_list_t *handlers)
AXIS2_EXTERN axis2_phase_holder_t * | axis2_phase_holder_create (const axutil_env_t *env)
AXIS2_EXTERN axis2_phase_holder_t * | axis2_phase_holder_create_with_phases (const axutil_env_t *env, axutil_array_list_t *phases)

## Detailed Description

phase holder is used by phase resolver to hold information related to phases and handlers within a phase. This struct hold the list of phases found in the services.xml and axis2.xml.

## Typedef Documentation

typedef struct axis2_phase_holder axis2_phase_holder_t

Type name for struct axis2_phase_holder

## Function Documentation

AXIS2_EXTERN axis2_status_t axis2_phase_holder_add_handler | ( | axis2_phase_holder_t * | phase_holder,
|  | const axutil_env_t * | env,
|  | struct axis2_handler_desc * | handler |
| ) |  |  |

Adds given handler to phase holder.

Parameters:

  | phase_holder | pointer to phase holder
  | env | pointer to environment struct handler pointer to handler

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_phase_holder_build_transport_handler_chain | ( | axis2_phase_holder_t * | phase_holder,
|  | const axutil_env_t * | env,
|  | struct axis2_phase * | phase,
|  | axutil_array_list_t * | handlers |
| ) |  |  |

Builds the transport phase. This method loads the corresponding handlers and added them into correct phase. This function is no longer used in Axis2/C and marked as deprecated.

Deprecated:

Parameters:

  | phase_holder | pointer to phase holder
  | env | pointer to environment struct
  | phase | pointer to phase, phase holder does not assume the ownership the phase
  | handlers | pointer to array list of handlers, phase holder does not assume the ownership of the list

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_phase_holder_t* axis2_phase_holder_create | ( | const axutil_env_t * | env | ) |

Creates phase holder struct.

Parameters:

  | env | pointer to environment struct

Returns:
  pointer to newly created phase holder

AXIS2_EXTERN axis2_phase_holder_t* axis2_phase_holder_create_with_phases | ( | const axutil_env_t * | env,
|  | axutil_array_list_t * | phases |
| ) |  |  |

Creates phase holder struct with given list of phases.

Parameters:

  | env | pointer to environment struct
  | phases | pointer to array list of phases

Returns:
  pointer to newly created phase holder

AXIS2_EXTERN void axis2_phase_holder_free | ( | axis2_phase_holder_t * | phase_holder,
|  | const axutil_env_t * | env |
| ) |  |  |

Frees phase holder.

Parameters:

  | phase_holder | pointer to phase holder
  | env | pointer to environment struct

Returns:
  void

AXIS2_EXTERN struct axis2_phase* axis2_phase_holder_get_phase | ( | const axis2_phase_holder_t * | phase_holder,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | phase_name |
| ) |  |  | `[read]`

Gets the named phase from phase array list.

Parameters:

  | phase_holder | pointer to phase holder
  | env | pointer to environment struct
  | phase_name | pointer to phase name

Returns:
  pointer to named phase if it exists, else NULL. Returns a reference, not a cloned copy

AXIS2_EXTERN axis2_bool_t axis2_phase_holder_is_phase_exist | ( | axis2_phase_holder_t * | phase_holder,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | phase_name |
| ) |  |  |

Checks if the named phase exist.

Parameters:

  | phase_holder | pointer to phase holder
  | env | pointer to environment struct
  | phase_name | phase name string

Returns:
  AXIS2_TRUE if the named phase exist, else AXIS2_FALSE

AXIS2_EXTERN axis2_status_t axis2_phase_holder_remove_handler | ( | axis2_phase_holder_t * | phase_holder,
|  | const axutil_env_t * | env,
|  | struct axis2_handler_desc * | handler |
| ) |  |  |

Removes given handler from phase holder.

Parameters:

  | phase_holder | pointer to phase holder
  | env | pointer to environment struct handler pointer to handler

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE