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 sa...@apache.org on 2006/07/21 08:00:43 UTC

svn commit: r424193 - in /webservices/sandesha/trunk/c: include/sandesha2/sandesha2_spec_specific_consts.h include/sandesha2_ack_mgr.h src/util/ack_mgr.c src/util/fault_mgr.c src/util/terminate_mgr.c src/util/utils.c

Author: sahan
Date: Thu Jul 20 23:00:42 2006
New Revision: 424193

URL: http://svn.apache.org/viewvc?rev=424193&view=rev
Log:
Adding piggyback func to ack_mgr

Modified:
    webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h
    webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h
    webservices/sandesha/trunk/c/src/util/ack_mgr.c
    webservices/sandesha/trunk/c/src/util/fault_mgr.c
    webservices/sandesha/trunk/c/src/util/terminate_mgr.c
    webservices/sandesha/trunk/c/src/util/utils.c

Modified: webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h Thu Jul 20 23:00:42 2006
@@ -114,7 +114,7 @@
         const axis2_env_t *env,
         axis2_char_t *addr_ns_val);
 
-AXIS2_EXTERN axis2_bool_t AXIS2_CALL        
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
 sandesha2_spec_specific_consts_is_term_seq_res_reqd(
         const axis2_env_t *env,
         axis2_char_t *spec_version);

Modified: webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h Thu Jul 20 23:00:42 2006
@@ -67,6 +67,11 @@
         axis2_array_list_t *ack_ranges,
         long last_msg_no);
 
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+sandesha2_ack_mgr_piggyback_acks_if_present(const axis2_env_t *env,
+        sandesha2_msg_ctx_t *rm_msg_ctx,
+        sandesha2_storage_mgr_t *storage_mgr);
+
 /** @} */
 #ifdef __cplusplus
 }

Modified: webservices/sandesha/trunk/c/src/util/ack_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/ack_mgr.c?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/ack_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/ack_mgr.c Thu Jul 20 23:00:42 2006
@@ -26,6 +26,8 @@
 #include <axis2_addr.h>
 #include <axis2_property.h>
 #include <axis2_array_list.h>
+#include <sandesha2_msg_init.h>
+#include <sandesha2/sandesha2_seq_ack.h>
 
 AXIS2_EXTERN sandesha2_msg_ctx_t *AXIS2_CALL
 sandesha2_ack_mgr_generate_ack_msg(const axis2_env_t *env,
@@ -101,7 +103,7 @@
     AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, 
                         SANDESHA2_APPLICATION_PROCESSING_DONE, property,
                         AXIS2_FALSE);
-    ack_rm_msg = sandesha2_msg_initilizer_init_msg(env, ack_msg_ctx);
+    ack_rm_msg = sandesha2_msg_init_init_msg(env, ack_msg_ctx);
     SANDESHA2_MSG_CTX_SET_RM_NS_VAL(ack_rm_msg, env, 
                         SANDESHA2_MSG_CTX_GET_RM_NS_VAL(ref_rm_msg, env));
     AXIS2_MSG_CTX_SET_WSA_MESSAGE_ID(ack_msg_ctx, env, axis2_uuid_gen(env));
@@ -231,7 +233,7 @@
         trans_out = sandesha2_utils_get_transport_out(env);
         AXIS2_MSG_CTX_SET_TRANSPORT_OUT_DESC(ack_msg_ctx, env, trans_out);
         
-        ret_rm_msg = sandesha2_msg_initilizer_init_msg(env, ack_msg_ctx);
+        ret_rm_msg = sandesha2_msg_init_init_msg(env, ack_msg_ctx);
         sandesha2_utils_start_invoker_for_seq(env, conf_ctx, seq_id);
         AXIS2_MSG_CTX_PAUSE(ref_msg, env);
         return ret_rm_msg;
