# configuration context
[Context Hierarchy]

## Files
file | axis2_conf_ctx.h
## Typedefs
typedef struct axis2_conf_ctx | axis2_conf_ctx_t
## Functions
AXIS2_EXTERN axis2_conf_ctx_t * | axis2_conf_ctx_create (const axutil_env_t *env, struct axis2_conf *conf)
AXIS2_EXTERN axis2_status_t | axis2_conf_ctx_set_conf (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, struct axis2_conf *conf)
AXIS2_EXTERN axis2_ctx_t * | axis2_conf_ctx_get_base (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)
AXIS2_EXTERN axis2_conf_t * | axis2_conf_ctx_get_conf (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)
AXIS2_EXTERN axutil_hash_t * | axis2_conf_ctx_get_op_ctx_map (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)
AXIS2_EXTERN axutil_hash_t * | axis2_conf_ctx_get_svc_ctx_map (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)
AXIS2_EXTERN axutil_hash_t * | axis2_conf_ctx_get_svc_grp_ctx_map (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_conf_ctx_register_op_ctx (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *message_id, axis2_op_ctx_t *op_ctx)
AXIS2_EXTERN axis2_op_ctx_t * | axis2_conf_ctx_get_op_ctx (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *message_id)
AXIS2_EXTERN axis2_status_t | axis2_conf_ctx_register_svc_ctx (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *svc_id, axis2_svc_ctx_t *svc_ctx)
AXIS2_EXTERN struct axis2_svc_ctx * | axis2_conf_ctx_get_svc_ctx (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *svc_id)
AXIS2_EXTERN axis2_status_t | axis2_conf_ctx_register_svc_grp_ctx (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *svc_grp_id, axis2_svc_grp_ctx_t *svc_grp_ctx)
AXIS2_EXTERN axis2_svc_grp_ctx_t * | axis2_conf_ctx_get_svc_grp_ctx (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *svc_grp_id)
AXIS2_EXTERN const axis2_char_t * | axis2_conf_ctx_get_root_dir (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axis2_conf_ctx_set_root_dir (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *path)
AXIS2_EXTERN axis2_status_t | axis2_conf_ctx_init (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, axis2_conf_t *conf)
AXIS2_EXTERN void | axis2_conf_ctx_free (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)
AXIS2_EXTERN axis2_svc_grp_ctx_t * | axis2_conf_ctx_fill_ctxs (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN axis2_status_t | axis2_conf_ctx_set_property (axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *key, axutil_property_t *value)
AXIS2_EXTERN axutil_property_t * | axis2_conf_ctx_get_property (const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *key)

## Detailed Description

configuration context is the holder for all the state information related to configuration. It holds all the service group context, service context and operation context that exists within an engine instance. An engine instance has only one configuration context associated with it (Singleton pattern).

## Typedef Documentation

typedef struct axis2_conf_ctx axis2_conf_ctx_t

Type name for struct axis2_conf_ctx

## Function Documentation

AXIS2_EXTERN axis2_conf_ctx_t* axis2_conf_ctx_create | ( | const axutil_env_t * | env,
|  | struct axis2_conf * | conf |
| ) |  |  |

Creates a configuration context struct instance.

Parameters:

  | env | pointer to environment struct
  | conf | pointer to configuration, configuration context assumes ownership of the configuration

Returns:
  pointer to newly created configuration context

AXIS2_EXTERN axis2_svc_grp_ctx_t* axis2_conf_ctx_fill_ctxs | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | axis2_msg_ctx_t * | msg_ctx |
| ) |  |  |

This method fills the context hierarchy (service group, service and operation contexts that is) for the service and operation found in the given message context. If the context hierarchy is not already built it will create the contexts and build the context hierarchy.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | msg_ctx | pointer to message context with service and operation for which the context hierarchy is to be built set

Returns:
  pointer to the service group context, which is the root of the context hierarchy for given service and operation

AXIS2_EXTERN void axis2_conf_ctx_free | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env |
| ) |  |  |

Frees configuration context struct.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_ctx_t* axis2_conf_ctx_get_base | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the base struct, which is of type context

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct

Returns:
  pointer to context struct, returns a reference not a cloned copy

AXIS2_EXTERN axis2_conf_t* axis2_conf_ctx_get_conf | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the configuration of the engine.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct

Returns:
  pointer to configuration struct, returns a reference not a cloned copy

AXIS2_EXTERN axis2_op_ctx_t* axis2_conf_ctx_get_op_ctx | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | message_id |
| ) |  |  |

