# dispatcher
[engine]

## Files
file | axis2_disp.h
## Defines
#define | AXIS2_DISP_NAMESPACE "http://axis.ws.apache.org"
## Typedefs
typedef struct axis2_disp | axis2_disp_t
## Functions
AXIS2_EXTERN axis2_handler_t * | axis2_disp_get_base (const axis2_disp_t *disp, const axutil_env_t *env)
AXIS2_EXTERN axutil_string_t * | axis2_disp_get_name (const axis2_disp_t *disp, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_disp_set_name (axis2_disp_t *disp, const axutil_env_t *env, axutil_string_t *name)
AXIS2_EXTERN void | axis2_disp_free (axis2_disp_t *disp, const axutil_env_t *env)
AXIS2_EXTERN axis2_disp_t * | axis2_disp_create (const axutil_env_t *env, const axutil_string_t *name)
axis2_status_t | axis2_disp_find_svc_and_op (struct axis2_handler *handler, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx)
AXIS2_EXTERN axis2_disp_t * | axis2_addr_disp_create (const axutil_env_t *env)
AXIS2_EXTERN axis2_disp_t * | axis2_req_uri_disp_create (const axutil_env_t *env)
AXIS2_EXTERN axis2_disp_t * | axis2_rest_disp_create (const axutil_env_t *env)
AXIS2_EXTERN axis2_disp_t * | axis2_soap_body_disp_create (const axutil_env_t *env)
AXIS2_EXTERN axis2_disp_t * | axis2_soap_action_disp_create (const axutil_env_t *env)

## Detailed Description

dispatcher is responsible for finding the service and operation for a given invocation. A Web service request would contain information that help locate the service and the operation serving the request. This information could be in various formats, and hence the mechanism to find the requested service and operation based on the available information could too vary. Hence there can be various types on dispatches involved in a dispatching phase of the engine, that implements the API given in this header.

## Typedef Documentation

typedef struct axis2_disp axis2_disp_t

Type name for struct axis2_disp

## Function Documentation

AXIS2_EXTERN axis2_disp_t* axis2_addr_disp_create | ( | const axutil_env_t * | env | ) |

Creates a WS-Addressing based dispatcher.

Parameters:

  | env | pointer to environment struct

Returns:
  pointer to the newly created dispatcher with find_svc and find_op methods implemented based on WS-Addressing

AXIS2_EXTERN axis2_disp_t* axis2_disp_create | ( | const axutil_env_t * | env,
|  | const axutil_string_t * | name |
| ) |  |  |

Creates a dispatcher struct instance.

Parameters:

  | env | pointer to environment struct
  | name | pointer to QName. QName is cloned by create method.

Returns:
  pointer to newly created dispatcher

AXIS2_EXTERN void axis2_disp_free | ( | axis2_disp_t * | disp,
|  | const axutil_env_t * | env |
| ) |  |  |

Frees dispatcher struct.

Parameters:

  | disp | pointer to dispatcher
  | env | pointer to environment struct

Returns:
  void

AXIS2_EXTERN axis2_handler_t* axis2_disp_get_base | ( | const axis2_disp_t * | disp,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the base struct which is of type handler.

Parameters:

  | disp | pointer to dispatcher
  | env | pointer to environment struct

Returns:
  pointer to base handler struct. Returns a reference, not a cloned copy

AXIS2_EXTERN axutil_string_t* axis2_disp_get_name | ( | const axis2_disp_t * | disp,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the name of the dispatcher.

Parameters:

  | disp | pointer to dispatcher
  | env | pointer to environment struct

Returns:
  pointer to name. Returns a reference, not a cloned copy

AXIS2_EXTERN axis2_status_t axis2_disp_set_name | ( | axis2_disp_t * | disp,
|  | const axutil_env_t * | env,
|  | axutil_string_t * | name |
| ) |  |  |

Sets the name of the dispatcher.

Parameters:

  | disp | pointer to dispatcher
  | env | pointer to environment struct
  | name | pointer to name, dispatcher assumes ownership of the name struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_disp_t* axis2_req_uri_disp_create | ( | const axutil_env_t * | env | ) |

Creates a request URI based dispatcher.

Parameters:

  | env | pointer to environment struct

Returns:
  pointer to the newly created dispatcher with find_svc and find_op methods implemented based on request URI processing.

AXIS2_EXTERN axis2_disp_t* axis2_rest_disp_create | ( | const axutil_env_t * | env | ) |

Creates a REST based dispatcher.

Parameters:

  | env | pointer to environment struct

Returns:
  pointer to the newly created dispatcher with find_svc and find_op methods implemented based on REST processing.

AXIS2_EXTERN axis2_disp_t* axis2_soap_action_disp_create | ( | const axutil_env_t * | env | ) |

Creates a SOAP action based dispatcher.

Parameters:

  | env | pointer to environment struct

Returns:
  pointer to the newly created dispatcher with find_svc and find_op methods implemented based on SOAP action processing

AXIS2_EXTERN axis2_disp_t* axis2_soap_body_disp_create | ( | const axutil_env_t * | env | ) |

Creates a SOAP body based dispatcher.

Parameters:

  | env | pointer to environment struct

Returns:
  pointer to the newly created dispatcher with find_svc and find_op methods implemented based on SOAP body processing.