# Flow

## Functions
AXIS2_EXTERN axis2_char_t * | axiom_data_handler_get_content_type (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axiom_data_handler_set_content_type (axiom_data_handler_t *data_handler, const axutil_env_t *env, const axis2_char_t *mime_type)
AXIS2_EXTERN axis2_bool_t | axiom_data_handler_get_cached (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN void | axiom_data_handler_set_cached (axiom_data_handler_t *data_handler, const axutil_env_t *env, axis2_bool_t cached)
AXIS2_EXTERN axis2_byte_t * | axiom_data_handler_get_input_stream (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN int | axiom_data_handler_get_input_stream_len (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axiom_data_handler_read_from (axiom_data_handler_t *data_handler, const axutil_env_t *env, axis2_byte_t **output_stream, int *output_stream_size)
AXIS2_EXTERN axis2_status_t | axiom_data_handler_set_binary_data (axiom_data_handler_t *data_handler, const axutil_env_t *env, axis2_byte_t *input_stream, int input_stream_len)
AXIS2_EXTERN axis2_status_t | axiom_data_handler_write_to (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axiom_data_handler_set_file_name (axiom_data_handler_t *data_handler, const axutil_env_t *env, axis2_char_t *file_name)
AXIS2_EXTERN axis2_char_t * | axiom_data_handler_get_file_name (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN void | axiom_data_handler_free (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN axiom_data_handler_t * | axiom_data_handler_create (const axutil_env_t *env, const axis2_char_t *file_name, const axis2_char_t *mime_type)
AXIS2_EXTERN axis2_status_t | axiom_data_handler_add_binary_data (axiom_data_handler_t *data_handler, const axutil_env_t *env, axutil_array_list_t *list)
AXIS2_EXTERN axis2_char_t * | axiom_data_handler_get_mime_id (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axiom_data_handler_set_mime_id (axiom_data_handler_t *data_handler, const axutil_env_t *env, const axis2_char_t *mime_id)
AXIS2_EXTERN axiom_data_handler_type_t | axiom_data_handler_get_data_handler_type (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN void | axiom_data_handler_set_data_handler_type (axiom_data_handler_t *data_handler, const axutil_env_t *env, axiom_data_handler_type_t data_handler_type)
AXIS2_EXTERN void * | axiom_data_handler_get_user_param (axiom_data_handler_t *data_handler, const axutil_env_t *env)
AXIS2_EXTERN void | axiom_data_handler_set_user_param (axiom_data_handler_t *data_handler, const axutil_env_t *env, void *user_param)

## Function Documentation

AXIS2_EXTERN axiom_data_handler_t* axiom_data_handler_create | ( | const axutil_env_t * | env,
|  | const axis2_char_t * | file_name,
|  | const axis2_char_t * | mime_type |
| ) |  |  |

Creates data_handler struct

Returns:
  pointer to newly created data_handler

AXIS2_EXTERN void axiom_data_handler_free | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN axis2_bool_t axiom_data_handler_get_cached | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  bool whether attachment is cached or not

AXIS2_EXTERN axis2_char_t* axiom_data_handler_get_content_type | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN axis2_char_t* axiom_data_handler_get_file_name | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  file name, in the case of file type data handler.

AXIS2_EXTERN axis2_byte_t* axiom_data_handler_get_input_stream | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN int axiom_data_handler_get_input_stream_len | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN axis2_status_t axiom_data_handler_read_from | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env,
|  | axis2_byte_t ** | output_stream,
|  | int * | output_stream_size |
| ) |  |  |

The data_handler is responsible for memory occupied by the stream returned

Parameters:

  | output_stream | parameter to store reference to output byte stream.
  | output_stream_size | parameter to store reference to output byte stream length

AXIS2_EXTERN axis2_status_t axiom_data_handler_set_binary_data | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env,
|  | axis2_byte_t * | input_stream,
|  | int | input_stream_len |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN void axiom_data_handler_set_cached | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env,
|  | axis2_bool_t | cached |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.
  | cached,@return | status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN axis2_status_t axiom_data_handler_set_content_type | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | mime_type |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.
  | mime | type,

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN axis2_status_t axiom_data_handler_set_file_name | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env,
|  | axis2_char_t * | file_name |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN axis2_status_t axiom_data_handler_set_mime_id | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | mime_id |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.
  | mime | id,

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.

AXIS2_EXTERN axis2_status_t axiom_data_handler_write_to | ( | axiom_data_handler_t * | data_handler,
|  | const axutil_env_t * | env |
| ) |  |  |

Parameters:

  | data_handler,a | pointer to data handler struct
  | env | environment, MUST NOT be NULL.

Returns:
  status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.