You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by aj...@apache.org on 2007/01/04 17:52:54 UTC

svn commit: r492635 [1/3] - in /incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput: CalculatorCompositeAndComponent/expected_output/ CalculatorSlashDirectionTest/expected_output/ CustomerInfoImplMultiParamDiffTypesTest/expected_output/ CustomerInf...

Author: ajborley
Date: Thu Jan  4 08:52:52 2007
New Revision: 492635

URL: http://svn.apache.org/viewvc?view=rev&rev=492635
Log:
Updated SCAGEN test output data

Removed:
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/
Modified:
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_customerInfo_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_stockQuote_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
    incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp

Modified: incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp?view=diff&rev=492635&r1=492634&r2=492635
==============================================================================
--- incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp (original)
+++ incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp Thu Jan  4 08:52:52 2007
@@ -20,8 +20,6 @@
 #include "CalculatorImpl_CalculatorService_Proxy.h"
 
 #include "osoa/sca/sca.h"
-using namespace osoa::sca;
-using namespace tuscany::sca;
 
 extern "C"
 {
@@ -29,7 +27,7 @@
     #if defined(WIN32) || defined(_WINDOWS)
     __declspec(dllexport) 
     #endif
-    CalculatorImpl_CalculatorService_Proxy* CalculatorImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target)
+    CalculatorImpl_CalculatorService_Proxy* CalculatorImpl_CalculatorService_Proxy_Factory(tuscany::sca::ServiceWrapper* target)
     {
         return new CalculatorImpl_CalculatorService_Proxy(target);
     }
@@ -43,7 +41,7 @@
     }
 }
 
-CalculatorImpl_CalculatorService_Proxy::CalculatorImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ)
+CalculatorImpl_CalculatorService_Proxy::CalculatorImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ)
 {
 }
 
@@ -55,13 +53,13 @@
 
 long CalculatorImpl_CalculatorService_Proxy::subtract( long arg0,  long arg1)
 {
-    Operation operation("subtract");
-    operation.addParameter(&arg0);
-    operation.addParameter(&arg1);
+    tuscany::sca::Operation operation("subtract");
+    operation.addParameter("a", &arg0);
+    operation.addParameter("b", &arg1);
     long ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(long*)operation.getReturnValue();
 }
 
 

Modified: incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp?view=diff&rev=492635&r1=492634&r2=492635
==============================================================================
--- incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp (original)
+++ incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp Thu Jan  4 08:52:52 2007
@@ -20,8 +20,6 @@
 #include "CalculatorImpl_CalculatorService_Wrapper.h"
 
 #include "osoa/sca/sca.h"
-using namespace osoa::sca;
-using namespace tuscany::sca;
 
 
 
@@ -37,7 +35,7 @@
     }
 }
 
-CalculatorImpl_CalculatorService_Wrapper::CalculatorImpl_CalculatorService_Wrapper(Service* target) : CPPServiceWrapper(target)
+CalculatorImpl_CalculatorService_Wrapper::CalculatorImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target)
 {
     impl = (CalculatorImpl*)getImplementation();
 }
@@ -57,20 +55,30 @@
     delete impl;
 }
 
-void CalculatorImpl_CalculatorService_Wrapper::invokeService(Operation& operation)
+void CalculatorImpl_CalculatorService_Wrapper::invokeService(tuscany::sca::Operation& operation)
 {
-    const string& operationName = operation.getName();
+    const std::string& operationName = operation.getName();
 
     if (operationName == "subtract")
     {
         long& p0 = *( long*)operation.getParameterValue(0);
         long& p1 = *( long*)operation.getParameterValue(1);
-        *(long*)operation.getReturnValue() = impl->subtract(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(long*)operation.getReturnValue() = impl->subtract(p0, p1);
+        }
+        else
+        {
+            long* ret = new long;
+            *ret = impl->subtract(p0, p1);
+            operation.setReturnValue((const long*)ret);
+        }
         return;
     }
         
 
-    throw ServiceRuntimeException("Invalid operation");
+    throw osoa::sca::ServiceRuntimeException("Invalid operation");
     
 }
 

Modified: incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp?view=diff&rev=492635&r1=492634&r2=492635
==============================================================================
--- incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp (original)
+++ incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp Thu Jan  4 08:52:52 2007
@@ -20,8 +20,6 @@
 #include "CalculatorBackImpl_CalculatorService_Proxy.h"
 
 #include "osoa/sca/sca.h"
