You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2006/05/17 18:54:11 UTC

svn commit: r407313 - /webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c

Author: samisa
Date: Wed May 17 09:54:11 2006
New Revision: 407313

URL: http://svn.apache.org/viewvc?rev=407313&view=rev
Log:
Added fire and forget logic

Modified:
    webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c

Modified: webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c?rev=407313&r1=407312&r2=407313&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c Wed May 17 09:54:11 2006
@@ -579,6 +579,16 @@
                     axis2_env_t **env,
                     axis2_om_node_t *payload)
 {
+	axis2_svc_client_impl_t *svc_client_impl = NULL;
+	axis2_qname_t *op_qname = NULL;
+	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+	svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
+	op_qname = axis2_qname_create(env, AXIS2_ANON_OUT_ONLY_OP, NULL, NULL);
+	
+	axis2_svc_client_fire_and_forget_with_op_qname(
+			&(svc_client_impl->svc_client), env, op_qname, payload);
+
 
 }
 
@@ -588,7 +598,32 @@
                     axis2_qname_t *op_qname,
                     axis2_om_node_t *payload)
 {
+    axis2_svc_client_impl_t *svc_client_impl = NULL;
+    axis2_op_client_t *op_client = NULL;
+    axis2_msg_ctx_t *msg_ctx = NULL;
+
+    if (!env || !(*env))
+        return;
+
+    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
+    
+    msg_ctx = axis2_msg_ctx_create(env, 
+        AXIS2_SVC_CTX_GET_CONF_CTX(svc_client_impl->svc_ctx, env), NULL, NULL);
+    if (!axis2_svc_client_fill_soap_envelope(env, svc_client_impl, msg_ctx, 
+        payload))
+    {
+        return;
+    }
+
+    op_client = axis2_svc_client_create_op_client(&(svc_client_impl->svc_client), env, op_qname);
+    if (!op_client)
+    {
+        return;
+    }
 
+    AXIS2_OP_CLIENT_ADD_MSG_CTX(op_client, env, msg_ctx);
+    AXIS2_OP_CLIENT_EXECUTE(op_client, env, AXIS2_FALSE);
+    return;
 }
 
 axis2_om_node_t* AXIS2_CALL