# soap header
[SOAP]

## Functions
AXIS2_EXTERN axiom_soap_header_t * | axiom_soap_header_create_with_parent (const axutil_env_t *env, struct axiom_soap_envelope *envelope)
AXIS2_EXTERN void | axiom_soap_header_free (axiom_soap_header_t *header, const axutil_env_t *env)
AXIS2_EXTERN struct axiom_soap_header_block * | axiom_soap_header_add_header_block (axiom_soap_header_t *header, const axutil_env_t *env, const axis2_char_t *localname, axiom_namespace_t *ns)
AXIS2_EXTERN axutil_hash_t * | axiom_soap_header_examine_header_blocks (axiom_soap_header_t *header, const axutil_env_t *env, axis2_char_t *param_role)
AXIS2_EXTERN axutil_array_list_t * | axiom_soap_header_get_header_blocks_with_namespace_uri (axiom_soap_header_t *header, const axutil_env_t *env, const axis2_char_t *ns_uri)
AXIS2_EXTERN axiom_children_qname_iterator_t * | axiom_soap_header_examine_all_header_blocks (axiom_soap_header_t *header, const axutil_env_t *env)
AXIS2_EXTERN axiom_children_with_specific_attribute_iterator_t * | axiom_soap_header_extract_header_blocks (axiom_soap_header_t *header, const axutil_env_t *env, axis2_char_t *role)
AXIS2_EXTERN axiom_node_t * | axiom_soap_header_get_base_node (axiom_soap_header_t *header, const axutil_env_t *env)
AXIS2_EXTERN int | axiom_soap_header_get_soap_version (axiom_soap_header_t *header, const axutil_env_t *env)
AXIS2_EXTERN axutil_hash_t * | axiom_soap_header_get_all_header_blocks (axiom_soap_header_t *header, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axiom_soap_header_remove_header_block (axiom_soap_header_t *header, const axutil_env_t *env, axutil_qname_t *qname)

## Function Documentation

AXIS2_EXTERN struct axiom_soap_header_block* axiom_soap_header_add_header_block | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | localname,
|  | axiom_namespace_t * | ns |
| ) |  |  | `[read]`

create a new axiom_soap_header_block_t struct initialized with the specified name and adds it to passed axiom_soap_header_t struct.

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL
  | localName | the localname of the SOAP header block
  | ns | the namespace of the SOAP header block

Returns:
  The newly created axiom_soap_header_block_t struct

AXIS2_EXTERN axiom_children_qname_iterator_t* axiom_soap_header_examine_all_header_blocks | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env |
| ) |  |  |

returns an iterator to iterate through all soap header block's om nodes

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL

Returns:
  axiom_children_qname_iterator_t or null if no header blocks present

AXIS2_EXTERN axutil_hash_t* axiom_soap_header_examine_header_blocks | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env,
|  | axis2_char_t * | param_role |
| ) |  |  |

returns a hash_table of all the soap_header_block_t struct in this soap_header_t object that have the the specified actor. An actor is a global attribute that indicates the intermediate parties to whom the message should be sent. An actor receives the message and then sends it to the next actor. The default actor is the ultimate intended recipient for the message, so if no actor attribute is set in a axiom_soap_header_t struct the message is sent to its ultimate destination.

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL
  | role | the role value for the examination

Returns:
  hash_table of all the soap_header_block_t struct

AXIS2_EXTERN axiom_children_with_specific_attribute_iterator_t* axiom_soap_header_extract_header_blocks | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env,
|  | axis2_char_t * | role |
| ) |  |  |

returns an iterator to iterate through all header blocks om_nodes with the matching role attribute

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL
  | role |

Returns:
  iterator or null if no header blocks present with matching role attribute

AXIS2_EXTERN void axiom_soap_header_free | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env |
| ) |  |  |

Free an axiom_soap_header

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL

Returns:
  satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE

AXIS2_EXTERN axutil_hash_t* axiom_soap_header_get_all_header_blocks | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env |
| ) |  |  |

Get all the SOAP headers

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL

Returns:
  a hash table of all header_blocks in this header the returned hash is a readonly hash should not be modified

AXIS2_EXTERN axiom_node_t* axiom_soap_header_get_base_node | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env |
| ) |  |  |

returns the axiom_node_t struct wrapped in soap_header

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL

Returns:
  the base node of the SOAP header

AXIS2_EXTERN axutil_array_list_t* axiom_soap_header_get_header_blocks_with_namespace_uri | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | ns_uri |
| ) |  |  |

returns an arraylist of header_blocks which has a given namesapce uri

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL
  | ns_uri | namespace uri

Returns:
  pointer to axutil_array_list_t, or null if no header_blocks with given namespace uri exists The returned array_list must be freed by the user.

AXIS2_EXTERN int axiom_soap_header_get_soap_version | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env |
| ) |  |  |

return the soap_version of this soap_header

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL

Returns:
  AXIOM_SOAP11 or AXIOM_SOAP12

AXIS2_EXTERN axis2_status_t axiom_soap_header_remove_header_block | ( | axiom_soap_header_t * | header,
|  | const axutil_env_t * | env,
|  | axutil_qname_t * | qname |
| ) |  |  |

remove header block that matches to the given qname qname should not be null

Parameters:

  | header | pointer to soap_header struct
  | env | Environment. MUST NOT be NULL

Returns:
  status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE