You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by da...@apache.org on 2006/07/21 14:25:34 UTC
svn commit: r424285 - /webservices/sandesha/trunk/c/src/util/msg_creator.c
Author: damitha
Date: Fri Jul 21 05:25:33 2006
New Revision: 424285
URL: http://svn.apache.org/viewvc?rev=424285&view=rev
Log:
More work on msg_creator
Modified:
webservices/sandesha/trunk/c/src/util/msg_creator.c
Modified: webservices/sandesha/trunk/c/src/util/msg_creator.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/msg_creator.c?rev=424285&r1=424284&r2=424285&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/msg_creator.c (original)
+++ webservices/sandesha/trunk/c/src/util/msg_creator.c Fri Jul 21 05:25:33 2006
@@ -424,6 +424,143 @@
return close_seq_response;
}
+/**
+ * Create a new create_terminate_seq_msg
+ * @param application_rm_msg
+ * @param seq_id
+ * @param internal_seq_id
+ * @param acks_to
+ * @return
+ */
+sandesha2_msg_ctx_t *AXIS2_CALL
+sandesha2_msg_creator_create_terminate_seq_msg(
+ const axis2_env_t *env,
+ sandesha2_msg_ctx_t *ref_rm_msg,
+ axis2_char_t *seq_id,
+ axis2_char_t *internal_seq_id,
+ axis2_char_t *acks_to,
+ sandesha2_storage_mgr_t *storage_mgr)
+{
+ axis2_msg_ctx_t *ref_msg_ctx = NULL;
+ axis2_msg_ctx_t *terminate_seq_msg_ctx = NULL;
+ axis2_conf_ctx_t *conf_ctx = NULL;
+ axis2_op_t *terminate_seq_op = NULL;
+ axis2_op_t *app_msg_op_desc = NULL;
+ axis2_op_ctx_t *create_seq_op_ctx = NULL;
+ axis2_op_ctx_t *op_ctx = NULL;
+ axis2_char_t *terminate_seq_msg_id = NULL;
+ axis2_char_t *temp_msg_id = NULL;
+ axis2_char_t *rm_version = NULL;
+ axis2_char_t *rm_ns_value = NULL;
+ axis2_char_t *addressing_ns_value = NULL;
+ axis2_char_t *anonymous_uri = NULL;
+ axis2_char_t *temp_value = NULL;
+ axis2_char_t *temp_action = NULL;
+ axis2_char_t *temp_soap_action = NULL;
+ axis2_endpoint_ref_t *to_epr = NULL;
+ axis2_endpoint_ref_t *reply_to_epr = NULL;
+ axis2_endpoint_ref_t *acks_to_epr = NULL;
+ axis2_endpoint_ref_t *temp_to = NULL;
+ axis2_endpoint_ref_t *temp_reply_to = NULL;
+ axis2_qname_t *qname = NULL;
+ axis2_bool_t is_seq_res_reqd = AXIS2_FALSE;
+ axiom_soap_envelope_t *envelope = NULL;
+ axiom_soap_envelope_t *temp_envelope = NULL;
+ sandesha2_create_seq_t *create_seq_part = NULL;
+ sandesha2_seq_property_bean_t *reply_to_bean = NULL;
+ sandesha2_seq_property_bean_t *to_bean = NULL;
+ sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
+ sandesha2_msg_ctx_t *terminate_rm_msg = NULL;
+ sandesha2_address_t *temp_address = NULL;
+ sandesha2_acks_to_t *temp_acks_to = NULL;
+
+ ref_msg_ctx = SANDESHA2_MSG_CTX_GET_MSG_CTX(ref_rm_msg, env);
+ if(ref_msg_ctx == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_MSG_CTX,,
+ AXIS2_FAILURE);
+ return NULL;
+ }
+ terminate_seq_op = axis2_op_create(env);
+ if(terminate_seq_op == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(ref_msg_ctx, env);
+ if(conf_ctx == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CONF_CTX_NULL, AXIS2_FAILURE);
+ return NULL;
+ }
+ terminate_seq_msg_ctx = sandesha2_utils_create_new_related_msg_ctx(env,
+ ref_rm_msg, terminate_seq_op);
+ terminate_seq_op_ctx = AXIS2_MSG_CTX_GET_OP_CTX(terminate_seq_msg_ctx, env);
+ terminate_seq_msg_id = AXIS2_MSG_CTX_GET_MSG_ID(terminate_seq_msg_ctx, env);
+ AXIS2_CONF_CTX_REGISTER_OP_CTX(conf_ctx, env, terminate_seq_msg_id,
+ terminate_seq_op_ctx);
+ ref_msg_op_desc = AXIS2_MSG_CTX_GET_OP(ref_msg_ctx, env);
+ terminate_seq_op = AXIS2_MSG_CTX_GET_OP(terminate_seq_msg_ctx, env);
+ if(ref_msg_op_desc)
+ {
+ axis2_array_list_t *outflow = NULL;
+ axis2_array_list_t *out_fault_flow = NULL;
+ axis2_array_list_t *in_fault_flow = NULL;
+ axis2_array_list_t *inflow = NULL;
+
+ outflow = AXIS2_OP_GET_PHASES_OUTFLOW(ref_msg_op_desc, env);
+ AXIS2_OP_SET_PHASES_OUTFLOW(terminate_seq_op, env, outflow);
+ out_fault_flow = AXIS2_OP_GET_PHASES_OUT_FAULT_FLOW(ref_msg_op_desc, env);
+ AXIS2_OP_SET_PHASES_OUT_FAULT_FLOW(terminate_seq_op, env, out_fault_flow);
+ in_fault_flow = AXIS2_OP_GET_PHASES_IN_FAULT_FLOW(ref_msg_op_desc, env);
+ AXIS2_OP_SET_PHASES_IN_FAULT_FLOW(terminate_seq_op, env, in_fault_flow);
+ inflow = AXIS2_OP_GET_REMAINING_PHASES_INFLOW(ref_msg_op_desc, env);
+ AXIS2_OP_SET_REMAINING_PHASES_INFLOW(terminate_seq_op, env, inflow);
+ }
+ rm_version = sandesha2_utils_get_rm_version(env, internal_seq_id, storage_mgr);
+ if(rm_version == NULL)
+ {
+ AXIS2_ERROR_SET(env->error,
+ SANDESHA2_ERROR_CANNOT_FIND_RM_VERSION_OF_GIVEN_MSG, AXIS2_FAILURE);
+ return NULL;
+ }
+ rm_ns_value = sandesha2_spec_specific_consts_get_rm_ns_val(env, rm_version);
+ sandesha2_msg_creator_init_creation(env, ref_msg_ctx, terminate_seq_msg_ctx);
+ is_seq_res_reqd = sandesha2_spec_specific_consts_is_term_seq_res_reqd(env, rm_version);
+
+ if(AXIS2_TRUE != is_seq_res_reqd)
+ {
+ AXIS2_CTX_SET_PROPERTY(ctx, env, AXIS2_TRANSPORT_IN, NULL, AXIS2_FALSE);
+ }
+ terminate_rm_msg = sandesha2_msg_init_init_msg(env, terminate_msg);
+ if(terminate_rm_msg == NULL)
+ {
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_MSG_CTX, AXIS2_FAILURE);
+ return NULL;
+ }
+ temp_msg_id = axis2_uuid_gen(env);
+ AXIS2_MSG_SET_MSG_ID(terminate_msg, env, temp_msg_id);
+ ref_msg_op = AXIS2_MSG_CTX_GET_OP(ref_msg, env);
+ if(ref_msg_op)
+ {
+ axis2_array_list_t *outphases = NULL;
+
+ outphases = AXIS2_OP_GET_PHASES_OUTFLOW(ref_msg_op, env);
+ if(outphases)
+ {
+ AXIS2_OP_SET_PHASES_OUTFLOW(terminate_msg_op, env, outphases);
+ AXIS2_OP_SET_PHASES_OUT_FAULT_FLOW(terminate_msg_op, env, outphases);
+ }
+ }
+ temp_envelope = SANDESHA2_MSG_CTX_GET_SOAP_ENVELOPE(ref_msg, env);
+ soap_version = sandesha2_utils_get_soap_version(env, temp_envelope);
+ envelope = axiom_soap_envelope_create_default_soap_envelope(env, soap_version);
+ SANDESHA2_MSG_CTX_SET_SOAP_ENVELOPE(terminate_rm_msg, env, envelope);
+
+
+}
+
+
static axis2_status_t
sandesha2_msg_creator_finalize_creation(
const axis2_env_t *env,
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org