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 na...@apache.org on 2006/09/27 15:16:07 UTC

svn commit: r450430 [7/7] - in /webservices/axis2/trunk/c/tools/codegen: include/ src/schema/ src/schema/compiler/ src/schema/writer/ src/templates/ src/templates/c/ src/typemappers/

Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/Makefile.am?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/Makefile.am Wed Sep 27 06:16:04 2006
@@ -0,0 +1,5 @@
+samplesdir=$(prefix)/conf/templates/c
+samples_DATA= \
+        CADBBeanTemplateHeader.xsl  ServiceSkeleton.xsl     SkelHeaderTemplate.xsl  StubHeaderTemplate.xsl \
+        CADBBeanTemplateSource.xsl  ServiceXMLTemplate.xsl  SkelSourceTemplate.xsl  StubSourceTemplate.xsl
+

Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,264 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:output method="text"/>
+
+      <!--Template for in out message receiver -->
+      <xsl:template match="/interface">
+        <xsl:variable name="skeletonname"><xsl:value-of select="@name"/></xsl:variable>
+        <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+        <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+        <xsl:variable name="svcop-prefix"><xsl:value-of select="@svcop_prefix"/></xsl:variable>
+        <xsl:variable name="svcname"><xsl:value-of select="@svcname"/></xsl:variable>
+        <xsl:variable name="soapVersion"><xsl:value-of select="@soap-version"/></xsl:variable>
+
+        /**
+         * <xsl:value-of select="@name"/>.c
+         *
+         * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+         * by the Apache Axis2 version: #axisVersion# #today#
+         *  <xsl:value-of select="$skeletonname"/>
+         */
+
+        #include "<xsl:value-of select="$svcop-prefix"/>.h"
+        #include &lt;axis2_svc_skeleton.h&gt;
+        #include &lt;axis2_array_list.h&gt;
+        #include &lt;stdio.h&gt;
+
+        /**
+         * functions prototypes
+         */
+
+        /* On fault, handle the fault */
+        axiom_node_t* AXIS2_CALL
+        <xsl:value-of select="$method-prefix"/>_on_fault(axis2_svc_skeleton_t *svc_skeleton,
+                  const axis2_env_t *env, axiom_node_t *node);
+
+        /* Free the service */
+        int AXIS2_CALL
+        <xsl:value-of select="$method-prefix"/>_free(axis2_svc_skeleton_t *svc_skeleton,
+                  const axis2_env_t *env);
+
+        /* This method invokes the right service method */
+        axiom_node_t* AXIS2_CALL
+        <xsl:value-of select="$method-prefix"/>_invoke(axis2_svc_skeleton_t *svc_skeleton,
+                    const axis2_env_t *env,
+                    axiom_node_t *node,
+                    axis2_msg_ctx_t *msg_ctx);
+
+        /* Initializing the environment  */
+        int AXIS2_CALL
+        <xsl:value-of select="$method-prefix"/>_init(axis2_svc_skeleton_t *svc_skeleton,
+                        const axis2_env_t *env);
+
+        /* Create the service  */
+        axis2_svc_skeleton_t* AXIS2_CALL
+        <xsl:value-of select="$method-prefix"/>_create(const axis2_env_t *env);
+
+        /**
+         * Implementations for the functions
+         */
+
+	axis2_svc_skeleton_t* AXIS2_CALL
+	<xsl:value-of select="$method-prefix"/>_create(const axis2_env_t *env)
+	{
+	    axis2_svc_skeleton_t *svc_skeleton = NULL;
+	    svc_skeleton = AXIS2_MALLOC(env->allocator,
+	        sizeof(axis2_svc_skeleton_t));
+
+
+	    svc_skeleton->ops = AXIS2_MALLOC(
+	        env->allocator, sizeof(axis2_svc_skeleton_ops_t));
+
+	    svc_skeleton->func_array = NULL;
+
+	    svc_skeleton->ops->free = <xsl:value-of select="$method-prefix"/>_free;
+	    svc_skeleton->ops->init = <xsl:value-of select="$method-prefix"/>_init;
+	    svc_skeleton->ops->invoke = <xsl:value-of select="$method-prefix"/>_invoke;
+	    svc_skeleton->ops->on_fault = <xsl:value-of select="$method-prefix"/>_on_fault;
+
+	    return svc_skeleton;
+	}
+
+
+	int AXIS2_CALL
+	<xsl:value-of select="$method-prefix"/>_init(axis2_svc_skeleton_t *svc_skeleton,
+	                        const axis2_env_t *env)
+	{
+	    svc_skeleton->func_array = axis2_array_list_create(env, 10);
+        <xsl:for-each select="method">
+	      AXIS2_ARRAY_LIST_ADD(svc_skeleton->func_array, env, "<xsl:value-of select="@localpart"/>");
+        </xsl:for-each>
+
+	    /* Any initialization stuff of <xsl:value-of select="$svcname"/> goes here */
+	    return AXIS2_SUCCESS;
+	}
+
+	int AXIS2_CALL
+	<xsl:value-of select="$method-prefix"/>_free(axis2_svc_skeleton_t *svc_skeleton,
+				 const axis2_env_t *env)
+	{
+          if(svc_skeleton->func_array)
+          {
+            AXIS2_ARRAY_LIST_FREE(svc_skeleton->func_array, env);
+            svc_skeleton->func_array = NULL;
+          }
+
+          if(svc_skeleton->ops)
+          {
+            AXIS2_FREE(env->allocator, svc_skeleton->ops);
+            svc_skeleton->ops = NULL;
+          }
+
+          if(svc_skeleton)
+          {
+            AXIS2_FREE(env->allocator, svc_skeleton);
+            svc_skeleton = NULL;
+          }
+          return AXIS2_SUCCESS;
+	}
+
+
+	/*
+	 * This method invokes the right service method
+	 */
+	axiom_node_t* AXIS2_CALL
+	<xsl:value-of select="$method-prefix"/>_invoke(axis2_svc_skeleton_t *svc_skeleton,
+				const axis2_env_t *env,
+				axiom_node_t *content_node,
+				axis2_msg_ctx_t *msg_ctx)
+	{
+         /* depending on the function name invoke the
+          * corresponding  method
+          */
+
+          axiom_element_t *element = NULL;
+          axiom_node_t *ret_node = NULL;
+
+          <xsl:for-each select="method">
+            <xsl:text>
+            </xsl:text>
+            <xsl:variable name="position"><xsl:value-of select="position()"/></xsl:variable>
+            <xsl:variable name="outputtype">
+              <xsl:choose>
+                <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+                <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+              </xsl:choose>
+            </xsl:variable>
+            <xsl:value-of select="$outputtype"/> ret_val<xsl:value-of select="$position"/><xsl:if test="output/param/@ours"> = NULL</xsl:if>;
+            <xsl:for-each select="input/param[@type!='']">
+              <xsl:variable name="inputtype">
+                <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+              </xsl:variable>
+              <xsl:value-of select="$inputtype"/> input_val<xsl:value-of select="$position"/>_<xsl:value-of select="position()"/><xsl:if test="input/param/@ours"> = NULL</xsl:if>;
+            </xsl:for-each>
+          </xsl:for-each>
+          if (content_node)
+	      {
+            if (AXIOM_NODE_GET_NODE_TYPE(content_node, env) == AXIOM_ELEMENT)
+            {
+               element = (axiom_element_t *)AXIOM_NODE_GET_DATA_ELEMENT(content_node, env);
+               if (element)
+               {
+                  axis2_char_t *op_name = AXIOM_ELEMENT_GET_LOCALNAME(element, env);
+                  if (op_name)
+                  {
+                    <xsl:for-each select="method">
+                      <xsl:variable name="position"><xsl:value-of select="position()"/></xsl:variable>
+                      <xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
+                      <xsl:variable name="method-name"><xsl:value-of select="@name"/></xsl:variable>
+                      <xsl:variable name="method-ns"><xsl:value-of select="@namespace"/> </xsl:variable>
+                      <xsl:variable name="outputCapsType"><xsl:value-of select="@output/param/@caps-type"/> </xsl:variable>
+                      <xsl:variable name="outputtype"><xsl:value-of select="output/param/@type"/></xsl:variable>
+
+                      if ( AXIS2_STRCMP(op_name, "<xsl:value-of select="@localpart"/>") == 0 )
+                      {
+                           <xsl:for-each select="input/param[@type!='']">
+                             input_val<xsl:value-of select="$position"/>_<xsl:value-of select="position()"/> = <xsl:choose>
+                                    <xsl:when test="@ours">
+                                       axis2_<xsl:value-of select="@type"/>_create( env);
+                                       AXIS2_<xsl:value-of select="@caps-type"/>_BUILD_OM(input_val<xsl:value-of select="$position"/>_<xsl:value-of select="position()"/>, env, content_node );
+                                    </xsl:when>
+                                    <xsl:otherwise>content_node;</xsl:otherwise>
+                                  </xsl:choose>
+                             ret_val<xsl:value-of select="$position"/> =  <xsl:value-of select="$svcop-prefix"/>_<xsl:value-of select="$method-name"/>(env,
+                                                        input_val<xsl:value-of select="$position"/>_<xsl:value-of select="position()"/> );
+                             if ( NULL == ret_val<xsl:value-of select="$position"/> )
+                             {
+                                AXIS2_LOG_ERROR( env->log, AXIS2_LOG_SI, "NULL returnted from the business logic from <xsl:value-of select="$method-name"/> "
+                                                    " %d :: %s", env->error->error_number,
+                                                    AXIS2_ERROR_GET_MESSAGE(env->error));
+                                return <xsl:value-of select="$method-prefix"/>_on_fault( svc_skeleton, env, NULL);
+                             }
+                             ret_node = <xsl:choose>
+                                    <xsl:when test="@ours">
+                                       AXIS2_<xsl:value-of select="@caps-type"/>_PARSE_OM(ret_val<xsl:value-of select="$position"/>, env, NULL );
+                                    </xsl:when>
+                                    <xsl:otherwise>ret_val;</xsl:otherwise>
+                                    </xsl:choose>
+                              return ret_node;
+                           </xsl:for-each>
+
+                          <!-- below was  prior to the databinding -->
+                          <!-- <xsl:if test="$outputtype!=''">return </xsl:if>
+                           <xsl:text> </xsl:text>
+                           <xsl:value-of select="$svcop-prefix"/>_<xsl:value-of select="$method-name"/>(env <xsl:for-each select="input/param[@type!='']"> ,
+                                                content_node </xsl:for-each>);
+                           <xsl:if test="$outputtype=''">return NULL;</xsl:if> -->
+
+                      }
+                      </xsl:for-each>
+                  }
+                }
+             }
+          }
+          printf("<xsl:value-of select="$skeletonname"/> service ERROR: invalid OM parameters in request\n");
+          return content_node;
+        }
+
+    axiom_node_t* AXIS2_CALL
+    <xsl:value-of select="$method-prefix"/>_on_fault(axis2_svc_skeleton_t *svc_skeleton,
+                  const axis2_env_t *env, axiom_node_t *node)
+	{
+		axiom_node_t *error_node = NULL;
+		axiom_element_t *error_ele = NULL;
+		error_ele = axiom_element_create(env, node, "fault", NULL,
+    					&amp;error_node);
+		AXIOM_ELEMENT_SET_TEXT(error_ele, env, "<xsl:value-of select="$qname"/> failed",
+    					error_node);
+		return error_node;
+	}
+
+
+	/**
+	 * Following block distinguish the exposed part of the dll.
+ 	 */
+
+    AXIS2_EXTERN int AXIS2_CALL
+    axis2_get_instance(struct axis2_svc_skeleton **inst,
+	                        const axis2_env_t *env)
+	{
+		*inst = <xsl:value-of select="$method-prefix"/>_create(env);
+
+        if(!(*inst))
+        {
+            return AXIS2_FAILURE;
+        }
+
+  		return AXIS2_SUCCESS;
+	}
+
+	AXIS2_EXTERN int AXIS2_CALL
+    axis2_remove_instance(axis2_svc_skeleton_t *inst,
+                            const axis2_env_t *env)
+	{
+        axis2_status_t status = AXIS2_FAILURE;
+       	if (inst)
+        {
+            status = AXIS2_SVC_SKELETON_FREE(inst, env);
+        }
+    	return status;
+	}
+
+
+    </xsl:template>
+
+</xsl:stylesheet>

Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl
------------------------------------------------------------------------------
    svn:executable = *

Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,25 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
+
+    <xsl:template match="/">
+        <xsl:comment> This file was auto-generated from WSDL </xsl:comment>
+        <xsl:comment> by the Apache Axis2 version: #axisVersion# #today# </xsl:comment>
+        <xsl:apply-templates/>
+    </xsl:template>
+
+    <xsl:template match="interface">
+
+        <service>
+            <xsl:attribute name="name"><xsl:value-of select="@servicename"/></xsl:attribute>
+
+            <parameter name="ServiceClass" locked="false">
+                        <xsl:value-of select="@servicename"/>
+            </parameter>
+			<xsl:for-each select="method">
+				<operation>
+					<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
+				</operation>
+			</xsl:for-each>
+        </service>
+    </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file

Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl
------------------------------------------------------------------------------
    svn:executable = *

Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,70 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:output method="text"/>
+    <xsl:template match="/interface">
+    <xsl:variable name="svc_name"><xsl:value-of select="@name"/></xsl:variable>
+    <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+    <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+
+    /**
+     * <xsl:value-of select="@name"/>.h
+     *
+     * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+     * by the Apache Axis2/C version: #axisVersion# #today#
+     * <xsl:value-of select="@name"/> Axis2/C skeleton for the axisService- Header file
+     */
+
+
+	#include &lt;axis2_svc_skeleton.h&gt;
+	#include &lt;axis2_log_default.h&gt;
+	#include &lt;axis2_error_default.h&gt;
+	#include &lt;axiom_text.h&gt;
+	#include &lt;axiom_node.h&gt;
+	#include &lt;axiom_element.h&gt;
+    #include &lt;stdio.h&gt;
+
+
+   <xsl:for-each select="method">
+    <xsl:if test="output/param[@ours and @type!='']">
+     <xsl:variable name="outputtype">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+     #include  "<xsl:value-of select="$outputtype"/>.h"
+    </xsl:if>
+    <xsl:for-each select="input/param[@type!='' and @ours]">
+     <xsl:variable name="inputtype">axis2_<xsl:value-of select="@type"></xsl:value-of></xsl:variable>
+     #include "<xsl:value-of select="$inputtype"/>.h"
+    </xsl:for-each>
+   </xsl:for-each>
+
+
+     <xsl:for-each select="method">
+         <xsl:variable name="outputours"><xsl:value-of select="output/param/@ours"></xsl:value-of></xsl:variable>
+         <xsl:variable name="outputtype">
+           <xsl:choose>
+             <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+             <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+           </xsl:choose>
+         </xsl:variable>
+         <xsl:variable name="count"><xsl:value-of select="count(output/param)"/></xsl:variable>
+
+		 <!-- regardless of the sync or async status, the generated method signature would be just a usual
+	           c function-->
+        /**
+         * auto generated function declaration
+         * for "<xsl:value-of select="@qname"/>" operation.
+         <!--  select only the body parameters  -->
+         <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+         */
+        <xsl:choose>
+        <xsl:when test="$outputtype=''">axis2_status_t </xsl:when>
+        <xsl:when test="$outputtype!=''"><xsl:value-of select="$outputtype"/></xsl:when>
+        </xsl:choose>
+        <xsl:text> </xsl:text>
+        <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/> (const axis2_env_t *env <xsl:for-each select="input/param[@type!='']"> ,
+                                          <xsl:variable name="inputtype">
+                                             <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+                                          </xsl:variable>
+                                          <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+                                          </xsl:for-each> );
+     </xsl:for-each>
+
+    </xsl:template>
+ </xsl:stylesheet>

Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl
------------------------------------------------------------------------------
    svn:executable = *

Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,55 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:output method="text"/>
+    <xsl:template match="/interface">
+    <xsl:variable name="svc_name"><xsl:value-of select="@name"/></xsl:variable>
+    <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+    <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+
+    /**
+     * <xsl:value-of select="@name"/>.c 
+     *
+     * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+     * by the Apache Axis2/C version: #axisVersion# #today#
+     * <xsl:value-of select="@name"/> Axis2/C skeleton for the axisService
+     */
+
+     #include "<xsl:value-of select="@name"/>.h"
+
+     <xsl:for-each select="method">
+         <xsl:variable name="outputours"><xsl:value-of select="output/param/@ours"></xsl:value-of></xsl:variable>
+         <xsl:variable name="count"><xsl:value-of select="count(output/param)"/></xsl:variable>
+         <xsl:variable name="outputtype">
+           <xsl:choose>
+             <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+             <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+           </xsl:choose>
+         </xsl:variable>
+
+		 <!-- regardless of the sync or async status, the generated method signature would be just a usual
+	           c function-->
+        /**
+         * auto generated function definition signature
+         * for "<xsl:value-of select="@qname"/>" operation.
+         <!--  select only the body parameters  -->
+         <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+         */
+        <xsl:choose>
+        <xsl:when test="$outputtype=''">axis2_status_t </xsl:when>
+        <xsl:when test="$outputtype!=''"><xsl:value-of select="$outputtype"/></xsl:when>
+        </xsl:choose>
+        <xsl:text> </xsl:text>
+        <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/> (const axis2_env_t *env <xsl:for-each select="input/param[@type!='']"> ,
+                                              <xsl:variable name="inputtype">
+                                                  <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+                                              </xsl:variable>
+                                              <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+                                          </xsl:for-each> )
+        {
+          /* TODO fill this with the necessary business logic */
+          <xsl:if test="$outputtype!=''">return NULL;</xsl:if>
+          <xsl:if test="$outputtype=''">return AXIS2_SUCCESS;</xsl:if>
+        }
+     </xsl:for-each>
+
+    </xsl:template>
+ </xsl:stylesheet>

Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl
------------------------------------------------------------------------------
    svn:executable = *

Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,117 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:output method="text"/>
+
+    <xsl:template match="/class">
+        <xsl:variable name="interfaceName"><xsl:value-of select="@interfaceName"/></xsl:variable>
+        <xsl:variable name="callbackname"><xsl:value-of select="@callbackname"/></xsl:variable>
+        <xsl:variable name="isSync"><xsl:value-of select="@isSync"/></xsl:variable>
+        <xsl:variable name="isAsync"><xsl:value-of select="@isAsync"/></xsl:variable>
+        <xsl:variable name="soapVersion"><xsl:value-of select="@soap-version"/></xsl:variable>
+        <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+        <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+
+        /**
+        * <xsl:value-of select="@name"/>.h
+        *
+        * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+        * by the Apache Axis2/C version: #axisVersion# #today#
+        */
+
+        #include &lt;stdio.h&gt;
+        #include &lt;axiom.h&gt;
+        #include &lt;axis2_util.h&gt;
+        #include &lt;axiom_soap.h&gt;
+        #include &lt;axis2_client.h&gt;
+        #include &lt;axis2_stub.h&gt;
+
+       <xsl:for-each select="method">
+        <xsl:if test="output/param[@ours and @type!='']">
+         <xsl:variable name="outputtype">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+         #include "<xsl:value-of select="$outputtype"/>.h"
+        </xsl:if>
+        <xsl:for-each select="input/param[@type!='' and @ours ]">
+         <xsl:variable name="inputtype">axis2_<xsl:value-of select="@type"></xsl:value-of></xsl:variable>
+         #include "<xsl:value-of select="$inputtype"/>.h"
+        </xsl:for-each>
+       </xsl:for-each>
+        /* function prototypes - for header file*/
+        /**
+         * <xsl:value-of select="$method-prefix"/>_create
+         * create and return the stub with services populated
+         * params - env : environment ( mandatory)
+         *        - client_home : Axis2/C home ( mandatory )
+         *        - endpoint_uri : service endpoint uri( optional ) - if NULL default picked from wsdl used
+         */
+        axis2_stub_t*
+        <xsl:value-of select="$method-prefix"/>_create (const axis2_env_t *env,
+                                        axis2_char_t *client_home,
+                                        axis2_char_t *endpoint_uri);
+        /**
+         * <xsl:value-of select="$method-prefix"/>_populate_services
+         * populate the svc in stub with the service and operations
+         */
+        void <xsl:value-of select="$method-prefix"/>_populate_services( axis2_stub_t *stub, const axis2_env_t *env);
+        /**
+         * <xsl:value-of select="$method-prefix"/>_get_endpoint_uri_from_wsdl
+         * return the endpoint URI picked from wsdl
+         */
+        axis2_char_t *<xsl:value-of select="$method-prefix"/>_get_endpoint_uri_from_wsdl ( const axis2_env_t *env );
+
+        <xsl:if test="$isSync='1'">
+        <xsl:for-each select="method">
+        /**
+         * auto generated function declaration
+         * for "<xsl:value-of select="@qname"/>" operation.
+         <!--  select only the body parameters  -->
+         <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+         */
+
+        <xsl:variable name="outputours"><xsl:value-of select="output/param/@ours"></xsl:value-of></xsl:variable>
+        <xsl:variable name="outputtype">
+            <xsl:choose>
+                <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+                <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+            </xsl:choose>
+        </xsl:variable>
+        <xsl:choose>
+        <xsl:when test="$outputtype=''">axis2_status_t</xsl:when>
+        <xsl:when test="$outputtype!=''"><xsl:value-of select="$outputtype"/></xsl:when>
+        </xsl:choose>
+        <xsl:text> </xsl:text>
+        <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>( axis2_stub_t *stub, const axis2_env_t *env<xsl:for-each select="input/param[@type!='']">,
+                                                    <xsl:variable name="inputtype">
+                                                        <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+                                                    </xsl:variable>
+                                                    <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+                                                </xsl:for-each>);
+        </xsl:for-each>
+        </xsl:if>  <!--close for  test="$isSync='1'-->
+
+        <!-- Async method prototype generation -->
+        <xsl:if test="$isAsync='1'">
+        <xsl:for-each select="method">
+        /**
+         * auto generated function declaration
+         * for "<xsl:value-of select="@qname"/>" operation.
+         <!--  select only the body parameters  -->
+         <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+         * @param on_complete callback to handle on complete
+         * @param on_error callback to handle on error
+         */
+
+        <xsl:variable name="mep"><xsl:value-of select="@mep"/></xsl:variable>
+        <xsl:if test="$mep='12'">
+        void <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>_start( axis2_stub_t *stub, const axis2_env_t *env<xsl:for-each select="input/param[@type!='']">,
+                                                        <xsl:variable name="inputtype">
+                                                            <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+                                                        </xsl:variable>
+                                                        <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+                                                    </xsl:for-each>,
+                                                        axis2_status_t ( AXIS2_CALL *on_complete ) (struct axis2_callback *, const axis2_env_t* ) ,
+                                                        axis2_status_t ( AXIS2_CALL *on_error ) (struct axis2_callback *, const axis2_env_t*, int ) );
+
+        </xsl:if>  <!--close for  test="$mep='http://www.w3.org/2004/08/wsdl/in-out'"-->
+        </xsl:for-each>
+        </xsl:if>  <!--close for  test="$isAsync='1'-->
+   </xsl:template>
+</xsl:stylesheet>

Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl
------------------------------------------------------------------------------
    svn:executable = *

Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,375 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:output method="text"/>
+
+    <xsl:template match="/class">
+      <xsl:variable name="interfaceName"><xsl:value-of select="@interfaceName"/></xsl:variable>
+      <xsl:variable name="package"><xsl:value-of select="@package"/></xsl:variable>
+      <xsl:variable name="isSync"><xsl:value-of select="@isSync"/></xsl:variable>
+      <xsl:variable name="isAsync"><xsl:value-of select="@isAsync"/></xsl:variable>
+      <xsl:variable name="soapVersion"><xsl:value-of select="@soap-version"/></xsl:variable>
+      <xsl:variable name="callbackname"><xsl:value-of select="@callbackname"/></xsl:variable>
+      <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+      <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+
+      /**
+       * <xsl:value-of select="@name"/>.c
+       *
+       * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+       * by the Apache Axis2/C version: #axisVersion# #today#
+       */
+
+      #include "<xsl:value-of select="@name"/>.h"
+
+      /**
+       * <xsl:value-of select="@name"/> C implementation
+       */
+
+      axis2_stub_t*
+      <xsl:value-of select="$method-prefix"/>_create (const axis2_env_t *env,
+                                      axis2_char_t *client_home,
+                                      axis2_char_t *endpoint_uri)
+      {
+         axis2_stub_t *stub = NULL;
+         axis2_endpoint_ref_t *endpoint_ref = NULL;
+         AXIS2_FUNC_PARAM_CHECK ( client_home, env, NULL)
+
+         if (NULL == endpoint_uri )
+         {
+            endpoint_uri = <xsl:value-of select="$method-prefix"/>_get_endpoint_uri_from_wsdl( env );
+         }
+
+         endpoint_ref = axis2_endpoint_ref_create(env, endpoint_uri);
+
+         stub = axis2_stub_create_with_endpoint_ref_and_client_home ( env, endpoint_ref, client_home );
+         <xsl:value-of select="$method-prefix"/>_populate_services( stub, env );
+         return stub;
+      }
+
+
+      void <xsl:value-of select="$method-prefix"/>_populate_services( axis2_stub_t *stub, const axis2_env_t *env)
+      {
+         axis2_svc_client_t *svc_client = NULL;
+         axis2_qname_t *svc_qname =  NULL;
+         axis2_qname_t *op_qname =  NULL;
+         axis2_svc_t *svc = NULL;
+         axis2_op_t *op = NULL;
+
+         /* Modifying the Service */
+         svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+         svc = (axis2_svc_t*)AXIS2_SVC_CLIENT_GET_AXIS_SERVICE ( svc_client, env );
+         axis2_qname_create(env,"<xsl:value-of select="@servicename"/>" ,NULL, NULL);
+         AXIS2_SVC_SET_QNAME (svc, env, svc_qname);
+
+         /* creating the operations*/
+
+         <xsl:for-each select="method">
+
+           op_qname = axis2_qname_create(env,
+                                         "<xsl:value-of select="@localpart"/>" ,
+                                         "<xsl:value-of select="@namespace"/>",
+                                         NULL);
+           op = axis2_op_create_with_qname(env, op_qname);
+           <xsl:choose>
+             <xsl:when test="@mep='10'">
+               AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_IN_ONLY);
+             </xsl:when>
+             <xsl:otherwise>
+               AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_OUT_IN);
+             </xsl:otherwise>
+           </xsl:choose>
+           AXIS2_SVC_ADD_OP(svc, env, op);
+
+         </xsl:for-each>
+      }
+
+      /**
+       *return end point picked from wsdl
+       */
+      axis2_char_t*
+      <xsl:value-of select="$method-prefix"/>_get_endpoint_uri_from_wsdl ( const axis2_env_t *env )
+      {
+        axis2_char_t *endpoint_uri = NULL;
+        /* set the address from here */
+        <xsl:for-each select="endpoint">
+          <xsl:choose>
+            <xsl:when test="position()=1">
+              endpoint_uri = "<xsl:value-of select="."/>";
+            </xsl:when>
+           </xsl:choose>
+        </xsl:for-each>
+        return endpoint_uri;
+      }
+
+
+  <xsl:for-each select="method">
+    <xsl:variable name="outputours"><xsl:value-of select="output/param/@ours"></xsl:value-of></xsl:variable>
+    <xsl:variable name="outputtype">
+      <xsl:choose>
+        <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+        <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="caps-outputtype"><xsl:value-of select="output/param/@caps-type"></xsl:value-of></xsl:variable>
+    <xsl:variable name="style"><xsl:value-of select="@style"></xsl:value-of></xsl:variable>
+    <xsl:variable name="soapAction"><xsl:value-of select="@soapaction"></xsl:value-of></xsl:variable>
+    <xsl:variable name="mep"><xsl:value-of select="@mep"/></xsl:variable>
+
+    <xsl:variable name="method-name"><xsl:value-of select="@name"/></xsl:variable>
+    <xsl:variable name="method-ns"><xsl:value-of select="@namespace"/> </xsl:variable>
+
+    <!-- Code generation for the in-out mep -->
+    <xsl:if test="$mep='12'">
+      <xsl:if test="$isSync='1'">
+         /**
+          * auto generated method signature
+          * for "<xsl:value-of select="@qname"/>" operation.
+          <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+          * @return
+          */
+         <xsl:choose>
+         <xsl:when test="$outputtype=''">void</xsl:when> <!--this case is unexpected-->
+         <xsl:otherwise><xsl:value-of select="$outputtype"/></xsl:otherwise>
+         </xsl:choose>
+         <xsl:text> </xsl:text>
+         <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>( axis2_stub_t *stub, const axis2_env_t *env<xsl:for-each select="input/param[@type!='']">,
+                                              <xsl:variable name="inputtype">
+                                                  <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+                                              </xsl:variable>
+                                              <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+                                              </xsl:for-each>)
+         {
+            axis2_svc_client_t *svc_client = NULL;
+            axis2_options_t *options = NULL;
+            axiom_node_t *ret_node = NULL;
+
+            const axis2_char_t *soap_action = NULL;
+            axis2_qname_t *op_qname =  NULL;
+            axiom_node_t *payload = NULL;
+            <xsl:if test="output/param/@ours">
+           	    <!-- this means data binding is enable -->
+                <xsl:value-of select="$outputtype"/> ret_val = NULL;
+            </xsl:if>
+
+
+            <!-- for service client currently suppported only 1 input param -->
+            <xsl:for-each select="input/param[@type!='']">
+                <xsl:if test="position()=1">
+                    <xsl:choose>
+                        <xsl:when test="@ours">
+                            payload = AXIS2_<xsl:value-of select="@caps-type"/>_PARSE_OM(<xsl:value-of select="@name"/>, env, NULL);
+                        </xsl:when>
+                        <xsl:otherwise>
+                            payload = <xsl:value-of select="@name"/>;
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:if>
+            </xsl:for-each>
+
+
+            options = AXIS2_STUB_GET_OPTIONS( stub, env);
+            if ( NULL == options )
+            {
+              AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+                    " %d :: %s", env->error->error_number,
+                    AXIS2_ERROR_GET_MESSAGE(env->error));
+              return NULL;
+            }
+            svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+            soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+            if ( NULL == soap_action )
+            {
+              soap_action = "<xsl:value-of select="$soapAction"/>";
+              AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+            }
+            <xsl:if test="$soapVersion='1.2'">
+            AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP12 );
+            </xsl:if>
+            <xsl:if test="$soapVersion!='1.1'">
+            AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP11 );
+            </xsl:if>
+            op_qname = axis2_qname_create(env,
+                                        "<xsl:value-of select="@localpart"/>" ,
+                                        "<xsl:value-of select="@namespace"/>",
+                                        NULL);
+            ret_node =  AXIS2_SVC_CLIENT_SEND_RECEIVE_WITH_OP_QNAME( svc_client, env, op_qname, payload);
+
+
+            <xsl:choose>
+                <xsl:when test="$outputtype=''">
+                    return;
+                </xsl:when>
+                <xsl:when test="output/param/@ours">
+                    if ( NULL == ret_node )
+                    {
+                        return NULL;
+                    }
+                    ret_val = axis2_<xsl:value-of select="output/param/@type"/>_create(env);
+
+                    AXIS2_<xsl:value-of select="$caps-outputtype"/>_BUILD_OM(ret_val, env, ret_node );
+                    return ret_val;
+                </xsl:when>
+                <xsl:otherwise>
+                    return ret_node;
+                </xsl:otherwise>
+            </xsl:choose>
+        }
+        </xsl:if>  <!--close for  test="$isSync='1'-->
+        <!-- Async method generation -->
+        <xsl:if test="$isAsync='1'">
+        /**
+          * auto generated method signature for asynchronous invocations
+          * for "<xsl:value-of select="@qname"/>" operation.
+          <!--  select only the body parameters  -->
+          <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+          * @param on_complete callback to handle on complete
+          * @param on_error callback to handle on error
+          */
+         <xsl:variable name="callbackoncomplete"><xsl:value-of select="$callbackname"></xsl:value-of><xsl:text>_on_complete</xsl:text></xsl:variable>
+         <xsl:variable name="callbackonerror"><xsl:value-of select="$callbackname"></xsl:value-of><xsl:text>_on_error</xsl:text></xsl:variable>
+         void <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>_start( axis2_stub_t *stub, const axis2_env_t *env<xsl:for-each select="input/param[@type!='']">,
+                                                    <xsl:variable name="inputtype">
+                                                        <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+                                                    </xsl:variable>
+                                                    <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+                                                  </xsl:for-each>,
+                                                  axis2_status_t ( AXIS2_CALL *on_complete ) (struct axis2_callback *, const axis2_env_t *) ,
+                                                  axis2_status_t ( AXIS2_CALL *on_error ) (struct axis2_callback *, const axis2_env_t *, int ) )
+         {
+
+            axis2_callback_t *callback = NULL;
+
+            axis2_svc_client_t *svc_client = NULL;
+            axis2_options_t *options = NULL;
+
+            const axis2_char_t *soap_action = NULL;
+            axiom_node_t *payload = NULL;
+
+            <!-- for service client currently suppported only 1 input param -->
+            <xsl:for-each select="input/param[@type!='']">
+                <xsl:if test="position()=1">
+                    <xsl:choose>
+                        <xsl:when test="@ours">
+                            payload = AXIS2_<xsl:value-of select="@caps-type"/>_PARSE_OM(<xsl:value-of select="@name"/>, env, NULL);
+                        </xsl:when>
+                        <xsl:otherwise>
+                            payload = <xsl:value-of select="@name"/>;
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:if>
+            </xsl:for-each>
+
+
+            options = AXIS2_STUB_GET_OPTIONS( stub, env);
+            if ( NULL == options )
+            {
+              AXIS2_LOG_ERROR( env->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+                      " %d :: %s", env->error->error_number,
+                      AXIS2_ERROR_GET_MESSAGE(env->error));
+              return;
+            }
+            svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+            soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+            if ( NULL == soap_action )
+            {
+              soap_action = "<xsl:value-of select="$soapAction"/>";
+              AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+            }
+            <xsl:choose>
+             <xsl:when test="$soapVersion='1.2'">
+            AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP12 );
+             </xsl:when>
+             <xsl:otherwise>
+            AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP11 );
+             </xsl:otherwise>
+            </xsl:choose>
+
+            callback = axis2_callback_create(env);
+            /* Set our on_complete fucntion pointer to the callback object */
+            AXIS2_CALLBACK_SET_ON_COMPLETE(callback, on_complete);
+            /* Set our on_error function pointer to the callback object */
+            AXIS2_CALLBACK_SET_ON_ERROR(callback, on_error);
+
+            /* Send request */
+            AXIS2_SVC_CLIENT_SEND_RECEIVE_NON_BLOCKING(svc_client, env, payload, callback);
+         }
+
+         </xsl:if>  <!--close for  test="$isASync='1'-->
+       <!-- End of in-out mep -->
+       </xsl:if> <!-- close for  test="$mep='http://www.w3.org/2004/08/wsdl/in-out' -->
+
+       <xsl:if test="$mep='10'">
+         /**
+          * auto generated method signature for in only mep invocations
+          * for "<xsl:value-of select="@qname"/>" operation.
+          <!--  select only the body parameters  -->
+          <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+          * @param on_complete callback to handle on complete
+          * @param on_error callback to handle on error
+          */
+         axis2_status_t
+         <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>( axis2_stub_t *stub, const axis2_env_t *env <xsl:for-each select="input/param[@type!='']"> ,
+                                                 <xsl:variable name="inputtype">
+                                                    <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+                                                 </xsl:variable>
+                                                 <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+                                              </xsl:for-each>)
+         {
+            axis2_status_t status;
+
+            axis2_svc_client_t *svc_client = NULL;
+            axis2_options_t *options = NULL;
+
+            const axis2_char_t *soap_action = NULL;
+            axis2_qname_t *op_qname =  NULL;
+            axiom_node_t *payload = NULL;
+
+            <!-- for service client currently suppported only 1 input param -->
+            <xsl:for-each select="input/param[@type!='']">
+                <xsl:if test="position()=1">
+                    <xsl:choose>
+                        <xsl:when test="@ours">
+                            payload = AXIS2_<xsl:value-of select="@caps-type"/>_PARSE_OM(<xsl:value-of select="@name"/>, env, NULL);
+                        </xsl:when>
+                        <xsl:otherwise>
+                            payload = <xsl:value-of select="@name"/>;
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:if>
+            </xsl:for-each>
+
+
+            options = AXIS2_STUB_GET_OPTIONS( stub, env);
+            if ( NULL == options )
+            {
+              AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+                      " %d :: %s", env->error->error_number,
+                      AXIS2_ERROR_GET_MESSAGE(env->error));
+              return AXIS2_FAILURE;
+            }
+            svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+            soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+            if ( NULL == soap_action )
+            {
+              soap_action = "<xsl:value-of select="$soapAction"/>";
+              AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+            }
+            <xsl:choose>
+             <xsl:when test="$soapVersion='1.2'">
+            AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP12 );
+             </xsl:when>
+             <xsl:otherwise>
+            AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP11 );
+             </xsl:otherwise>
+            </xsl:choose>
+            op_qname = axis2_qname_create(env,
+                                        "<xsl:value-of select="@localpart"/>" ,
+                                        "<xsl:value-of select="@namespace"/>",
+                                        NULL);
+            status =  AXIS2_SVC_CLIENT_SEND_ROBUST_WITH_OP_QNAME( svc_client, env, op_qname, payload);
+            return status;
+
+        }
+       </xsl:if> <!-- close for  test="$mep='http://www.w3.org/2004/08/wsdl/in-only' -->
+     </xsl:for-each>   <!-- close of for-each select = "method" -->
+   </xsl:template>
+</xsl:stylesheet>

Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl
------------------------------------------------------------------------------
    svn:executable = *

