svn commit: r695933 - in /webservices/sandesha/trunk/c/src: msgprocessors/app_msg_processor.c wsrm/acks_to.c

[email protected]
Newsgroups gmane.comp.apache.webservices.fx.devel
Message-ID <[email protected]>
Author: damitha
Date: Tue Sep 16 08:09:27 2008
New Revision: 695933

URL: http://svn.apache.org/viewvc?rev=695933&view=rev
Log:
Working on interoperability

Modified:
    webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c
    webservices/sandesha/trunk/c/src/wsrm/acks_to.c

Modified: webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c?rev=695933&r1=695932&r2=695933&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c Tue Sep 16 08:09:27 2008
@@ -2084,8 +2084,8 @@
      * In all other cases we do not send the acknowledgment directly, but piggyback it on application
      * messages or terminate sequence message.
      */
-    /*if(ack_rm_msg_ctx && one_way)*/
-    if(ack_rm_msg_ctx)
+    if(ack_rm_msg_ctx && one_way)
+    /*if(ack_rm_msg_ctx)*/
     {
         axis2_engine_t *engine = NULL;
         engine = axis2_engine_create(env, conf_ctx);
@@ -2882,6 +2882,7 @@
     axis2_conf_t *conf = NULL;
     const axis2_char_t *mep = NULL;
     axis2_relates_to_t *relates_to = NULL;
+    sandesha2_seq_property_bean_t *relates_to_bean = NULL;
 
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,   
         "[Sandesha2] Entry:sandesha2_app_msg_processor_send_app_msg");
@@ -3312,8 +3313,17 @@
         axutil_qname_free(qname, env);
     }
 
+    relates_to_bean = sandesha2_seq_property_bean_create_with_data(env, msg_id, 
+            SANDESHA2_SEQ_PROP_RELATED_MSG_ID, rms_sequence_id);
+    if(relates_to_bean)
+    {
+        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, relates_to_bean);
+        sandesha2_seq_property_bean_free(relates_to_bean, env);
+    }
+
     if(!is_svr_side && (!reply_to_addr || sandesha2_utils_is_rm_1_0_anonymous_acks_to(env, rm_version, reply_to_addr)))
     {
+        /* Client side and oneway */
         axis2_transport_out_desc_t *transport_out = NULL;
         axis2_transport_sender_t *transport_sender = NULL;
         sandesha2_sender_bean_t *sender_bean = NULL;
@@ -3436,18 +3446,8 @@
 
         return status;
     }
-    else
+    else /* Not client side */
     {
-        sandesha2_seq_property_bean_t *relates_to_bean = NULL;
-
-        relates_to_bean = sandesha2_seq_property_bean_create_with_data(env, msg_id, 
-                SANDESHA2_SEQ_PROP_RELATED_MSG_ID, rms_sequence_id);
-        if(relates_to_bean)
-        {
-            sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, relates_to_bean);
-            sandesha2_seq_property_bean_free(relates_to_bean, env);
-        }
-
         axis2_msg_ctx_increment_ref(app_msg_ctx, env);
         engine = axis2_engine_create(env, conf_ctx);
         if(axis2_engine_resume_send(engine, env, app_msg_ctx))

Modified: webservices/sandesha/trunk/c/src/wsrm/acks_to.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/wsrm/acks_to.c?rev=695933&r1=695932&r2=695933&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/wsrm/acks_to.c (original)
+++ webservices/sandesha/trunk/c/src/wsrm/acks_to.c Tue Sep 16 08:09:27 2008
@@ -25,6 +25,8 @@
 struct sandesha2_acks_to_t
 {
 	sandesha2_address_t *address;
+    /** reference parameters */
+    axutil_array_list_t *ref_param_list;
 	axis2_char_t *addr_ns_val;
 	axis2_char_t *rm_ns_val;
 };
@@ -63,6 +65,7 @@
     acks_to->rm_ns_val = (axis2_char_t *)axutil_strdup(env, rm_ns_val);
     acks_to->addr_ns_val = (axis2_char_t *)axutil_strdup(env, addr_ns_val);
     acks_to->address = address;
+    acks_to->ref_param_list = NULL;
     
 	return acks_to;
 }
@@ -89,6 +92,11 @@
         acks_to->address = NULL;
     }
     
+    if (acks_to->ref_param_list)
+    {
+        axutil_array_list_free(acks_to->ref_param_list, env);
+    }
+    
 	AXIS2_FREE(env->allocator, acks_to);
 	return AXIS2_SUCCESS;
 }
@@ -101,6 +109,38 @@
 	return acks_to->rm_ns_val;
 }
 
+axutil_array_list_t *AXIS2_CALL
+sandesha2_acks_to_get_ref_param_list(
+    sandesha2_acks_to_t * acks_to,
+    const axutil_env_t * env)
+{
+    return acks_to->ref_param_list;
+}
+
+axis2_status_t AXIS2_CALL
+sandesha2_acks_to_add_ref_param(
+    sandesha2_acks_to_t * acks_to,
+    const axutil_env_t * env,
+    axiom_node_t * ref_param_node)
+{
+    if (!(acks_to->ref_param_list))
+    {
+        acks_to->ref_param_list = axutil_array_list_create(env, 0);
+        if (!(acks_to->ref_param_list))
+        {
+            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+            return AXIS2_FAILURE;
+        }
+    }
+
+    if (acks_to->ref_param_list && ref_param_node)
+    {
+        return axutil_array_list_add(acks_to->ref_param_list, env, ref_param_node);
+    }
+
+    return AXIS2_FAILURE;
+}
+
 
 void* AXIS2_CALL 
 sandesha2_acks_to_from_om_node(
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.