@@ -299,8 +301,6 @@
         axis2_char_t *seq_id,
         sandesha2_seq_property_mgr_t *seq_prop_mgr)
 {
-    sandesha2_seq_property_bean_t *internal_seq_bean = NULL;
-    axis2_char_t *internal_seq_id = NULL;
     sandesha2_seq_property_bean_t *completed_msgs_bean = NULL;
     axis2_array_list_t *completed_msg_list = NULL;
     
@@ -359,4 +359,83 @@
         start = SANDESHA2_ACK_RANGE_GET_UPPER_VALUE(ack_range, env) + 1;        
     }
     return AXIS2_FALSE;
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+sandesha2_ack_mgr_piggyback_acks_if_present(const axis2_env_t *env,
+        sandesha2_msg_ctx_t *rm_msg_ctx,
+        sandesha2_storage_mgr_t *storage_mgr)
+{
+    axis2_conf_ctx_t *conf_ctx = NULL;
+    sandesha2_sender_mgr_t *retrans_mgr = NULL;
+    sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
+    sandesha2_sender_bean_t *find_bean = NULL;
+    axis2_char_t *to_str = NULL;
+    axis2_msg_ctx_t *msg_ctx = NULL;
+    axis2_array_list_t *found_list = NULL;
+    int i = 0;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, storage_mgr, AXIS2_FAILURE);
+    
+    msg_ctx = SANDESHA2_MSG_CTX_GET_MSG_CTX(rm_msg_ctx, env);
+    conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env);
+    retrans_mgr = SANDESHA2_STORAGE_MGR_GET_RETRANS_MGR(storage_mgr, env);
+    seq_prop_mgr = SANDESHA2_STORAGE_MGR_GET_SEQ_PROPERTY_MGR(storage_mgr, env);
+    
+    find_bean = sandesha2_sender_bean_create(env);
+    SANDESHA2_SENDER_BEAN_SET_MSG_TYPE(find_bean, env, SANDESHA2_MSG_TYPE_ACK);
+    SANDESHA2_SENDER_BEAN_SET_SEND(find_bean, env, AXIS2_TRUE);
+    SANDESHA2_SENDER_BEAN_SET_RESEND(find_bean, env, AXIS2_FALSE);
+    
+    to_str = AXIS2_ENDPOINT_REF_GET_ADDRESS(SANDESHA2_MSG_CTX_GET_TO(rm_msg_ctx,
+                        env), env);
+                        
+    found_list = SANDESHA2_SENDER_MGR_FIND_BY_SENDER_BEAN(retrans_mgr, env, 
+                        find_bean);
+    for(i = 0; i < AXIS2_ARRAY_LIST_SIZE(found_list, env); i++)
+    {
+        sandesha2_sender_bean_t *sender_bean = NULL;
+        long timenow = 0;
+        
+        
+        timenow = sandesha2_utils_get_current_time_in_millis(env);
+        sender_bean = AXIS2_ARRAY_LIST_GET(found_list, env, i);
+        
+        if(SANDESHA2_SENDER_BEAN_GET_TIME_TO_SEND(sender_bean, env) > timenow)
+        {
+            axis2_msg_ctx_t *msg_ctx1 = NULL;
+            axis2_char_t *to = NULL;
+            sandesha2_msg_ctx_t *ack_rm_msg = NULL;
+            sandesha2_seq_ack_t *seq_ack = NULL;
+            
+            msg_ctx1 = SANDESHA2_STORAGE_MGR_RETRIEVE_MSG_CTX(storage_mgr, env,
+                        SANDESHA2_SENDER_BEAN_GET_MSG_CONTEXT_REF_KEY(
+                        sender_bean, env), conf_ctx);
+            to = AXIS2_ENDPOINT_REF_GET_ADDRESS(AXIS2_MSG_CTX_GET_TO(msg_ctx1,
+                        env), env);
+            if(0 == AXIS2_STRCMP(to, to_str))
+                continue; 
+            SANDESHA2_SENDER_MGR_REMOVE(retrans_mgr, env, 
+                        SANDESHA2_SENDER_BEAN_GET_MSG_ID(sender_bean, env));
+            ack_rm_msg = sandesha2_msg_init_init_msg(env, msg_ctx1);
+            if(SANDESHA2_MSG_TYPE_ACK != SANDESHA2_MSG_CTX_GET_TYPE(ack_rm_msg, 
+                        env))
+            {
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Invalid"
+                        " ack message entry");
+                return AXIS2_FAILURE;
+            }
+            seq_ack = (sandesha2_seq_ack_t*)SANDESHA2_MSG_CTX_GET_MSG_PART(
+                        ack_rm_msg, env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
+            SANDESHA2_MSG_CTX_SET_MSG_PARM(rm_msg_ctx, env, 
+                        SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT, seq_ack);
+            SANDESHA2_MSG_CTX_ADD_SOAP_ENVELOPE(rm_msg_ctx, env);
+            break;
+        }
+        
+    }
+    return AXIS2_SUCCESS;
 }