-using namespace osoa::sca;
-using namespace tuscany::sca;
 
 extern "C"
 {
@@ -29,7 +27,7 @@
     #if defined(WIN32) || defined(_WINDOWS)
     __declspec(dllexport) 
     #endif
-    CalculatorBackImpl_CalculatorService_Proxy* CalculatorBackImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target)
+    CalculatorBackImpl_CalculatorService_Proxy* CalculatorBackImpl_CalculatorService_Proxy_Factory(tuscany::sca::ServiceWrapper* target)
     {
         return new CalculatorBackImpl_CalculatorService_Proxy(target);
     }
@@ -43,7 +41,7 @@
     }
 }
 
-CalculatorBackImpl_CalculatorService_Proxy::CalculatorBackImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ)
+CalculatorBackImpl_CalculatorService_Proxy::CalculatorBackImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ)
 {
 }
 
@@ -55,24 +53,24 @@
 
 long CalculatorBackImpl_CalculatorService_Proxy::subtractBack( long arg0,  long arg1)
 {
-    Operation operation("subtractBack");
+    tuscany::sca::Operation operation("subtractBack");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     long ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(long*)operation.getReturnValue();
 }
 
 long CalculatorBackImpl_CalculatorService_Proxy::addBack( long arg0,  long arg1)
 {
-    Operation operation("addBack");
+    tuscany::sca::Operation operation("addBack");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     long ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(long*)operation.getReturnValue();
 }
 
 

Modified: incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp?view=diff&rev=492635&r1=492634&r2=492635
==============================================================================
--- incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp (original)
+++ incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp Thu Jan  4 08:52:52 2007
@@ -20,8 +20,6 @@
 #include "CalculatorBackImpl_CalculatorService_Wrapper.h"
 
 #include "osoa/sca/sca.h"
-using namespace osoa::sca;
-using namespace tuscany::sca;
 
 
 
@@ -37,7 +35,7 @@
     }
 }
 
-CalculatorBackImpl_CalculatorService_Wrapper::CalculatorBackImpl_CalculatorService_Wrapper(Service* target) : CPPServiceWrapper(target)
+CalculatorBackImpl_CalculatorService_Wrapper::CalculatorBackImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target)
 {
     impl = (CalculatorBackImpl*)getImplementation();
 }
@@ -57,27 +55,47 @@
     delete impl;
 }
 
-void CalculatorBackImpl_CalculatorService_Wrapper::invokeService(Operation& operation)
+void CalculatorBackImpl_CalculatorService_Wrapper::invokeService(tuscany::sca::Operation& operation)
 {
-    const string& operationName = operation.getName();
+    const std::string& operationName = operation.getName();
 
     if (operationName == "subtractBack")
     {
         long& p0 = *( long*)operation.getParameterValue(0);
         long& p1 = *( long*)operation.getParameterValue(1);
-        *(long*)operation.getReturnValue() = impl->subtractBack(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(long*)operation.getReturnValue() = impl->subtractBack(p0, p1);
+        }
+        else
+        {
+            long* ret = new long;
+            *ret = impl->subtractBack(p0, p1);
+            operation.setReturnValue((const long*)ret);
+        }
         return;
     }
     if (operationName == "addBack")
     {
         long& p0 = *( long*)operation.getParameterValue(0);
         long& p1 = *( long*)operation.getParameterValue(1);
-        *(long*)operation.getReturnValue() = impl->addBack(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(long*)operation.getReturnValue() = impl->addBack(p0, p1);
+        }
+        else
+        {
+            long* ret = new long;
+            *ret = impl->addBack(p0, p1);
+            operation.setReturnValue((const long*)ret);
+        }
         return;
     }
         
 
-    throw ServiceRuntimeException("Invalid operation");
+    throw osoa::sca::ServiceRuntimeException("Invalid operation");
     
 }
 

Modified: incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp?view=diff&rev=492635&r1=492634&r2=492635
==============================================================================
--- incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp (original)
+++ incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp Thu Jan  4 08:52:52 2007
@@ -20,8 +20,6 @@
 #include "CalculatorForwardImpl_CalculatorService_Proxy.h"
 
 #include "osoa/sca/sca.h"
-using namespace osoa::sca;
-using namespace tuscany::sca;
 
 extern "C"
 {
@@ -29,7 +27,7 @@
     #if defined(WIN32) || defined(_WINDOWS)
     __declspec(dllexport) 
     #endif
-    CalculatorForwardImpl_CalculatorService_Proxy* CalculatorForwardImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target)
+    CalculatorForwardImpl_CalculatorService_Proxy* CalculatorForwardImpl_CalculatorService_Proxy_Factory(tuscany::sca::ServiceWrapper* target)
     {
         return new CalculatorForwardImpl_CalculatorService_Proxy(target);
     }
