You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2005/11/25 03:24:04 UTC
svn commit: r348853 [2/2] - in /webservices/axis2/trunk/c:
include/axis2_msg_ctx.h modules/core/context/src/msg_ctx.c
Modified: webservices/axis2/trunk/c/modules/core/context/src/msg_ctx.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/context/src/msg_ctx.c?rev=348853&r1=348852&r2=348853&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/context/src/msg_ctx.c (original)
+++ webservices/axis2/trunk/c/modules/core/context/src/msg_ctx.c Thu Nov 24 18:23:56 2005
@@ -15,65 +15,1858 @@
*/
#include <axis2_msg_ctx.h>
+#include <axis2_operation.h>
+#include <axis2_svc.h>
+#include <axis2_svc_grp.h>
+#include <axis2_engine_config.h>
-typedef struct axis2_msg_ctx_impl_s axis2_msg_ctx_impl_t;
+typedef struct axis2_msg_ctx_impl axis2_msg_ctx_impl_t;
/**
* @brief Message Context struct impl
* Axis2 Message Context impl
*/
-struct axis2_msg_ctx_impl_s
+struct axis2_msg_ctx_impl
{
+ /** message context interface struct */
axis2_msg_ctx_t msg_ctx;
+ /** base context struct */
+ axis2_ctx_t *base;
+ /** parent of message context is an operation context instance */
+ struct axis2_operation_ctx *parent;
+ /** process fault enabled? */
+ axis2_bool_t process_fault;
+ /**
+ * Addressing Information for Axis 2
+ * Following Properties will be kept inside this, these fields will be initially filled by
+ * the transport. Then later an addressing handler will make relevant changes to this, if addressing
+ * information is present in the SOAP header.
+ */
+ /*axis2_msg_info_headers_t *msg_info_headers;*/
+
+ struct axis2_operation_ctx *operation_ctx;
+ struct axis2_svc_ctx *svc_ctx;
+ struct axis2_svc_grp_ctx *svc_grp_ctx;
+ struct axis2_conf_ctx *conf_ctx;
+ /** session context */
+ struct axis2_session_ctx *session_ctx;
+
+ /** operation */
+ axis2_operation_t *operation;
+ /** service */
+ axis2_svc_t *svc;
+ /** service group */
+ axis2_svc_grp_t *svc_grp;
+
+ /*
+ axis2_transport_in_desc_t *transport_in_desc;
+ axis2_transport_out_desc_t *transport_out_desc;
+ */
+ /** SOAP envelope */
+ struct axis2_soap_envelope *soap_envelope;
+ /** response written? */
+ axis2_bool_t response_written;
+ /** in fault flow? */
+ axis2_bool_t in_fault_flow;
+ /** is this server side? */
+ axis2_bool_t server_side;
+ /** message ID */
+ axis2_char_t *message_id;
+ /** new thread required? */
+ axis2_bool_t new_thread_required;
+ /** paused */
+ axis2_bool_t paused;
+ /** output written? */
+ axis2_bool_t output_written;
+ /** service context ID */
+ axis2_char_t *svc_ctx_id;
+ /** paused phase ame */
+ axis2_char_t *paused_phase_name;
+ /** paused handler name */
+ axis2_qname_t *paused_handler_name;
+ /** SOAP action */
+ axis2_char_t *soap_action;
+ /** are we doing MTOM now? */
+ axis2_bool_t doing_mtom;
+ /** are we doing REST now? */
+ axis2_bool_t doing_rest;
+ /** Rest through HTTP POST? */
+ axis2_bool_t do_rest_through_post;
+ /** use SOAP 1.1? */
+ axis2_bool_t is_soap_11;
+ /** service group context id */
+ axis2_char_t *svc_grp_ctx_id;
+ /** qname of transport in */
+ axis2_qname_t *transport_in_desc_qname;
+ /** qname of transport out */
+ axis2_qname_t *transport_out_desc_qname;;
+ /** service group id */
+ axis2_char_t *svc_grp_id;
+ /** service description qname */
+ axis2_qname_t *svc_qname;
+ /** operation qname */
+ axis2_qname_t *operation_qname;
};
#define AXIS2_INTF_TO_IMPL(msg_ctx) ((axis2_msg_ctx_impl_t *) msg_ctx)
/*************************** Function headers *********************************/
+struct axis2_ctx* AXIS2_CALL
+axis2_msg_ctx_get_base(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+struct axis2_operation_ctx* AXIS2_CALL
+axis2_msg_ctx_get_parent(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_parent(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_operation_ctx *parent);
+
axis2_status_t AXIS2_CALL
axis2_msg_ctx_free (axis2_msg_ctx_t *msg_ctx,
- axis2_env_t **env);
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_init(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_engine_config *engine_config);
+/*EndpointReference AXIS2_CALL
+axis2_msg_ctx_get_fault_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+*/
+/*EndpointReference AXIS2_CALL
+axis2_msg_ctx_get_from(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+*/
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_in_fault_flow(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+struct axis2_soap_envelope* AXIS2_CALL
+axis2_msg_ctx_get_soap_envelope(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+/*axis2_char_t* AXIS2_CALL
+axis2_msg_ctx_get_msg_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+*/
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_process_fault(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+/*RelatesTo AXIS2_CALL
+axis2_msg_ctx_get_relates_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+*/
+/*EndpointReference AXIS2_CALL
+axis2_msg_ctx_get_reply_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+*/
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_response_written(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_server_side(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+struct axis2_session_ctx* AXIS2_CALL
+axis2_msg_ctx_get_session_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+/*EndpointReference AXIS2_CALL
+axis2_msg_ctx_get_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+*/
+/*axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_fault_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ EndpointReference reference);
+*/
+/*
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_from(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ EndpointReference reference);
+*/
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_in_fault_flow(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t in_fault_flow);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_envelope(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_soap_envelope *soap_envelope);
+/*axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_message_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *message_id);
+*/
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_process_fault(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t process_fault);
+/*axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_relates_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ RelatesTo reference);
+*/
+/*axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_reply_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ EndpointReference referance);
+*/
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_response_written(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t response_written);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_server_side(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t server_side);
+/*axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ EndpointReference referance);
+*/
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_new_thread_required(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_new_thread_required(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t new_thread_required);
+/*axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_wsa_action(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *action_uri);
+axis2_char_t* AXIS2_CALL
+axis2_msg_ctx_get_wsa_action(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_wsa_message_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *message_id);
+axis2_char_t* AXIS2_CALL
+axis2_msg_ctx_get_wsa_message_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+*/
+
+/*axis2_msg_info_headers_t* AXIS2_CALL
+axis2_msg_ctx_get_msg_info_headers(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+ */
+
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_paused(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_paused(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t paused);
+struct axis2_transport_in_desc* AXIS2_CALL
+axis2_msg_ctx_get_transport_in_desc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+struct axis2_transport_out_desc* AXIS2_CALL
+axis2_msg_ctx_get_transport_out_desc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_transport_in_desc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_transport_in_desc *transport_in_desc);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_transport_out_desc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_transport_out_desc *transport_out_desc);
+struct axis2_operation_ctx* AXIS2_CALL
+axis2_msg_ctx_get_operation_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_operation_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_operation_ctx * operation_ctx);
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_output_written(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_output_written(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t output_written);
+axis2_char_t* AXIS2_CALL
+axis2_msg_ctx_get_svc_ctx_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_svc_ctx_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *svc_ctx_id);
+struct axis2_conf_ctx* AXIS2_CALL
+axis2_msg_ctx_get_conf_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+struct axis2_svc_ctx* AXIS2_CALL
+axis2_msg_ctx_get_svc_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_conf_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_conf_ctx *conf_ctx);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_svc_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_svc_ctx *svc_ctx);
+/*axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_msg_info_headers(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_msg_info_headers_t *msg_info_headers);
+ */
+axis2_param_t* AXIS2_CALL
+axis2_msg_ctx_get_parameter(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_char_t *key);
+axis2_param_t* AXIS2_CALL
+axis2_msg_ctx_get_module_parameter(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *key, axis2_char_t *module_name,
+ axis2_handler_desc_t *handler_desc);
+void* AXIS2_CALL
+axis2_msg_ctx_get_property(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *key, axis2_bool_t persistent);
+axis2_qname_t* AXIS2_CALL
+axis2_msg_ctx_get_paused_handler_name(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_char_t* AXIS2_CALL
+axis2_msg_ctx_get_paused_phase_name(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_paused_phase_name(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *paused_phase_name);
+axis2_char_t* AXIS2_CALL
+axis2_msg_ctx_get_soap_action(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_soap_action(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *soap_action);
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_doing_mtom(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_doing_mtom(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t doing_mtom);
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_doing_rest(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_doing_rest(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t doing_rest);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_do_rest_through_post(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t do_rest_through_post);
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_do_rest_through_post(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_bool_t AXIS2_CALL
+axis2_msg_ctx_get_is_soap_11(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+struct axis2_svc_grp_ctx* AXIS2_CALL
+axis2_msg_ctx_get_svc_grp_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_svc_grp_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_svc_grp_ctx *svc_grp_ctx);
+axis2_operation_t* AXIS2_CALL
+axis2_msg_ctx_get_operation(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_operation(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_operation_t *operation);
+axis2_svc_t* AXIS2_CALL
+axis2_msg_ctx_get_svc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_svc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_svc_t *svc);
+axis2_svc_grp_t* AXIS2_CALL
+axis2_msg_ctx_get_svc_grp(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_svc_grp(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_svc_grp_t *svc_grp);
+axis2_char_t* AXIS2_CALL
+axis2_msg_ctx_get_svc_grp_ctx_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_msg_ctx_set_svc_grp_ctx_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *svc_grp_ctx_id);
-
/************************* End of function headers ****************************/
axis2_msg_ctx_t * AXIS2_CALL
-axis2_msg_ctx_create (axis2_env_t **env)
+axis2_msg_ctx_create (axis2_env_t **env,
+ struct axis2_conf_ctx *conf_ctx,
+ struct axis2_transport_in_desc *transport_in_desc,
+ struct axis2_transport_out_desc *transport_out_desc,
+ struct axis2_session_ctx *session_ctx)
{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
AXIS2_ENV_CHECK(env, NULL);
-
- axis2_msg_ctx_impl_t *msg_ctx_impl = (axis2_msg_ctx_impl_t *) AXIS2_MALLOC (
- (*env)->allocator, sizeof (axis2_msg_ctx_impl_t));
-
- if(NULL == msg_ctx_impl)
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
-
- msg_ctx_impl->msg_ctx.ops = (axis2_msg_ctx_ops_t *) AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_msg_ctx_ops_t));
- if(NULL == msg_ctx_impl->msg_ctx.ops)
- {
- AXIS2_FREE((*env)->allocator, msg_ctx_impl);
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
- }
-
- (msg_ctx_impl->msg_ctx.ops)->free = axis2_msg_ctx_free;
-
- return &(msg_ctx_impl->msg_ctx);
+
+ msg_ctx_impl = AXIS2_MALLOC( (*env)->allocator, sizeof(axis2_msg_ctx_impl_t) );
+ if (!msg_ctx_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ msg_ctx_impl->msg_ctx.ops = NULL;
+ msg_ctx_impl->base = NULL;
+ msg_ctx_impl->process_fault = AXIS2_FALSE;
+ /*msg_ctx_impl->msg_info_headers = NULL;*/
+ msg_ctx_impl->operation_ctx = NULL;
+ msg_ctx_impl->svc_ctx = NULL;
+ msg_ctx_impl->svc_grp_ctx = NULL;
+ msg_ctx_impl->conf_ctx = NULL;
+ msg_ctx_impl->session_ctx = NULL;
+ msg_ctx_impl->operation = NULL;
+ msg_ctx_impl->svc = NULL;
+ msg_ctx_impl->svc_grp = NULL;
+ /*msg_ctx_impl->transport_in_desc = NULL;
+ msg_ctx_impl->transport_out_desc = NULL;*/
+ msg_ctx_impl->soap_envelope = NULL;
+ msg_ctx_impl->response_written = AXIS2_FALSE;
+ msg_ctx_impl->in_fault_flow = AXIS2_FALSE;
+ msg_ctx_impl->server_side = AXIS2_FALSE;
+ msg_ctx_impl->message_id = NULL;
+ msg_ctx_impl->new_thread_required = AXIS2_FALSE;
+ msg_ctx_impl->paused = AXIS2_FALSE;
+ msg_ctx_impl->output_written = AXIS2_FALSE;
+ msg_ctx_impl->svc_ctx_id = NULL;
+ msg_ctx_impl->paused_phase_name = NULL;
+ msg_ctx_impl->paused_handler_name = NULL;
+ msg_ctx_impl->soap_action = NULL;
+ msg_ctx_impl->doing_mtom = AXIS2_FALSE;
+ msg_ctx_impl->doing_rest = AXIS2_FALSE;
+ msg_ctx_impl->do_rest_through_post = AXIS2_TRUE;
+ msg_ctx_impl->is_soap_11 = AXIS2_TRUE;
+ msg_ctx_impl->svc_grp_ctx_id = NULL;
+ msg_ctx_impl->transport_in_desc_qname = NULL;
+ msg_ctx_impl->transport_out_desc_qname = NULL;
+ msg_ctx_impl->svc_grp_id = NULL;
+ msg_ctx_impl->svc_qname = NULL;
+ msg_ctx_impl->operation_qname = NULL;
+
+ msg_ctx_impl->base = axis2_ctx_create(env);
+ if (!(msg_ctx_impl->base))
+ {
+ axis2_msg_ctx_free(&(msg_ctx_impl->msg_ctx), env);
+ return NULL;
+ }
+
+ /*if (transport_in_desc)
+ msg_ctx_impl->transport_in_desc = transport_in_desc;
+ if (transport_out_desc)
+ msg_ctx_impl->transport_out_desc = transport_out_desc;*/
+ if (conf_ctx)
+ msg_ctx_impl->conf_ctx = conf_ctx;
+
+ /*if (msg_ctx_impl->transport_in_desc)
+ msg_ctx_impl->transport_in_desc_qname = AXIS2_TRANSPORT_IN_GET_QNAME(transport_in_desc, env);
+ if (msg_ctx_impl->transport_out_desc)
+ msg_ctx_impl->transport_out_desc_qname = AXIS2_TRANSPORT_OUT_GET_QNAME(transport_out_desc, env);*/
+
+ if (session_ctx)
+ {
+ msg_ctx_impl->session_ctx = session_ctx;
+ }
+ else
+ {
+ /*msg_ctx_impl->session_ctx = axis2_session_ctx_create(env);
+ if (!(msg_ctx_impl->session_ctx))
+ {
+ axis2_msg_ctx_free(&(msg_ctx_impl->msg_ctx), env);
+ return NULL;
+ }*/
+ }
+
+ /*msg_ctx_impl->msg_info_headers = axis2_msg_info_headers_create(env);
+ if (!(msg_ctx_impl->msg_info_headers))
+ {
+ axis2_msg_ctx_free(&(msg_ctx_impl->msg_ctx), env);
+ return NULL;
+ }*/
+
+ /* initialize operations */
+ msg_ctx_impl->msg_ctx.ops = AXIS2_MALLOC( (*env)->allocator, sizeof(axis2_msg_ctx_ops_t) );
+ if (!msg_ctx_impl->msg_ctx.ops)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ axis2_msg_ctx_free(&(msg_ctx_impl->msg_ctx), env);
+ return NULL;
+ }
+
+ msg_ctx_impl->msg_ctx.ops->get_base = axis2_msg_ctx_get_base;
+ msg_ctx_impl->msg_ctx.ops->get_parent = axis2_msg_ctx_get_parent;
+ msg_ctx_impl->msg_ctx.ops->set_parent = axis2_msg_ctx_set_parent;
+ msg_ctx_impl->msg_ctx.ops->free = axis2_msg_ctx_free;
+ msg_ctx_impl->msg_ctx.ops->init = axis2_msg_ctx_init;
+/*
+ msg_ctx_impl->msg_ctx.ops->get_fault_to = axis2_msg_ctx_get_fault_to;
+ msg_ctx_impl->msg_ctx.ops->get_from = axis2_msg_ctx_get_from;
+*/
+ msg_ctx_impl->msg_ctx.ops->get_in_fault_flow = axis2_msg_ctx_get_in_fault_flow;
+ msg_ctx_impl->msg_ctx.ops->get_soap_envelope = axis2_msg_ctx_get_soap_envelope;
+/*
+ msg_ctx_impl->msg_ctx.ops->get_msg_id = axis2_msg_ctx_get_msg_id;
+*/
+ msg_ctx_impl->msg_ctx.ops->get_process_fault = axis2_msg_ctx_get_process_fault;
+
+/*
+ msg_ctx_impl->msg_ctx.ops->get_relates_to = axis2_msg_ctx_get_relates_to;
+*/
+/*
+ msg_ctx_impl->msg_ctx.ops->get_reply_to = axis2_msg_ctx_get_reply_to;
+*/
+ msg_ctx_impl->msg_ctx.ops->get_response_written = axis2_msg_ctx_get_response_written;
+ msg_ctx_impl->msg_ctx.ops->get_server_side = axis2_msg_ctx_get_server_side;
+ msg_ctx_impl->msg_ctx.ops->get_session_ctx = axis2_msg_ctx_get_session_ctx;
+/*
+ msg_ctx_impl->msg_ctx.ops->get_to = axis2_msg_ctx_get_to;
+*/
+/*
+ msg_ctx_impl->msg_ctx.ops->set_fault_to = axis2_msg_ctx_set_fault_to;
+*/
+/*
+ msg_ctx_impl->msg_ctx.ops->set_from = axis2_msg_ctx_set_from;
+*/
+ msg_ctx_impl->msg_ctx.ops->set_in_fault_flow = axis2_msg_ctx_set_in_fault_flow;
+ msg_ctx_impl->msg_ctx.ops->set_envelope = axis2_msg_ctx_set_envelope;
+/*
+ msg_ctx_impl->msg_ctx.ops->set_message_id = axis2_msg_ctx_set_message_id;
+*/
+ msg_ctx_impl->msg_ctx.ops->set_process_fault = axis2_msg_ctx_set_process_fault;
+
+/*
+ msg_ctx_impl->msg_ctx.ops->set_relates_to = axis2_msg_ctx_set_relates_to;
+*/
+/*
+ msg_ctx_impl->msg_ctx.ops->set_reply_to = axis2_msg_ctx_set_reply_to;
+*/
+ msg_ctx_impl->msg_ctx.ops->set_response_written = axis2_msg_ctx_set_response_written;
+ msg_ctx_impl->msg_ctx.ops->set_server_side = axis2_msg_ctx_set_server_side;
+/*
+ msg_ctx_impl->msg_ctx.ops->set_to = axis2_msg_ctx_set_to;
+*/
+ msg_ctx_impl->msg_ctx.ops->get_new_thread_required = axis2_msg_ctx_get_new_thread_required;
+ msg_ctx_impl->msg_ctx.ops->set_new_thread_required = axis2_msg_ctx_set_new_thread_required;
+/*
+ msg_ctx_impl->msg_ctx.ops->set_wsa_action = axis2_msg_ctx_set_wsa_action;
+ msg_ctx_impl->msg_ctx.ops->get_wsa_action = axis2_msg_ctx_get_wsa_action;
+ msg_ctx_impl->msg_ctx.ops->set_wsa_message_id = axis2_msg_ctx_set_wsa_message_id;
+ msg_ctx_impl->msg_ctx.ops->get_wsa_message_id = axis2_msg_ctx_get_wsa_message_id;
+*/
+ /*msg_ctx_impl->msg_ctx.ops->get_msg_info_headers = axis2_msg_ctx_get_msg_info_headers;*/
+ msg_ctx_impl->msg_ctx.ops->get_paused = axis2_msg_ctx_get_paused;
+ msg_ctx_impl->msg_ctx.ops->set_paused = axis2_msg_ctx_set_paused;
+ msg_ctx_impl->msg_ctx.ops->get_transport_in_desc = axis2_msg_ctx_get_transport_in_desc;
+ msg_ctx_impl->msg_ctx.ops->get_transport_out_desc = axis2_msg_ctx_get_transport_out_desc;
+ msg_ctx_impl->msg_ctx.ops->set_transport_in_desc = axis2_msg_ctx_set_transport_in_desc;
+ msg_ctx_impl->msg_ctx.ops->set_transport_out_desc = axis2_msg_ctx_set_transport_out_desc;
+ msg_ctx_impl->msg_ctx.ops->get_operation_ctx = axis2_msg_ctx_get_operation_ctx;
+ msg_ctx_impl->msg_ctx.ops->set_operation_ctx = axis2_msg_ctx_set_operation_ctx;
+ msg_ctx_impl->msg_ctx.ops->get_output_written = axis2_msg_ctx_get_output_written;
+ msg_ctx_impl->msg_ctx.ops->set_output_written = axis2_msg_ctx_set_output_written;
+ msg_ctx_impl->msg_ctx.ops->get_svc_ctx_id = axis2_msg_ctx_get_svc_ctx_id;
+ msg_ctx_impl->msg_ctx.ops->set_svc_ctx_id = axis2_msg_ctx_set_svc_ctx_id;
+ msg_ctx_impl->msg_ctx.ops->get_conf_ctx = axis2_msg_ctx_get_conf_ctx;
+ msg_ctx_impl->msg_ctx.ops->get_svc_ctx = axis2_msg_ctx_get_svc_ctx;
+ msg_ctx_impl->msg_ctx.ops->set_conf_ctx = axis2_msg_ctx_set_conf_ctx;
+ msg_ctx_impl->msg_ctx.ops->set_svc_ctx = axis2_msg_ctx_set_svc_ctx;
+ /*msg_ctx_impl->msg_ctx.ops->set_msg_info_headers = axis2_msg_ctx_set_msg_info_headers;*/
+ msg_ctx_impl->msg_ctx.ops->get_parameter = axis2_msg_ctx_get_parameter;
+ msg_ctx_impl->msg_ctx.ops->get_module_parameter = axis2_msg_ctx_get_module_parameter;
+ msg_ctx_impl->msg_ctx.ops->get_property = axis2_msg_ctx_get_property;
+ msg_ctx_impl->msg_ctx.ops->get_paused_handler_name = axis2_msg_ctx_get_paused_handler_name;
+ msg_ctx_impl->msg_ctx.ops->get_paused_phase_name = axis2_msg_ctx_get_paused_phase_name;
+ msg_ctx_impl->msg_ctx.ops->set_paused_phase_name = axis2_msg_ctx_set_paused_phase_name;
+ msg_ctx_impl->msg_ctx.ops->get_soap_action = axis2_msg_ctx_get_soap_action;
+ msg_ctx_impl->msg_ctx.ops->set_soap_action = axis2_msg_ctx_set_soap_action;
+ msg_ctx_impl->msg_ctx.ops->get_doing_mtom = axis2_msg_ctx_get_doing_mtom;
+ msg_ctx_impl->msg_ctx.ops->set_doing_mtom = axis2_msg_ctx_set_doing_mtom;
+ msg_ctx_impl->msg_ctx.ops->get_doing_rest = axis2_msg_ctx_get_doing_rest;
+ msg_ctx_impl->msg_ctx.ops->set_doing_rest = axis2_msg_ctx_set_doing_rest;
+ msg_ctx_impl->msg_ctx.ops->set_do_rest_through_post = axis2_msg_ctx_set_do_rest_through_post;
+ msg_ctx_impl->msg_ctx.ops->get_do_rest_through_post = axis2_msg_ctx_get_do_rest_through_post;
+ msg_ctx_impl->msg_ctx.ops->get_is_soap_11 = axis2_msg_ctx_get_is_soap_11;
+ msg_ctx_impl->msg_ctx.ops->get_svc_grp_ctx = axis2_msg_ctx_get_svc_grp_ctx;
+ msg_ctx_impl->msg_ctx.ops->set_svc_grp_ctx = axis2_msg_ctx_set_svc_grp_ctx;
+ msg_ctx_impl->msg_ctx.ops->get_operation = axis2_msg_ctx_get_operation;
+ msg_ctx_impl->msg_ctx.ops->set_operation = axis2_msg_ctx_set_operation;
+ msg_ctx_impl->msg_ctx.ops->get_svc = axis2_msg_ctx_get_svc;
+ msg_ctx_impl->msg_ctx.ops->set_svc = axis2_msg_ctx_set_svc;
+ msg_ctx_impl->msg_ctx.ops->get_svc_grp = axis2_msg_ctx_get_svc_grp;
+ msg_ctx_impl->msg_ctx.ops->set_svc_grp = axis2_msg_ctx_set_svc_grp;
+ msg_ctx_impl->msg_ctx.ops->get_svc_grp_ctx_id = axis2_msg_ctx_get_svc_grp_ctx_id;
+ msg_ctx_impl->msg_ctx.ops->set_svc_grp_ctx_id = axis2_msg_ctx_set_svc_grp_ctx_id;
+
+ return &(msg_ctx_impl->msg_ctx);
}
/******************************************************************************/
+struct axis2_ctx* AXIS2_CALL axis2_msg_ctx_get_base(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->base;
+}
+
+
+struct axis2_operation_ctx * AXIS2_CALL axis2_msg_ctx_get_parent(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->parent;
+}
+
+/**
+ * @param context
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_parent(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, struct axis2_operation_ctx *parent)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ if (parent)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->parent = parent;
+ }
+
+ return AXIS2_SUCCESS;
+}
axis2_status_t AXIS2_CALL
axis2_msg_ctx_free (axis2_msg_ctx_t *msg_ctx,
axis2_env_t **env)
{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ if(msg_ctx_impl->msg_ctx.ops)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->msg_ctx.ops);
+ msg_ctx_impl->msg_ctx.ops = NULL;
+ }
+
+ if (msg_ctx_impl->base)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->base);
+ msg_ctx_impl->base = NULL;
+ }
+
+ /*if (msg_ctx_impl->msg_info_headers)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->msg_info_headers);
+ msg_ctx_impl->msg_info_headers = NULL;
+ }*/
+
+ if (msg_ctx_impl->message_id)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->message_id);
+ msg_ctx_impl->message_id = NULL;
+ }
+
+ if (msg_ctx_impl->svc_ctx_id)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->svc_ctx_id);
+ msg_ctx_impl->svc_ctx_id = NULL;
+ }
+
+ if (msg_ctx_impl->paused_phase_name)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->paused_phase_name);
+ msg_ctx_impl->paused_phase_name = NULL;
+ }
+
+ if (msg_ctx_impl->soap_action)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->soap_action);
+ msg_ctx_impl->soap_action = NULL;
+ }
+
+ if (msg_ctx_impl->svc_grp_ctx_id)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->svc_grp_ctx_id);
+ msg_ctx_impl->svc_grp_ctx_id = NULL;
+ }
+
+ if (msg_ctx_impl->svc_grp_id)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->svc_grp_id);
+ msg_ctx_impl->svc_grp_id = NULL;
+ }
+
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl);
+
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * The method is used to do the intialization of the EngineContext
+ *
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_init(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_engine_config *engine_config)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, engine_config, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ /*if (msg_ctx_impl->transport_in_desc_qname)
+ {
+ msg_ctx_impl->transport_in_desc = AXIS2_ENGINE_CONFIG_GET_TRANSPORT_IN(engine_config, env, msg_ctx_impl->transport_in_desc_qname);
+ }*/
+
+ /*if (msg_ctx_impl->transport_out_desc_qname)
+ {
+ msg_ctx_impl->transport_out_desc = AXIS2_ENGINE_CONFIG_GET_TRANSPORT_IN(engine_config, env, msg_ctx_impl->transport_out_desc_qname);
+ }*/
+
+ if (msg_ctx_impl->svc_grp_id)
+ {
+ /*msg_ctx_impl->svc_grp = AXIS2_ENGINE_CONFIG_GET_SVC_GRP(engine_config, env, msg_ctx_impl->svc_grp_id);*/
+ }
+
+ if (msg_ctx_impl->svc_qname)
+ {
+ /*msg_ctx_impl->svc = AXIS2_ENGINE_CONFIG_GET_SVC(engine_config, env, AXIS2_QNAME_GET_LOCALPART(msg_ctx_impl->svc_qname, env));*/
+ }
+
+ if (msg_ctx_impl->operation_qname)
+ {
+ /*if (msg_ctx_impl->svc)
+ msg_ctx_impl->operation = AXIS2_SVC_GET_OPERATION_WITH_QNAME(msg_ctx_impl->svc, env, msg_ctx_impl->operation_qname);*/
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @return
+ */
+/*EndpointReference AXIS2_CALL axis2_msg_ctx_get_fault_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env) {
+ return msg_info_headersgetFaultTo();
+}
+*/
+
+/**
+ * @return
+ */
+/*EndpointReference AXIS2_CALL axis2_msg_ctx_get_from(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ return msg_info_headersgetFrom();
+}
+*/
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_in_fault_flow(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->in_fault_flow;
+}
+
+/**
+ * @return
+ */
+struct axis2_soap_envelope *AXIS2_CALL axis2_msg_ctx_get_soap_envelope(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->soap_envelope;
+}
+
+/**
+ * @return
+ */
+/*axis2_char_t *AXIS2_CALL axis2_msg_ctx_get_msg_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->msg_info_headers.getMessageId();
+}
+*/
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_process_fault(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->process_fault;
+}
+
+/**
+ * @return
+ */
+/*RelatesTo AXIS2_CALL axis2_msg_ctx_get_relates_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env) {
+ return msg_info_headersgetRelatesTo();
+}
+*/
+
+/**
+ * @return
+ */
+/*EndpointReference AXIS2_CALL axis2_msg_ctx_get_reply_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env) {
+ return msg_info_headersgetReplyTo();
+}
+*/
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_response_written(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->response_written;
+}
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_server_side(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->server_side;
+}
+
+/**
+ * @return
+ */
+struct axis2_session_ctx * AXIS2_CALL axis2_msg_ctx_get_session_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->session_ctx;
+}
+
+/**
+ * @return
+ */
+/*EndpointReference AXIS2_CALL axis2_msg_ctx_get_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->msg_info_headers.getTo();
+}
+*/
+
+/**
+ * @param reference
+ */
+/*axis2_status_t AXIS2_CALL axis2_msg_ctx_set_fault_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, EndpointReference reference) {
+ msg_info_headers.setFaultTo(reference);
+}
+*/
+
+/**
+ * @param reference
+ */
+/*
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_from(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, EndpointReference reference) {
+ msg_info_headers.setFrom(reference);
+}
+*/
+
+/**
+ * @param b
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_in_fault_flow(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t in_fault_flow)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->in_fault_flow = in_fault_flow;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @param soap_envelope
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_envelope(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, struct axis2_soap_envelope *soap_envelope)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ if (soap_envelope)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->soap_envelope = soap_envelope ;
+ /*
+ axis2_char_t *soapNamespaceURI = soap_envelopegetNamespace()getName();
+ if (SOAP12Constants
+ .SOAP_ENVELOPE_NAMESPACE_URI
+ .equals(soapNamespaceURI))
+ {
+ is_soap_11 = AXIS2_FALSE;
+ }
+ else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(
+ soapNamespaceURI))
+ {
+ is_soap_11 = AXIS2_TRUE;
+ }
+ else
+ {
+ // set error
+ }
+ */
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @param string
+ */
+/*axis2_status_t AXIS2_CALL axis2_msg_ctx_set_message_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_char_t *message_id)
+{
+ msg_info_headers.setMessageId(message_id);
+}
+*/
+
+/**
+ * @param b
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_process_fault(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t process_fault)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->process_fault = process_fault;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @param reference
+ */
+/*axis2_status_t AXIS2_CALL axis2_msg_ctx_set_relates_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, RelatesTo reference)
+{
+ msg_info_headers.setRelatesTo(reference);
+}
+*/
+
+/**
+ * @param referance
+ */
+/*axis2_status_t AXIS2_CALL axis2_msg_ctx_set_reply_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, EndpointReference referance) {
+ msg_info_headers.setReplyTo(referance);
+}
+*/
+
+/**
+ * @param b
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_response_written(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t response_written )
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->response_written = response_written ;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @param b
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_server_side(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t server_side)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->server_side = server_side;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @param referance
+ */
+/*axis2_status_t AXIS2_CALL axis2_msg_ctx_set_to(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, EndpointReference referance)
+{
+ msg_info_headers.set_to(referance);
+}
+*/
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_new_thread_required(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->new_thread_required;
+}
+
+/**
+ * @param b
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_new_thread_required(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t new_thread_required)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->new_thread_required = new_thread_required;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * Method AXIS2_CALL axis2_msg_ctx_getExecutionChain
+ */
+
+/*axis2_status_t AXIS2_CALL axis2_msg_ctx_set_wsa_action(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_char_t *action_uri)
+{
+ msg_info_headerssetAction(action_uri);
+}
+
+axis2_char_t *AXIS2_CALL axis2_msg_ctx_get_wsa_action(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->msg_info_headers.getAction();
+}
+
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_wsa_message_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_char_t *message_id)
+{
+ msg_info_headerssetMessageId(message_id);
+}
+
+axis2_char_t *AXIS2_CALL axis2_msg_ctx_get_wsa_message_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->msg_info_headers.getMessageId();
+}
+*/
+
+/*axis2_msg_info_headers_t *AXIS2_CALL axis2_msg_ctx_get_msg_info_headers(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->msg_info_headers;
+}
+*/
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_paused(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->paused;
+}
+
+/**
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_paused(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t paused)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->paused = paused;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @return
+ */
+struct axis2_transport_in_desc * AXIS2_CALL axis2_msg_ctx_get_transport_in_desc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return NULL;/*AXIS2_INTF_TO_IMPL(msg_ctx)->transport_in_desc;*/
+}
+
+/**
+ * @return
+ */
+struct axis2_transport_out_desc * AXIS2_CALL axis2_msg_ctx_get_transport_out_desc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return NULL; /*AXIS2_INTF_TO_IMPL(msg_ctx)->transport_out_desc;*/
+}
+
+/**
+ * @param in
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_transport_in_desc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, struct axis2_transport_in_desc *transport_in_desc)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ /*if (transport_in_desc)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->transport_in_desc = transport_in_desc;
+ AXIS2_INTF_TO_IMPL(msg_ctx)->transport_in_desc_qname = AXIS2_TRANSPORT_IN_GET_QNAME(transport_in_desc, env);
+ }*/
+
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @param out
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_transport_out_desc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, struct axis2_transport_out_desc *transport_out_desc)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ /*if (transport_out_desc)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->transport_out_desc = transport_out_desc;
+ AXIS2_INTF_TO_IMPL(msg_ctx)->transport_out_desc_qname = AXIS2_TRANSPORT_OUT_GET_QNAME(transport_out_desc, env);
+ }*/
+
+ return AXIS2_SUCCESS;
+}
+
+struct axis2_operation_ctx * AXIS2_CALL axis2_msg_ctx_get_operation_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->operation_ctx;
+}
+
+/**
+ * @param context
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_operation_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, struct axis2_operation_ctx * operation_ctx)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ if (operation_ctx)
+ {
+ msg_ctx_impl->operation_ctx = operation_ctx;
+
+ if (msg_ctx_impl->svc_ctx)
+ {
+ /*if (!(AXIS2_OPERATION_CTX_GET_PARENT(msg_ctx_impl->operation_ctx, env)))
+ {
+ AXIS2_OPERATION_CTX_SET_PARENT(msg_ctx_impl->operation_ctx, env, msg_ctx_impl->svc_ctx);
+ }*/
+ }
+ axis2_msg_ctx_set_parent(msg_ctx, env, operation_ctx);
+ /*axis2_msg_ctx_set_operation(msg_ctx, env, AXIS2_OPERATION_CTX_GET_OPRATION(operation_ctx, env)); */
+ }
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_output_written(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->output_written;
+}
+
+/**
+ * @param b
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_output_written(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t output_written)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->output_written = output_written;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @return Returns the svc_ctx_id.
+ */
+axis2_char_t *AXIS2_CALL axis2_msg_ctx_get_svc_ctx_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->svc_ctx_id;
+}
+
+/**
+ * @param svc_ctx_id The svc_ctx_id to AXIS2_CALL axis2_msg_ctx_set.
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_svc_ctx_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *svc_ctx_id)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ if (msg_ctx_impl->svc_ctx_id)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->svc_ctx_id);
+ msg_ctx_impl->svc_ctx_id = NULL;
+ }
+
+ if (svc_ctx_id)
+ {
+ msg_ctx_impl->svc_ctx_id = AXIS2_STRDUP(svc_ctx_id, env);
+ if (!(msg_ctx_impl->svc_ctx_id))
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+ }
+ return AXIS2_SUCCESS;
+}
+
+struct axis2_conf_ctx *AXIS2_CALL axis2_msg_ctx_get_conf_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->conf_ctx;
+}
+
+/**
+ * @return
+ */
+struct axis2_svc_ctx *AXIS2_CALL axis2_msg_ctx_get_svc_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->svc_ctx;
+}
+
+/**
+ * @param context
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_conf_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_conf_ctx *conf_ctx)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ if (conf_ctx)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->conf_ctx = conf_ctx;
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @param context
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_svc_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ struct axis2_svc_ctx *svc_ctx)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ if (svc_ctx)
+ {
+ msg_ctx_impl->svc_ctx = svc_ctx;
+
+ if(msg_ctx_impl->operation_ctx)
+ {
+ /*if (!AXIS2_OPERATION_CTX_GET_PARENT(msg_ctx_impl->operation_ctx, env))
+ AXIS2_OPERATION_CTX_SET_PARENT(msg_ctx_impl->operation_ctx, env, svc_ctx);*/
+ }
+ /*set_svc(msg_ctx, env, AXIS2_SVC_CTX_GET_SVC(svc_ctx, env);*/
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @param collection
+ */
+/*axis2_status_t AXIS2_CALL axis2_msg_ctx_set_msg_info_headers(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_msg_info_headers_t *msg_info_headers)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ if (msg_info_headers)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->msg_info_headers = msg_info_headers;
+ }
+
+ return AXIS2_SUCCESS;
+}
+*/
+
+/**
+ * To retrive configuration descriptor parameters , it is posible to AXIS2_CALL axis2_msg_ctx_get paramater specify at
+ * any levle via this method , and the preferance is as follows,
+ * 1. Search in operation description if its there
+ * 2. if the paramter not found or operation_ctx is null will search in
+ * _svc
+ * 3. If the svc is null or , the paramter does not found will serach in
+ * AxisConfiguration
+ *
+ * @param key
+ * @return Paramter <code>Paramter</code>
+ */
+axis2_param_t *AXIS2_CALL axis2_msg_ctx_get_parameter(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_char_t *key)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+ axis2_param_t *param = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ if (msg_ctx_impl->operation)
+ {
+ /*param = AXIS2_OPERATION_GET_PARAM(msg_ctx_impl->operation, env, key);*/
+ if (param)
+ {
+ return param;
+ }
+ }
+
+ if (msg_ctx_impl->svc)
+ {
+ param = AXIS2_SVC_GET_PARAM(msg_ctx_impl->svc, env, key);
+ if (param)
+ {
+ return param;
+ }
+ }
+
+ if (msg_ctx_impl->svc_grp)
+ {
+ param = AXIS2_SVC_GRP_GET_PARAM(msg_ctx_impl->svc_grp, env, key);
+ if (param)
+ {
+ return param;
+ }
+ }
+
+ if (msg_ctx_impl->conf_ctx)
+ {
+ /*axis2_engine_config_t *engine_config = AXIS2_CONFIG_CTX_GET_CONFIG(msg_ctx_impl->conf_ctx, env);
+ param = AXIS2_ENGINE_CONFIG_GET_PARAM(engine_config, env, key);*/
+ }
+
+ return param;
+}
+
+
+/**
+ * This method is to retrive both module configuration parameters and othere paramerts
+ * The searching procedure is as follows;
+ * 1. Search in module configurations inside corresponding operation descripton if its three
+ * 2. Search in corresponding operation if its there
+ * 3. Search in module configurations inside corresponding service description if its there
+ * 4. Next search in Corresponding Service description if its there
+ * 5. Next sercah in module configurations inside engine_config
+ * 6. Search in axis2_engine_config_t *for paramters
+ * 7. Next AXIS2_CALL axis2_msg_ctx_get the corresponding module and search for the paramters
+ * 8. Search in axis2_handler_desc_t *for the paramter
+ * <p/>
+ * and the way of specifing mdoule configuration is as follows
+ * <moduleConfig name="addressing">
+ * <parameter name="addressingPara" locked="false">N/A</parameter>
+ * </moduleConfig>
+ *
+ * @param key : Paramtre Name
+ * @param module_name : Name of the module
+ * @param handler_desc <code>HandlerDescription</code>
+ * @return axis2_param_t *<code>Parameter</code>
+ */
+axis2_param_t * AXIS2_CALL axis2_msg_ctx_get_module_parameter(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *key, axis2_char_t *module_name,
+ axis2_handler_desc_t *handler_desc)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+ axis2_param_t *param = NULL;
+ /*axis2_module_config_t *module_config = NULL;*/
+ /*axis2_module_t *module = NULL;*/
+ axis2_qname_t *qname = NULL;
+ axis2_engine_config_t *engine_config = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, module_name, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ qname = axis2_qname_create(env, module_name, NULL, NULL);
+
+ if (msg_ctx_impl->operation)
+ {
+ /*module_config = AXIS2_OPERATION_GET_MODULE_CONFIG(msg_ctx_impl->operation, env, qname);*/
+ AXIS2_QNAME_FREE(qname, env);
+ /*if (module_config)
+ {
+ param = AXIS2_MODULE_CONFIG_GET_PARAM(module_config, env, key);
+ if (param)
+ {
+ return param;
+ }
+ else
+ {
+ param = AXIS2_OPERATION_GET_PARAM(msg_ctx_impl->operation, env, key);
+ if (param)
+ {
+ return param;
+ }
+ }
+ }*/
+ }
+
+ if (msg_ctx_impl->svc)
+ {
+ /*module_config = AXIS2_SVC_GET_MODULE_CONFIG(msg_ctx_impl->svc, env, qname);*/
+ AXIS2_QNAME_FREE(qname, env);
+ /*if (module_config)
+ {
+ param = AXIS2_MODULE_CONFIG_GET_PARAM(module_config, env, key);
+ if (param)
+ {
+ return param;
+ }
+ else
+ {
+ param = AXIS2_SVC_GET_PARAM(msg_ctx_impl->svc, env, key);
+ if (param)
+ {
+ return param;
+ }
+ }
+ }*/
+ }
+
+ if (msg_ctx_impl->svc_grp)
+ {
+ /*module_config = AXIS2_SVC_GRP_GET_MODULE_CONFIG(msg_ctx_impl->svc_grp, env, qname);*/
+ AXIS2_QNAME_FREE(qname, env);
+ /*if (module_config)
+ {
+ param = AXIS2_MODULE_CONFIG_GET_PARAM(module_config, env, key);
+ if (param)
+ {
+ return param;
+ }
+ else
+ {
+ param = AXIS2_SVC_GRP_GET_PARAM(msg_ctx_impl->svc_grp, env, key);
+ if (param)
+ {
+ return param;
+ }
+ }
+ }*/
+ }
+
+ /*engine_config = AXIS2_CONFIG_CTX_GET_CONFIG(msg_ctx_impl->conf_ctx, env);*/
+ if (engine_config)
+ {
+ /*module_config = AXIS2_ENGINE_CONFIG_GET_MODULE_CONFIG(engine_config, env, qname);*/
+ AXIS2_QNAME_FREE(qname, env);
+ }
+
+ /*if (module_config)
+ {
+ param = AXIS2_MODULE_CONFIG_GET_PARAM(module_config, env, key);
+ if (param)
+ {
+ return param;
+ }
+ else
+ {
+ param = AXIS2_ENGINE_CONFIG_GET_PARAM(engine_config, env, key);
+ if (param)
+ {
+ return param;
+ }
+ }
+ }*/
+
+ if (engine_config)
+ {
+ /*module = AXIS2_ENGINE_CONFIG_GET_MODULE(engine_config, env, qname);*/
+ AXIS2_QNAME_FREE(qname, env);
+ }
+
+ /*if (module)
+ {
+ param = AXIS2_MODULE_GET_PARAM(module, env, key);
+ if (param)
+ {
+ return param;
+ }
+ }*/
+
+ param = AXIS2_HANDLER_DESC_GET_PARAM(handler_desc, env, key);
+
+ return param;
+}
+
+/* (non-Javadoc)
+* @see org.apache.axis2.context.AbstractContext#AXIS2_CALL axis2_msg_ctx_getProperty(java.lang.Object, axis2_bool_t)
+*/
+
+/**
+ * To acess any property AXIS2_CALL axis2_msg_ctx_set at the run time , a handler can add property to wherever he wants
+ * to MesageContext , to struct axis2_operation_ctx * , to struct axis2_svc_ctx *and to ConfigurationContext.
+ * This method is to retrive those properties NOT paramters
+ *
+ * @param key : property Name
+ * @param persistent : need to be persistent even when server re-start
+ * @return Object
+ */
+void* AXIS2_CALL axis2_msg_ctx_get_property(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *key, axis2_bool_t persistent)
+{
+/* // search in MC
+ void* obj = supergetProperty(key, persistent);
+ if(obj !=null){
+ return obj;
+ }
+ //The context hirachy might not have constructed fully, the check should
+ //look for the disconnected grandparents
+ // Search in Operation Context
+ if (operation_ctx != null ) {
+ obj = operation_ctxgetProperty(key, persistent);
+ if(obj !=null){
+ return obj;
+ }
+ }
+ //Search in ServiceContext
+ if (svc_ctx != null ) {
+ obj = svc_ctxgetProperty(key, persistent);
+ if(obj !=null){
+ return obj;
+ }
+ }
+ if (svc_grp_ctx != null ) {
+ obj = svc_grp_ctxgetProperty(key, persistent);
+ if(obj !=null){
+ return obj;
+ }
+ }
+ if (conf_ctx != null ) {
+ // search in Configuration Context
+ obj = conf_ctxgetProperty(key, persistent);
+ if(obj !=null){
+ return obj;
+ }
+ }
+ return obj;
+ */
+ return NULL;
+}
+
+/**
+ * @return
+ */
+axis2_qname_t *AXIS2_CALL axis2_msg_ctx_get_paused_handler_name(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->paused_handler_name;
+}
+
+/**
+ * @return
+ */
+axis2_char_t * AXIS2_CALL axis2_msg_ctx_get_paused_phase_name(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->paused_phase_name;
+}
+
+/**
+ * @param name
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_paused_phase_name(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_char_t *paused_phase_name)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ if (msg_ctx_impl->paused_phase_name)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->paused_phase_name);
+ msg_ctx_impl->paused_phase_name = NULL;
+ }
+
+ if (paused_phase_name)
+ {
+ msg_ctx_impl->paused_phase_name = AXIS2_STRDUP(paused_phase_name, env);
+ if (!(msg_ctx_impl->paused_phase_name))
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+ }
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @return
+ */
+axis2_char_t* AXIS2_CALL axis2_msg_ctx_get_soap_action(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->soap_action;
+}
+
+/**
+ * @param string
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_soap_action(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *soap_action)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ if (msg_ctx_impl->soap_action)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->soap_action);
+ msg_ctx_impl->soap_action = NULL;
+ }
+
+ if (soap_action)
+ {
+ msg_ctx_impl->soap_action = AXIS2_STRDUP(soap_action, env);
+ if (!(msg_ctx_impl->soap_action))
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+ }
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_doing_mtom(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->doing_mtom;
+}
+
+/**
+ * @param b
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_doing_mtom(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_bool_t doing_mtom)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->doing_mtom = doing_mtom;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ * @return
+ */
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_doing_rest(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->doing_rest;
+}
+
+/**
+ * @param b
+ */
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_doing_rest(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t doing_rest)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->doing_rest = doing_rest;
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_do_rest_through_post(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_bool_t do_rest_through_post)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(msg_ctx)->do_rest_through_post = do_rest_through_post;
+ return AXIS2_SUCCESS;
+}
+
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_do_rest_through_post(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->do_rest_through_post;
+}
+
+axis2_bool_t AXIS2_CALL axis2_msg_ctx_get_is_soap_11(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->is_soap_11;
+}
+
+struct axis2_svc_grp_ctx *AXIS2_CALL axis2_msg_ctx_get_svc_grp_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->svc_grp_ctx;
+}
+
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_svc_grp_ctx(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, struct axis2_svc_grp_ctx *svc_grp_ctx)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ if (svc_grp_ctx)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->svc_grp_ctx = svc_grp_ctx;
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+axis2_operation_t *AXIS2_CALL axis2_msg_ctx_get_operation(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->operation;
+}
+
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_operation(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_operation_t *operation)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ if (operation)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->operation = operation;
+ AXIS2_INTF_TO_IMPL(msg_ctx)->operation_qname = AXIS2_OPERATION_GET_NAME(operation, env);
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+axis2_svc_t *AXIS2_CALL axis2_msg_ctx_get_svc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->svc;
+}
+
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_svc(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_svc_t *svc)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
+
+ if (svc)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->svc = svc;
+ AXIS2_INTF_TO_IMPL(msg_ctx)->svc_qname = AXIS2_SVC_GET_NAME(svc, env);
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+axis2_svc_grp_t * AXIS2_CALL axis2_msg_ctx_get_svc_grp(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->svc_grp;
+}
+
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_svc_grp(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env, axis2_svc_grp_t *svc_grp)
+{
AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, AXIS2_FAILURE);
- if(NULL == msg_ctx->ops)
- AXIS2_FREE((*env)->allocator, msg_ctx->ops);
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(msg_ctx));
+ if (svc_grp)
+ {
+ AXIS2_INTF_TO_IMPL(msg_ctx)->svc_grp = svc_grp;
+ AXIS2_INTF_TO_IMPL(msg_ctx)->svc_grp_id = AXIS2_SVC_GRP_GET_NAME(svc_grp, env);
+ }
return AXIS2_SUCCESS;
}
+
+axis2_char_t * AXIS2_CALL axis2_msg_ctx_get_svc_grp_ctx_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+ return AXIS2_INTF_TO_IMPL(msg_ctx)->svc_grp_ctx_id;
+}
+
+axis2_status_t AXIS2_CALL axis2_msg_ctx_set_svc_grp_ctx_id(struct axis2_msg_ctx *msg_ctx,
+ axis2_env_t **env,
+ axis2_char_t *svc_grp_ctx_id)
+{
+ axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_ctx, env, NULL);
+
+ msg_ctx_impl = AXIS2_INTF_TO_IMPL(msg_ctx);
+
+ if (msg_ctx_impl->svc_grp_ctx_id)
+ {
+ AXIS2_FREE((*env)->allocator, msg_ctx_impl->svc_grp_ctx_id);
+ msg_ctx_impl->svc_grp_ctx_id = NULL;
+ }
+
+ if (svc_grp_ctx_id)
+ {
+ msg_ctx_impl->svc_grp_ctx_id = AXIS2_STRDUP(svc_grp_ctx_id, env);
+ if (!(msg_ctx_impl->svc_grp_ctx_id))
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+ }
+ return AXIS2_SUCCESS;
+}
+
+/** TODO: there are many block to be uncommented once external depandancies are resoled,
+ that is when thos structs are implemented */