Modified: webservices/sandesha/trunk/c/src/util/fault_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/fault_mgr.c?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/fault_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/fault_mgr.c Thu Jul 20 23:00:42 2006
@@ -25,6 +25,8 @@
 #include <sandesha2/sandesha2_identifier.h>
 #include <sandesha2/sandesha2_msg_number.h>
 #include <sandesha2/sandesha2_utils.h>
+#include <sandesha2/sandesha2_spec_specific_consts.h>
+#include <sandesha2_msg_init.h>
 #include <stdio.h>
 
 
@@ -177,7 +179,7 @@
     AXIS2_PARAM_CHECK(env->error, create_seq_msg, NULL);
     AXIS2_PARAM_CHECK(env->error, storage_man, NULL);
     
-    rm_msg_ctx = sandesha2_msg_initilizer_init_msg(env, create_seq_msg);
+    rm_msg_ctx = sandesha2_msg_init_init_msg(env, create_seq_msg);
     create_seq = (sandesha2_create_seq_t*)SANDESHA2_MSG_CTX_GET_MSG_PART(
                         rm_msg_ctx, env, SANDESHA2_MSG_PART_CREATE_SEQ);
     
@@ -597,7 +599,7 @@
             acks_to_str = SANDESHA2_SEQ_PROPERTY_BEAN_GET_VALUE(acks_to_bean, 
                         env);
     }
-    anon_uri = sandesha2_spec_specific_consts_get_addr_anon_uri(env, addr_ns_uri);
+    anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
     if(NULL!= acks_to_str && 0 != AXIS2_STRCMP(acks_to_str, anon_uri))
         AXIS2_MSG_CTX_SET_TO(fault_msg_ctx, env, axis2_endpoint_ref_create(env,
                         acks_to_str));
@@ -606,6 +608,6 @@
     sandesha2_soap_env_creator_add_soap_env(env, fault_msg_ctx, soap_ver, 
                         fault_data, SANDESHA2_MSG_CTX_GET_RM_NS_VAL(rm_msg_ctx,
                         env));
-    fault_rm_msg = sandesha2_msg_initilizer_init_msg(env, fault_msg_ctx);
+    fault_rm_msg = sandesha2_msg_init_init_msg(env, fault_msg_ctx);
     return fault_rm_msg;
 }

Modified: webservices/sandesha/trunk/c/src/util/terminate_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/terminate_mgr.c?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Thu Jul 20 23:00:42 2006
@@ -27,6 +27,7 @@
 #include <axis2_property.h>
 #include <axis2_array_list.h>
 #include <axis2_engine.h>
+#include <sandesha2_msg_creator.h>
 
 axis2_hash_t *sandesha2_terminate_mgr_rcv_side_clean_map = NULL;
 

Modified: webservices/sandesha/trunk/c/src/util/utils.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/utils.c?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/utils.c (original)
+++ webservices/sandesha/trunk/c/src/util/utils.c Thu Jul 20 23:00:42 2006
@@ -459,7 +459,8 @@
     }
     else
     {
-        ret = axis2_strcat(SANDESHA2_INTERNAL_SEQ_PREFIX, ":", to, ":", seq_key, NULL);
+        ret = axis2_strcat(env, SANDESHA2_INTERNAL_SEQ_PREFIX, ":", to, ":", 
+                        seq_key, NULL);
         return ret;
     }
     return NULL;
@@ -670,7 +671,7 @@
     while(' ' == *tmp)
         tmp++;
         
-    tmp2 = orig_string[AXIS2_STRLEN(orig_string)];
+    tmp2 = orig_string + AXIS2_STRLEN(orig_string);
     while(' ' == *tmp2 && tmp2 != orig_string)
         tmp2--;
         



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org