# flow
[description]

## Files
file | axis2_flow.h
## Typedefs
typedef struct axis2_flow | axis2_flow_t
## Functions
AXIS2_EXTERN axis2_flow_t * | axis2_flow_create (const axutil_env_t *env)
AXIS2_EXTERN void | axis2_flow_free (axis2_flow_t *flow, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_flow_add_handler (axis2_flow_t *flow, const axutil_env_t *env, axis2_handler_desc_t *handler)
AXIS2_EXTERN axis2_handler_desc_t * | axis2_flow_get_handler (const axis2_flow_t *flow, const axutil_env_t *env, const int index)
AXIS2_EXTERN int | axis2_flow_get_handler_count (const axis2_flow_t *flow, const axutil_env_t *env)
AXIS2_EXTERN void | axis2_flow_free_void_arg (void *flow, const axutil_env_t *env)

## Detailed Description

flow is a collection of handlers. This struct encapsulates the concept of an execution flow in the engine.

## Typedef Documentation

typedef struct axis2_flow axis2_flow_t

Type name for struct axis2_flow

## Function Documentation

AXIS2_EXTERN axis2_status_t axis2_flow_add_handler | ( | axis2_flow_t * | flow,
|  | const axutil_env_t * | env,
|  | axis2_handler_desc_t * | handler |
| ) |  |  |

Adds a handler description to flow.

Parameters:

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

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_flow_t* axis2_flow_create | ( | const axutil_env_t * | env | ) |

Creates flow struct.

Parameters:

  | env | pointer to environment struct

Returns:
  pointer to newly created flow

AXIS2_EXTERN void axis2_flow_free | ( | axis2_flow_t * | flow,
|  | const axutil_env_t * | env |
| ) |  |  |

Frees flow struct.

Parameters:

  | flow | pointer to flow
  | env | pointer to environment struct

Returns:
  void

AXIS2_EXTERN void axis2_flow_free_void_arg | ( | void * | flow,
|  | const axutil_env_t * | env |
| ) |  |  |

Frees flow passed as void pointer. This method would cast the void pointer to appropriate type and then call free method.

Parameters:

  | flow | pointer to flow
  | env | pointer to environment struct

Returns:
  void

AXIS2_EXTERN axis2_handler_desc_t* axis2_flow_get_handler | ( | const axis2_flow_t * | flow,
|  | const axutil_env_t * | env,
|  | const int | index |
| ) |  |  |

Gets handler description at given index.

Parameters:

  | flow | pointer to flow
  | env | pointer to environment struct
  | index | index of the handler

Returns:
  pointer to handler description

AXIS2_EXTERN int axis2_flow_get_handler_count | ( | const axis2_flow_t * | flow,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets handler count.

Parameters:

  | flow | pointer to flow
  | env | pointer to environment struct

Returns:
  handler count