Added: webservices/axis2/trunk/c/tools/codegen/src/typemappers/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/typemappers/Makefile.am?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/typemappers/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/typemappers/Makefile.am Wed Sep 27 06:16:04 2006
@@ -0,0 +1,2 @@
+samplesdir=$(prefix)/conf/typemappers
+samples_DATA= c.adb.typemap.xml  c.default.typemap.xml

Added: webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.adb.typemap.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.adb.typemap.xml?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.adb.typemap.xml (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.adb.typemap.xml Wed Sep 27 06:16:04 2006
@@ -0,0 +1,199 @@
+<mappings dbf="c-adb">
+    <mapping default="yes">
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">content</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">string</qname>
+        <value>axis2_char_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">boolean</qname>
+        <value>axis2_bool_t</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">double</qname>
+        <value>double</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">float</qname>
+        <value>float</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">int</qname>
+        <value>int</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">integer</qname>
+        <value>int</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">long</qname>
+        <value>long</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">short</qname>
+        <value>short</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">byte</qname>
+        <value>char</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">decimal</qname>
+        <value>int</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">base64Binary</qname>
+        <value>axis2_base64_binary_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">hexBinary</qname>
+        <value>void*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">anySimpleType</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">anyType</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">any</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">QName</qname>
+        <value>axis2_qname_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">dateTime</qname>
+        <value>axis2_date_time_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">date</qname>
+        <value>axis2_date_time_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">time</qname>
+        <value>axis2_date_time_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">unsignedLong</qname>
+        <value>unsigned long</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">unsignedInt</qname>
+        <value>unsigned int</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">unsignedShort</qname>
+        <value>unsigned short</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">unsignedByte</qname>
+        <value>unsigned char</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">positiveInteger</qname>
+        <value>unsigned int</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">negativeInteger</qname>
+        <value>int</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">nonNegativeInteger</qname>
+        <value>int</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">nonPositiveInteger</qname>
+        <value>int</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gYearMonth</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gMonthDay</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gYear</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gMonth</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gDay</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">duration</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">Name</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">NCName</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">NMTOKEN</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">NMTOKENS</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">NOTATION</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">ENTITY</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">ENTITIES</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">IDREF</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">IDREFS</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">anyURI</qname>
+        <value>axis2_uri_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">language</qname>
+        <value>axis2_char_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">ID</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">schema</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">normalizedString</qname>
+        <value>axis2_char_t*</value>
+    </mapping>
+    <mapping>
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">token</qname>
+        <value>axis2_char_t*</value>
+    </mapping>
+</mappings>
+

Added: webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.default.typemap.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.default.typemap.xml?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.default.typemap.xml (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.default.typemap.xml Wed Sep 27 06:16:04 2006
@@ -0,0 +1,7 @@
+<mappings dbf="c-default">
+    <mapping default="yes">
+        <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">content</qname>
+        <value>axiom_node_t*</value>
+    </mapping>
+</mappings>
+



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