Gets operation context corresponding to the given message ID.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | message_id | message ID related to the operation to be retrieved

Returns:
  pointer to operation context related to the given message ID

AXIS2_EXTERN axutil_hash_t* axis2_conf_ctx_get_op_ctx_map | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the hash map of operation context instances.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct

Returns:
  pointer to hash map containing all operation contexts

AXIS2_EXTERN axutil_property_t* axis2_conf_ctx_get_property | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | key |
| ) |  |  |

Gets the property with the given key.

Parameters:

  | ctx | pointer to context struct
  | env | pointer to environment struct
  | key | key string

Returns:
  pointer to property struct corresponding to the given key

AXIS2_EXTERN const axis2_char_t* axis2_conf_ctx_get_root_dir | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the root working directory. It is in this directory that the axis2.xml configuration file is located. The services and modules sub folders too are located in this directory.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct

Returns:
  pointer to string containing the root folder name

AXIS2_EXTERN struct axis2_svc_ctx* axis2_conf_ctx_get_svc_ctx | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | svc_id |
| ) |  |  | `[read]`

Gets service context with the given service ID

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | svc_id | service ID

Returns:
  pointer to service context with the given service ID

AXIS2_EXTERN axutil_hash_t* axis2_conf_ctx_get_svc_ctx_map | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the hash map of service context instances.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct

Returns:
  pointer to hash map containing all service contexts

AXIS2_EXTERN axis2_svc_grp_ctx_t* axis2_conf_ctx_get_svc_grp_ctx | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | svc_grp_id |
| ) |  |  |

Gets service group with the given service group ID.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | svc_grp_id | service group id

Returns:
  pointer to service group context with the given ID

AXIS2_EXTERN axutil_hash_t* axis2_conf_ctx_get_svc_grp_ctx_map | ( | const axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env |
| ) |  |  |

Gets the hash map of service group context instances.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct

Returns:
  pointer to hash map containing all service group contexts

AXIS2_EXTERN axis2_status_t axis2_conf_ctx_init | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | axis2_conf_t * | conf |
| ) |  |  |

Initializes the configuration context. Within this function, it would initialize all the service group context, service context and operation context instances stored within configuration context.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | conf | pointer to configuration struct

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_conf_ctx_register_op_ctx | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | message_id,
|  | axis2_op_ctx_t * | op_ctx |
| ) |  |  |

Registers an operation context with the given message ID.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | message_id | message id related to the operation context
  | op_ctx | pointer to operation context, conf context assumes ownership of the operation context

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_conf_ctx_register_svc_ctx | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | svc_id,
|  | axis2_svc_ctx_t * | svc_ctx |
| ) |  |  |

Registers a service context with the given service ID.

Parameters:

  | conf_ctx | pointer t configuration context
  | env | pointer to environment struct
  | svc_id | ID of the service to be added
  | svc_ctx | pointer to service context

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_conf_ctx_register_svc_grp_ctx | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | svc_grp_id,
|  | axis2_svc_grp_ctx_t * | svc_grp_ctx |
| ) |  |  |

Registers a service group context with the given service group ID.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | svc_grp_id | service group id
  | svc_grp_ctx | pointer to service group context

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_conf_ctx_set_conf | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | struct axis2_conf * | conf |
| ) |  |  |

Sets the configuration associated with the engine instance.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | conf | pointer to configuration

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_conf_ctx_set_property | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | key,
|  | axutil_property_t * | value |
| ) |  |  |

Sets a property with the given key.

Parameters:

  | ctx | pointer to context struct
  | env | pointer to environment struct
  | key | key string to store the property with
  | value | pointer to property to be stored, context assumes the ownership of the property

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_conf_ctx_set_root_dir | ( | axis2_conf_ctx_t * | conf_ctx,
|  | const axutil_env_t * | env,
|  | const axis2_char_t * | path |
| ) |  |  |

Sets the root working directory. It is in this directory that the axis2.xml configuration file is located. The services and modules sub folders too are located in this directory.

Parameters:

  | conf_ctx | pointer to configuration context
  | env | pointer to environment struct
  | path | string containing the path of root directory

Returns:
  AXIS2_SUCCESS on success, else AXIS2_FAILURE