@@ -43,7 +41,7 @@
     }
 }
 
-CalculatorForwardImpl_CalculatorService_Proxy::CalculatorForwardImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ)
+CalculatorForwardImpl_CalculatorService_Proxy::CalculatorForwardImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ)
 {
 }
 
@@ -55,24 +53,24 @@
 
 long CalculatorForwardImpl_CalculatorService_Proxy::subtractForward( long arg0,  long arg1)
 {
-    Operation operation("subtractForward");
+    tuscany::sca::Operation operation("subtractForward");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     long ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(long*)operation.getReturnValue();
 }
 
 long CalculatorForwardImpl_CalculatorService_Proxy::addForward( long arg0,  long arg1)
 {
-    Operation operation("addForward");
+    tuscany::sca::Operation operation("addForward");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     long ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(long*)operation.getReturnValue();
 }
 
 

Modified: incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp?view=diff&rev=492635&r1=492634&r2=492635
==============================================================================
--- incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp (original)
+++ incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp Thu Jan  4 08:52:52 2007
@@ -20,8 +20,6 @@
 #include "CalculatorForwardImpl_CalculatorService_Wrapper.h"
 
 #include "osoa/sca/sca.h"
-using namespace osoa::sca;
-using namespace tuscany::sca;
 
 
 
@@ -37,7 +35,7 @@
     }
 }
 
-CalculatorForwardImpl_CalculatorService_Wrapper::CalculatorForwardImpl_CalculatorService_Wrapper(Service* target) : CPPServiceWrapper(target)
+CalculatorForwardImpl_CalculatorService_Wrapper::CalculatorForwardImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target)
 {
     impl = (CalculatorForwardImpl*)getImplementation();
 }
@@ -57,27 +55,47 @@
     delete impl;
 }
 
-void CalculatorForwardImpl_CalculatorService_Wrapper::invokeService(Operation& operation)
+void CalculatorForwardImpl_CalculatorService_Wrapper::invokeService(tuscany::sca::Operation& operation)
 {
-    const string& operationName = operation.getName();
+    const std::string& operationName = operation.getName();
 
     if (operationName == "subtractForward")
     {
         long& p0 = *( long*)operation.getParameterValue(0);
         long& p1 = *( long*)operation.getParameterValue(1);
-        *(long*)operation.getReturnValue() = impl->subtractForward(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(long*)operation.getReturnValue() = impl->subtractForward(p0, p1);
+        }
+        else
+        {
+            long* ret = new long;
+            *ret = impl->subtractForward(p0, p1);
+            operation.setReturnValue((const long*)ret);
+        }
         return;
     }
     if (operationName == "addForward")
     {
         long& p0 = *( long*)operation.getParameterValue(0);
         long& p1 = *( long*)operation.getParameterValue(1);
-        *(long*)operation.getReturnValue() = impl->addForward(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(long*)operation.getReturnValue() = impl->addForward(p0, p1);
+        }
+        else
+        {
+            long* ret = new long;
+            *ret = impl->addForward(p0, p1);
+            operation.setReturnValue((const long*)ret);
+        }
         return;
     }
         
 
-    throw ServiceRuntimeException("Invalid operation");
+    throw osoa::sca::ServiceRuntimeException("Invalid operation");
     
 }
 

Modified: incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp?view=diff&rev=492635&r1=492634&r2=492635
==============================================================================
--- incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp (original)
+++ incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp Thu Jan  4 08:52:52 2007
@@ -20,8 +20,6 @@
 #include "CustomerInfoImpl_CustomerInfoService_Proxy.h"
 
 #include "osoa/sca/sca.h"
-using namespace osoa::sca;
-using namespace tuscany::sca;
 
 extern "C"
 {
@@ -29,7 +27,7 @@
     #if defined(WIN32) || defined(_WINDOWS)
     __declspec(dllexport) 
     #endif
-    CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target)
+    CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(tuscany::sca::ServiceWrapper* target)
     {
         return new CustomerInfoImpl_CustomerInfoService_Proxy(target);
     }
@@ -43,7 +41,7 @@
     }
 }
 
-CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ)
+CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ)
 {
 }
 
