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 2007/03/12 23:29:27 UTC
svn commit: r517431 - in
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp:
ClientStubWriter.java literal/ClientStubWriter.java
Author: nadiramra
Date: Mon Mar 12 15:29:26 2007
New Revision: 517431
URL: http://svn.apache.org/viewvc?view=rev&rev=517431
Log:
AXISCPP-1028 - More efficient use of memory resources.
Modified:
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java?view=diff&rev=517431&r1=517430&r2=517431
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java Mon Mar 12 15:29:26 2007
@@ -367,12 +367,20 @@
writer.write("\t\tm_pCall->setOperation( \""
+ minfo.getMethodname() + "\", \""
+ namespaceURI + "\");\n");
+
+
+ //=============================================================================
+ // Apply user specified properties
+ //=============================================================================
- //new calls from stub base
writer.write("\n");
writer.write ("\t\tincludeSecure();\n");
writer.write ("\t\tapplyUserPreferences();\n");
writer.write("\n");
+
+ //=============================================================================
+ // Process elements
+ //=============================================================================
for (int i = 0; i < paramsB.size(); i++)
{
@@ -448,6 +456,11 @@
writer.write(");\n");
}
+
+ //=============================================================================
+ // Invoke web service - two-way message processing
+ //=============================================================================
+
writer.write("\n\t\tif( AXIS_SUCCESS == m_pCall->sendAndReceive())\n\t\t{\n");
writer.write("\t\t\tif( AXIS_SUCCESS == m_pCall->checkMessage( \""
+ minfo.getOutputMessage().getLocalPart() + "\",\""
@@ -458,7 +471,11 @@
if( returntype != null)
paramTagName = returntype.getParamNameAsSOAPString();
-
+
+ //=============================================================================
+ // Process output parameters
+ //=============================================================================
+
if (isAllTreatedAsOutParams)
{
String currentParamName;
@@ -645,27 +662,27 @@
}
else if (returntypeissimple)
{
- writer.write("\t\t\t\t" + outparamType);
- if (!CUtils.isPointerType(outparamType))
- writer.write(" *");
-
- writer.write(" pReturn = m_pCall->"
- + CUtils.getParameterGetValueMethodName(outparamType,
- false) + "( \"" + paramTagName + "\", 0);\n\n");
- writer.write("\t\t\t\tif( pReturn)\n");
- writer.write("\t\t\t\t{\n");
- if (CUtils.isPointerType(outparamType))
+ if (returntype.isNillable () || CUtils.isPointerType(outparamType))
{
- writer.write("\t\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
- writer.write("\t\t\t\t\tstrcpy( Ret, pReturn);\n");
+ writer.write( "\t\t\t\tRet = m_pCall->"
+ + CUtils.getParameterGetValueMethodName( outparamType, false)
+ + "(\"" + returntype.getParamNameAsSOAPString() + "\", 0);\n");
}
- else if (returntype.isOptional() || returntype.isNillable())
- writer.write("\t\t\t\t\tRet = new " + outparamType + "( *pReturn);\n");
else
- writer.write("\t\t\t\t\tRet = *pReturn;\n");
-
- writer.write("\t\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
- writer.write("\t\t\t\t}\n");
+ {
+ writer.write ("\t\t\t\t" + outparamType + " * pReturn = m_pCall->" +
+ CUtils.getParameterGetValueMethodName(outparamType, false) + "(\"" +
+ returntype.getElementNameAsSOAPString() + "\", 0);\n");
+ writer.write ("\t\t\t\tif(pReturn)\n");
+ writer.write ("\t\t\t\t{\n");
+ writer.write ("\t\t\t\t\tRet = *pReturn;\n");
+ writer.write ("\t\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
+ writer.write ("\t\t\t\t}\n");
+
+ // TODO If we unexpectedly receive a nill value, when nillable="false" we should do something appropriate, perhaps as below:
+// writer.write("\t\t\telse");
+// writer.write("\t\t\t\tthrow new Exception(\"Unexpected use of nill\");");
+ }
writer.write("\t\t\t}\n");
writer.write("\t\t}\n\n");
writer.write("\t\tm_pCall->unInitialize();\n");
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java?view=diff&rev=517431&r1=517430&r2=517431
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java Mon Mar 12 15:29:26 2007
@@ -356,8 +356,11 @@
+ minfo.getInputMessage().getLocalPart() + "\", \""
+ minfo.getInputMessage().getNamespaceURI() + "\");\n");
}
-
+
+ //=============================================================================
// Add attributes to soap method
+ //=============================================================================
+
boolean commentIssued=false;
for (int i = 0; i < paramsB.size (); i++)
{
@@ -394,12 +397,18 @@
}
} // end for-loop
- //new calls from stub base
+ //=============================================================================
+ // Apply user specified properties
+ //=============================================================================
+
CUtils.printBlockComment(writer, "Apply SSL configuration properties and user-set SOAP headers.");
writer.write ("\t\tincludeSecure();\n");
writer.write ("\t\tapplyUserPreferences();\n");
+ //=============================================================================
// Process elements
+ //=============================================================================
+
commentIssued=false;
String tab2;
for (int i = 0; i < paramsB.size (); i++)
@@ -563,6 +572,9 @@
writer.write("\t\t}\n");
} // end for-loop
+ //=============================================================================
+ // Invoke web service - one-way or two-way message processing
+ //=============================================================================
if (minfo.getOutputMessage () != null)
{
@@ -578,6 +590,10 @@
writer.write ("\t\tif (AXIS_SUCCESS == m_pCall->send())\n\t\t{\n");
}
+ //=============================================================================
+ // Process output parameters
+ //=============================================================================
+
if (isAllTreatedAsOutParams)
{
String currentParamName;
@@ -763,7 +779,7 @@
} // end for-loop for paramsC
writer.write ("\t\t\t}\n");
- writer.write ("\t\t}\n");
+ writer.write ("\t\t}\n\n");
writer.write ("\t\tm_pCall->unInitialize();\n");
}
else if (returntype == null)
@@ -771,7 +787,7 @@
if (minfo.getOutputMessage () != null)
writer.write ("\t\t\t\t/*not successful*/\n\t\t\t}\n");
- writer.write ("\t\t}\n");
+ writer.write ("\t\t}\n\n");
writer.write ("\t\tm_pCall->unInitialize();\n");
}
else if (returntypeisarray)
@@ -803,91 +819,42 @@
}
writer.write ("\t\t\t}\n");
- writer.write ("\t\t}\n");
+ writer.write ("\t\t}\n\n");
writer.write ("\t\tm_pCall->unInitialize();\n");
writer.write ("\t\treturn RetArray;\n");
}
else if (returntypeissimple)
{
- if (returntype.isNillable ())
+ if (returntype.isNillable () || CUtils.isPointerType(outparamType))
{
- if( CUtils.isPointerType( outparamType))
- {
- writer.write( "\t\t\t\t" + outparamType + " pReturn = m_pCall->"
- + CUtils.getParameterGetValueMethodName( outparamType, false)
- + "(\"" + returntype.getParamNameAsSOAPString() + "\", 0);\n");
- }
- else
- {
- writer.write( "\t\t\t\t" + outparamType + " * pReturn = m_pCall->"
- + CUtils.getParameterGetValueMethodName( outparamType, false)
- + "(\"" + returntype.getParamNameAsSOAPString() + "\", 0);\n");
- }
-
- writer.write( "\n");
- writer.write( "\t\t\t\tif( pReturn != NULL)\n");
- writer.write( "\t\t\t\t{\n");
- if( CUtils.isPointerType(outparamType))
- {
- writer.write( "\t\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
- writer.write( "\t\t\t\t\tstrcpy( Ret, pReturn);\n");
- }
- else
- {
- writer.write( "\t\t\t\t\tRet = new " + outparamType + "();\n");
- writer.write( "\t\t\t\t\t*Ret = *pReturn;\n");
- }
-
- writer.write( "\t\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
- writer.write( "\t\t\t\t}\n");
- writer.write( "\t\t\t}\n");
+ writer.write( "\t\t\t\tRet = m_pCall->"
+ + CUtils.getParameterGetValueMethodName( outparamType, false)
+ + "(\"" + returntype.getParamNameAsSOAPString() + "\", 0);\n");
}
else
{
- if (CUtils.isPointerType(outparamType))
- {
- writer.write ("\t\t\t\t" + outparamType +
- " pReturn = m_pCall->" +
- CUtils.getParameterGetValueMethodName(outparamType,false) + "(\"" +
- returntype.getParamNameAsSOAPString () + "\", 0);\n");
- writer.write ("\t\t\t\tif(pReturn)\n");
- writer.write ("\t\t\t\t{\n");
- writer.write ("\t\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
- writer.write ("\t\t\t\t\tstrcpy( Ret, pReturn);\n");
- writer.write ("\t\t\t\t\tAxis::AxisDelete( pReturn, XSD_STRING);\n");
- writer.write ("\t\t\t\t}\n");
- }
- else
- {
- writer.write ("\t\t\t\t" + outparamType + " * pReturn = m_pCall->" +
- CUtils.getParameterGetValueMethodName(outparamType, false) + "(\"" +
- returntype.getElementNameAsSOAPString() + "\", 0);\n");
- writer.write ("\t\t\t\tif(pReturn)\n");
- writer.write ("\t\t\t\t{\n");
-
- if( CUtils.isPointerType( outparamType))
- writer.write ("\t\t\t\t\tRet = *pReturn;\n");
- else
- writer.write ("\t\t\t\t\tRet = *pReturn;\n");
-
- writer.write ("\t\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
- writer.write ("\t\t\t\t}\n");
- }
+ writer.write ("\t\t\t\t" + outparamType + " * pReturn = m_pCall->" +
+ CUtils.getParameterGetValueMethodName(outparamType, false) + "(\"" +
+ returntype.getElementNameAsSOAPString() + "\", 0);\n");
+ writer.write ("\t\t\t\tif(pReturn)\n");
+ writer.write ("\t\t\t\t{\n");
+ writer.write ("\t\t\t\t\tRet = *pReturn;\n");
+ writer.write ("\t\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
+ writer.write ("\t\t\t\t}\n");
// TODO If we unexpectedly receive a nill value, when nillable="false" we should do something appropriate, perhaps as below:
// writer.write("\t\t\telse");
// writer.write("\t\t\t\tthrow new Exception(\"Unexpected use of nill\");");
- writer.write ("\t\t\t}\n");
-
}
- writer.write ("\t\t}\n");
+ writer.write ("\t\t\t}\n");
+ writer.write ("\t\t}\n\n");
writer.write ("\t\tm_pCall->unInitialize();\n");
writer.write ("\t\treturn Ret;\n");
}
else if (returntype.isAnyType ())
{
writer.write ("\t\t\t\tpReturn = (" + outparamType + "*)m_pCall->getAnyObject();\n\t\t}\n");
- writer.write ("\t\t}\n");
+ writer.write ("\t\t}\n\n");
writer.write ("\t\tm_pCall->unInitialize();\n");
writer.write ("\t\treturn pReturn;\n");
}
@@ -911,7 +878,7 @@
returntype.getElementNameAsSOAPString () + "\", 0);\n\t\t\t}\n");
}
- writer.write ("\t\t}\n");
+ writer.write ("\t\t}\n\n");
writer.write ("\t\tm_pCall->unInitialize();\n");
writer.write ("\t\treturn pReturn;\n");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org