@@ -55,85 +53,85 @@
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationChar( char* arg0, const char* arg1)
 {
-    Operation operation("getCustomerInformationChar");
+    tuscany::sca::Operation operation("getCustomerInformationChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAChar( char* arg0, const char* arg1)
 {
-    Operation operation("getCustomerInfoAChar");
+    tuscany::sca::Operation operation("getCustomerInfoAChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBChar( char* arg0,  char* arg1)
 {
-    Operation operation("getCustomerInfoBChar");
+    tuscany::sca::Operation operation("getCustomerInfoBChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCChar( char* arg0,  char arg1)
 {
-    Operation operation("getCustomerInfoCChar");
+    tuscany::sca::Operation operation("getCustomerInfoCChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDChar( char* arg0,  char arg1)
 {
-    Operation operation("getCustomerInfoDChar");
+    tuscany::sca::Operation operation("getCustomerInfoDChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEChar( char* arg0,  char* arg1)
 {
-    Operation operation("getCustomerInfoEChar");
+    tuscany::sca::Operation operation("getCustomerInfoEChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFChar( char* arg0,  char* arg1,  char* arg2)
 {
-    Operation operation("getCustomerInfoFChar");
+    tuscany::sca::Operation operation("getCustomerInfoFChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     operation.addParameter(&arg2);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGChar( char* arg0,  char* arg1,  char* arg2,  signed char* arg3)
 {
-    Operation operation("getCustomerInfoGChar");
+    tuscany::sca::Operation operation("getCustomerInfoGChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     operation.addParameter(&arg2);
@@ -141,342 +139,342 @@
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0, const char arg1)
 {
-    Operation operation("getCustomerInfoHChar");
+    tuscany::sca::Operation operation("getCustomerInfoHChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0, const char* arg1)
 {
-    Operation operation("getCustomerInfoHChar");
+    tuscany::sca::Operation operation("getCustomerInfoHChar");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationLong(const long* arg0, const long* arg1)
 {
-    Operation operation("getCustomerInformationLong");
+    tuscany::sca::Operation operation("getCustomerInformationLong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoALong(const long* arg0, const long* arg1)
 {
-    Operation operation("getCustomerInfoALong");
+    tuscany::sca::Operation operation("getCustomerInfoALong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBLong( long* arg0,  long* arg1)
 {
-    Operation operation("getCustomerInfoBLong");
+    tuscany::sca::Operation operation("getCustomerInfoBLong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCLong( long arg0,  long arg1)
 {
-    Operation operation("getCustomerInfoCLong");
+    tuscany::sca::Operation operation("getCustomerInfoCLong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDLong( long arg0,  long arg1)
 {
-    Operation operation("getCustomerInfoDLong");
+    tuscany::sca::Operation operation("getCustomerInfoDLong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoELong( long* arg0,  long* arg1)
 {
-    Operation operation("getCustomerInfoELong");
+    tuscany::sca::Operation operation("getCustomerInfoELong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFLong( long* arg0,  long* arg1)
 {
-    Operation operation("getCustomerInfoFLong");
+    tuscany::sca::Operation operation("getCustomerInfoFLong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGLong( signed long* arg0,  signed long* arg1)
 {
-    Operation operation("getCustomerInfoGLong");
+    tuscany::sca::Operation operation("getCustomerInfoGLong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHLong( signed long* arg0,  signed long* arg1)
 {
-    Operation operation("getCustomerInfoHLong");
+    tuscany::sca::Operation operation("getCustomerInfoHLong");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const long* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const long**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationInt( char* arg0, const int* arg1)
 {
-    Operation operation("getCustomerInformationInt");
+    tuscany::sca::Operation operation("getCustomerInformationInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInt( char* arg0, const int* arg1)
 {
-    Operation operation("getCustomerInfoAInt");
+    tuscany::sca::Operation operation("getCustomerInfoAInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInt( char* arg0,  int* arg1)
 {
-    Operation operation("getCustomerInfoBInt");
+    tuscany::sca::Operation operation("getCustomerInfoBInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInt( char* arg0,  int arg1)
 {
-    Operation operation("getCustomerInfoCInt");
+    tuscany::sca::Operation operation("getCustomerInfoCInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDInt( char* arg0,  int arg1)
 {
-    Operation operation("getCustomerInfoDInt");
+    tuscany::sca::Operation operation("getCustomerInfoDInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEInt( char* arg0,  int* arg1)
 {
-    Operation operation("getCustomerInfoEInt");
+    tuscany::sca::Operation operation("getCustomerInfoEInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFInt( char* arg0,  int* arg1)
 {
-    Operation operation("getCustomerInfoFInt");
+    tuscany::sca::Operation operation("getCustomerInfoFInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGInt( char* arg0,  signed int* arg1)
 {
-    Operation operation("getCustomerInfoGInt");
+    tuscany::sca::Operation operation("getCustomerInfoGInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHInt( char* arg0,  unsigned int* arg1)
 {
-    Operation operation("getCustomerInfoHInt");
+    tuscany::sca::Operation operation("getCustomerInfoHInt");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const int**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationint64( Diamond& arg0, const __int64* arg1)
 {
-    Operation operation("getCustomerInformationint64");
+    tuscany::sca::Operation operation("getCustomerInformationint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAint64( Diamond& arg0, const __int64* arg1)
 {
-    Operation operation("getCustomerInfoAint64");
+    tuscany::sca::Operation operation("getCustomerInfoAint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBint64( Diamond& arg0,  __int64* arg1)
 {
-    Operation operation("getCustomerInfoBint64");
+    tuscany::sca::Operation operation("getCustomerInfoBint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCint64( Diamond& arg0,  __int64 arg1)
 {
-    Operation operation("getCustomerInfoCint64");
+    tuscany::sca::Operation operation("getCustomerInfoCint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDint64( Diamond& arg0,  __int64 arg1)
 {
-    Operation operation("getCustomerInfoDint64");
+    tuscany::sca::Operation operation("getCustomerInfoDint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEint64( Diamond& arg0,  __int64* arg1)
 {
-    Operation operation("getCustomerInfoEint64");
+    tuscany::sca::Operation operation("getCustomerInfoEint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFint64( Diamond& arg0,  __int64* arg1)
 {
-    Operation operation("getCustomerInfoFint64");
+    tuscany::sca::Operation operation("getCustomerInfoFint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGint64( Diamond& arg0,  signed __int64* arg1)
 {
-    Operation operation("getCustomerInfoGint64");
+    tuscany::sca::Operation operation("getCustomerInfoGint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHint64(const Diamond& arg0,  unsigned int64* arg1)
 {
-    Operation operation("getCustomerInfoHint64");
+    tuscany::sca::Operation operation("getCustomerInfoHint64");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const __int64* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const __int64**)operation.getReturnValue();
 }
 
 const void* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationVoid( float& arg0, const __int64* arg1)
 {
-    Operation operation("getCustomerInformationVoid");
+    tuscany::sca::Operation operation("getCustomerInformationVoid");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     const void* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const void**)operation.getReturnValue();
 }
 
 void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAVoid(const float& arg0, const __int64* arg1)
 {
-    Operation operation("getCustomerInfoAVoid");
+    tuscany::sca::Operation operation("getCustomerInfoAVoid");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     target->invoke(operation);
@@ -485,21 +483,21 @@
 
 void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBVoid()
 {
-    Operation operation("getCustomerInfoBVoid");
+    tuscany::sca::Operation operation("getCustomerInfoBVoid");
     target->invoke(operation);
     return;
 }
 
 void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCVoid()
 {
-    Operation operation("getCustomerInfoCVoid");
+    tuscany::sca::Operation operation("getCustomerInfoCVoid");
     target->invoke(operation);
     return;
 }
 
 void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDVoid()
 {
-    Operation operation("getCustomerInfoDVoid");
+    tuscany::sca::Operation operation("getCustomerInfoDVoid");
     operation.addParameter(&arg0);
     target->invoke(operation);
     return;
@@ -507,36 +505,36 @@
 
 char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEVoid()
 {
-    Operation operation("getCustomerInfoEVoid");
+    tuscany::sca::Operation operation("getCustomerInfoEVoid");
     operation.addParameter(&arg0);
     char ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(char*)operation.getReturnValue();
 }
 
 char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFVoid()
 {
-    Operation operation("getCustomerInfoFVoid");
+    tuscany::sca::Operation operation("getCustomerInfoFVoid");
     char ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(char*)operation.getReturnValue();
 }
 
 char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGVoid()
 {
-    Operation operation("getCustomerInfoGVoid");
+    tuscany::sca::Operation operation("getCustomerInfoGVoid");
     operation.addParameter(&arg0);
     char ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(char*)operation.getReturnValue();
 }
 
 const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInline( int arg0,  int arg1,  int arg2,  int arg3,  char* customer arg4)
 {
-    Operation operation("getCustomerInfoAInline");
+    tuscany::sca::Operation operation("getCustomerInfoAInline");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     operation.addParameter(&arg2);
@@ -545,12 +543,12 @@
     const char* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(const char**)operation.getReturnValue();
 }
 
 int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInline( int* arg0,  int* arg1,  int* arg2,  char* customer arg3)
 {
-    Operation operation("getCustomerInfoBInline");
+    tuscany::sca::Operation operation("getCustomerInfoBInline");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     operation.addParameter(&arg2);
@@ -558,39 +556,39 @@
     int ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(int*)operation.getReturnValue();
 }
 
 friend const unsigned int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInline( char* customer arg0)
 {
-    Operation operation("getCustomerInfoCInline");
+    tuscany::sca::Operation operation("getCustomerInfoCInline");
     operation.addParameter(&arg0);
     friend const unsigned int* ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(friend const unsigned int**)operation.getReturnValue();
 }
 
 int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyA(const char arg0, const char arg1)
 {
-    Operation operation("getCustomerInfoTrickyA");
+    tuscany::sca::Operation operation("getCustomerInfoTrickyA");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     int ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(int*)operation.getReturnValue();
 }
 
 int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyB( int arg0,  int arg1)
 {
-    Operation operation("getCustomerInfoTrickyB");
+    tuscany::sca::Operation operation("getCustomerInfoTrickyB");
     operation.addParameter(&arg0);
     operation.addParameter(&arg1);
     int ret;
     operation.setReturnValue(&ret);
     target->invoke(operation);
-    return ret;
+    return *(int*)operation.getReturnValue();
 }
 
 

Modified: incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp?view=diff&rev=492635&r1=492634&r2=492635
==============================================================================
--- incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp (original)
+++ incubator/tuscany/cpp/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp Thu Jan  4 08:52:52 2007
@@ -20,8 +20,6 @@
 #include "CustomerInfoImpl_CustomerInfoService_Wrapper.h"
 
 #include "osoa/sca/sca.h"
-using namespace osoa::sca;
-using namespace tuscany::sca;
 
 
 
@@ -37,7 +35,7 @@
     }
 }
 
-CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : CPPServiceWrapper(target)
+CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target)
 {
     impl = (CustomerInfoImpl*)getImplementation();
 }
@@ -57,50 +55,110 @@
     delete impl;
 }
 
-void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation)
+void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(tuscany::sca::Operation& operation)
 {
-    const string& operationName = operation.getName();
+    const std::string& operationName = operation.getName();
 
     if (operationName == "getCustomerInformationChar")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         const char* p1 = *(const char**)operation.getParameterValue(1);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInformationChar(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInformationChar(p0, p1);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInformationChar(p0, p1);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoAChar")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         const char* p1 = *(const char**)operation.getParameterValue(1);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoAChar(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoAChar(p0, p1);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoAChar(p0, p1);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoBChar")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         char* p1 = *( char**)operation.getParameterValue(1);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoBChar(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoBChar(p0, p1);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoBChar(p0, p1);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoCChar")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         char& p1 = *( char*)operation.getParameterValue(1);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoCChar(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoCChar(p0, p1);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoCChar(p0, p1);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoDChar")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         char& p1 = *( char*)operation.getParameterValue(1);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoDChar(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoDChar(p0, p1);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoDChar(p0, p1);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoEChar")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         char* p1 = *( char**)operation.getParameterValue(1);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoEChar(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoEChar(p0, p1);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoEChar(p0, p1);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoFChar")
@@ -108,7 +166,17 @@
         char* p0 = *( char**)operation.getParameterValue(0);
         char* p1 = *( char**)operation.getParameterValue(1);
         char* p2 = *( char**)operation.getParameterValue(2);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoFChar(p0, p1, p2);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoFChar(p0, p1, p2);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoFChar(p0, p1, p2);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoGChar")
@@ -117,217 +185,527 @@
         char* p1 = *( char**)operation.getParameterValue(1);
         char* p2 = *( char**)operation.getParameterValue(2);
         signed char* p3 = *( signed char**)operation.getParameterValue(3);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoGChar(p0, p1, p2, p3);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoGChar(p0, p1, p2, p3);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoGChar(p0, p1, p2, p3);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoHChar")
     {
         unsigned char* p0 = *( unsigned char**)operation.getParameterValue(0);
         const char& p1 = *(const char*)operation.getParameterValue(1);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoHChar(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoHChar(p0, p1);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoHChar(p0, p1);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoHChar")
     {
         unsigned char* p0 = *( unsigned char**)operation.getParameterValue(0);
         const char* p1 = *(const char**)operation.getParameterValue(1);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoHChar(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoHChar(p0, p1);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoHChar(p0, p1);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInformationLong")
     {
         const long* p0 = *(const long**)operation.getParameterValue(0);
         const long* p1 = *(const long**)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInformationLong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInformationLong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInformationLong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoALong")
     {
         const long* p0 = *(const long**)operation.getParameterValue(0);
         const long* p1 = *(const long**)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInfoALong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInfoALong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInfoALong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoBLong")
     {
         long* p0 = *( long**)operation.getParameterValue(0);
         long* p1 = *( long**)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInfoBLong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInfoBLong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInfoBLong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoCLong")
     {
         long& p0 = *( long*)operation.getParameterValue(0);
         long& p1 = *( long*)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInfoCLong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInfoCLong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInfoCLong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoDLong")
     {
         long& p0 = *( long*)operation.getParameterValue(0);
         long& p1 = *( long*)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInfoDLong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInfoDLong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInfoDLong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoELong")
     {
         long* p0 = *( long**)operation.getParameterValue(0);
         long* p1 = *( long**)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInfoELong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInfoELong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInfoELong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoFLong")
     {
         long* p0 = *( long**)operation.getParameterValue(0);
         long* p1 = *( long**)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInfoFLong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInfoFLong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInfoFLong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoGLong")
     {
         signed long* p0 = *( signed long**)operation.getParameterValue(0);
         signed long* p1 = *( signed long**)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInfoGLong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInfoGLong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInfoGLong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoHLong")
     {
         signed long* p0 = *( signed long**)operation.getParameterValue(0);
         signed long* p1 = *( signed long**)operation.getParameterValue(1);
-        *(const long**)operation.getReturnValue() = impl->getCustomerInfoHLong(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const long**)operation.getReturnValue() = impl->getCustomerInfoHLong(p0, p1);
+        }
+        else
+        {
+            const long** ret = new const long*;
+            *ret = impl->getCustomerInfoHLong(p0, p1);
+            operation.setReturnValue((const const long**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInformationInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         const int* p1 = *(const int**)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInformationInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInformationInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInformationInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoAInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         const int* p1 = *(const int**)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInfoAInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInfoAInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInfoAInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoBInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         int* p1 = *( int**)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInfoBInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInfoBInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInfoBInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoCInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         int& p1 = *( int*)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInfoCInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInfoCInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInfoCInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoDInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         int& p1 = *( int*)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInfoDInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInfoDInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInfoDInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoEInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         int* p1 = *( int**)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInfoEInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInfoEInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInfoEInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoFInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         int* p1 = *( int**)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInfoFInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInfoFInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInfoFInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoGInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         signed int* p1 = *( signed int**)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInfoGInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInfoGInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInfoGInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoHInt")
     {
         char* p0 = *( char**)operation.getParameterValue(0);
         unsigned int* p1 = *( unsigned int**)operation.getParameterValue(1);
-        *(const int**)operation.getReturnValue() = impl->getCustomerInfoHInt(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const int**)operation.getReturnValue() = impl->getCustomerInfoHInt(p0, p1);
+        }
+        else
+        {
+            const int** ret = new const int*;
+            *ret = impl->getCustomerInfoHInt(p0, p1);
+            operation.setReturnValue((const const int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInformationint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         const __int64* p1 = *(const __int64**)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInformationint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInformationint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInformationint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoAint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         const __int64* p1 = *(const __int64**)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoAint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoAint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInfoAint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoBint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         __int64* p1 = *( __int64**)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoBint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoBint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInfoBint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoCint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         __int64& p1 = *( __int64*)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoCint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoCint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInfoCint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoDint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         __int64& p1 = *( __int64*)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoDint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoDint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInfoDint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoEint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         __int64* p1 = *( __int64**)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoEint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoEint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInfoEint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoFint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         __int64* p1 = *( __int64**)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoFint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoFint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInfoFint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoGint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         signed __int64* p1 = *( signed __int64**)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoGint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoGint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInfoGint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoHint64")
     {
         Diamond& p0 = *(Diamond*)operation.getParameterValue(0);
         unsigned int64* p1 = *( unsigned int64**)operation.getParameterValue(1);
-        *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoHint64(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoHint64(p0, p1);
+        }
+        else
+        {
+            const __int64** ret = new const __int64*;
+            *ret = impl->getCustomerInfoHint64(p0, p1);
+            operation.setReturnValue((const const __int64**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInformationVoid")
     {
         float& p0 = *(float*)operation.getParameterValue(0);
         const __int64* p1 = *(const __int64**)operation.getParameterValue(1);
-        *(const void**)operation.getReturnValue() = impl->getCustomerInformationVoid(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const void**)operation.getReturnValue() = impl->getCustomerInformationVoid(p0, p1);
+        }
+        else
+        {
+            const void** ret = new const void*;
+            *ret = impl->getCustomerInformationVoid(p0, p1);
+            operation.setReturnValue((const const void**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoAVoid")
@@ -354,17 +732,47 @@
     }
     if (operationName == "getCustomerInfoEVoid")
     {
-        *(char*)operation.getReturnValue() = impl->getCustomerInfoEVoid();
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(char*)operation.getReturnValue() = impl->getCustomerInfoEVoid();
+        }
+        else
+        {
+            char* ret = new char;
+            *ret = impl->getCustomerInfoEVoid();
+            operation.setReturnValue((const char*)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoFVoid")
     {
-        *(char*)operation.getReturnValue() = impl->getCustomerInfoFVoid();
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(char*)operation.getReturnValue() = impl->getCustomerInfoFVoid();
+        }
+        else
+        {
+            char* ret = new char;
+            *ret = impl->getCustomerInfoFVoid();
+            operation.setReturnValue((const char*)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoGVoid")
     {
-        *(char*)operation.getReturnValue() = impl->getCustomerInfoGVoid();
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(char*)operation.getReturnValue() = impl->getCustomerInfoGVoid();
+        }
+        else
+        {
+            char* ret = new char;
+            *ret = impl->getCustomerInfoGVoid();
+            operation.setReturnValue((const char*)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoAInline")
@@ -374,7 +782,17 @@
         int& p2 = *( int*)operation.getParameterValue(2);
         int& p3 = *( int*)operation.getParameterValue(3);
         char* customer p4 = *( char* customer*)operation.getParameterValue(4);
-        *(const char**)operation.getReturnValue() = impl->getCustomerInfoAInline(p0, p1, p2, p3, p4);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(const char**)operation.getReturnValue() = impl->getCustomerInfoAInline(p0, p1, p2, p3, p4);
+        }
+        else
+        {
+            const char** ret = new const char*;
+            *ret = impl->getCustomerInfoAInline(p0, p1, p2, p3, p4);
+            operation.setReturnValue((const const char**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoBInline")
@@ -383,32 +801,72 @@
         int* p1 = *( int**)operation.getParameterValue(1);
         int* p2 = *( int**)operation.getParameterValue(2);
         char* customer p3 = *( char* customer*)operation.getParameterValue(3);
-        *(int*)operation.getReturnValue() = impl->getCustomerInfoBInline(p0, p1, p2, p3);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(int*)operation.getReturnValue() = impl->getCustomerInfoBInline(p0, p1, p2, p3);
+        }
+        else
+        {
+            int* ret = new int;
+            *ret = impl->getCustomerInfoBInline(p0, p1, p2, p3);
+            operation.setReturnValue((const int*)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoCInline")
     {
         char* customer p0 = *( char* customer*)operation.getParameterValue(0);
-        *(friend const unsigned int**)operation.getReturnValue() = impl->getCustomerInfoCInline(p0);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(friend const unsigned int**)operation.getReturnValue() = impl->getCustomerInfoCInline(p0);
+        }
+        else
+        {
+            friend const unsigned int** ret = new friend const unsigned int*;
+            *ret = impl->getCustomerInfoCInline(p0);
+            operation.setReturnValue((const friend const unsigned int**)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoTrickyA")
     {
         const char& p0 = *(const char*)operation.getParameterValue(0);
         const char& p1 = *(const char*)operation.getParameterValue(1);
-        *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyA(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyA(p0, p1);
+        }
+        else
+        {
+            int* ret = new int;
+            *ret = impl->getCustomerInfoTrickyA(p0, p1);
+            operation.setReturnValue((const int*)ret);
+        }
         return;
     }
     if (operationName == "getCustomerInfoTrickyB")
     {
         int& p0 = *( int*)operation.getParameterValue(0);
         int& p1 = *( int*)operation.getParameterValue(1);
-        *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyB(p0, p1);
+
+        if(operation.getReturnValue() != NULL)
+        {
+            *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyB(p0, p1);
+        }
+        else
+        {
+            int* ret = new int;
+            *ret = impl->getCustomerInfoTrickyB(p0, p1);
+            operation.setReturnValue((const int*)ret);
+        }
         return;
     }
         
 
-    throw ServiceRuntimeException("Invalid operation");
+    throw osoa::sca::ServiceRuntimeException("Invalid operation");
     
 }
 



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