Author: robbinspg
Date: Tue Apr 25 04:59:31 2006
New Revision: 396854

URL: http://svn.apache.org/viewcvs?rev=396854&view=rev
Log:
TUSCANY-164 encode return type

Modified:
    incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.cpp
    incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.h
    
incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp
    
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp
    
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
    
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
    
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.cpp
    
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp
    
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.cpp
    
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.cpp

Modified: 
incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.cpp 
(original)
+++ incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.cpp 
Tue Apr 25 04:59:31 2006
@@ -86,87 +86,143 @@
         void Operation::addParameter(const void *parm)
         {
             LOGINFO(4, "Operation::addParameter(void*)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
VOID_TYPE));
+            parameters.insert(parameters.end(), Parameter((void*)parm, 
VOID_TYPE));
          }
 
         void Operation::addParameter(const bool *parm)
         {
             LOGINFO(4, "Operation::addParameter(bool)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
BOOL));
+            parameters.insert(parameters.end(), Parameter((void*)parm, BOOL));
         }
 
         void Operation::addParameter(const short *parm)
         {
             LOGINFO(4, "Operation::addParameter(short)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
SHORT));
+            parameters.insert(parameters.end(), Parameter((void*)parm, SHORT));
         }
 
         void Operation::addParameter(const long *parm)
         {
             LOGINFO(4, "Operation::addParameter(long)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
LONG));
+            parameters.insert(parameters.end(), Parameter((void*)parm, LONG));
         }
 
         void Operation::addParameter(const unsigned short *parm)
         {
             LOGINFO(4, "Operation::addParameter(unsigned short)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
USHORT));
+            parameters.insert(parameters.end(), Parameter((void*)parm, 
USHORT));
         }
 
         void Operation::addParameter(const unsigned long *parm)
         {
             LOGINFO(4, "Operation::addParameter(unsigned long)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
ULONG));
+            parameters.insert(parameters.end(), Parameter((void*)parm, ULONG));
         }
 
        void Operation::addParameter(const float *parm)
         {
             LOGINFO(4, "Operation::addParameter(float)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
FLOAT));
+            parameters.insert(parameters.end(), Parameter((void*)parm, FLOAT));
         }
 
        void Operation::addParameter(const double *parm)
         {
             LOGINFO(4, "Operation::addParameter(double)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
DOUBLE));
+            parameters.insert(parameters.end(), Parameter((void*)parm, 
DOUBLE));
         }
 
        void Operation::addParameter(const long double *parm)
         {
             LOGINFO(4, "Operation::addParameter(long double)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
LONGDOUBLE));
+            parameters.insert(parameters.end(), Parameter((void*)parm, 
LONGDOUBLE));
         }
 
         void Operation::addParameter(const char* *parm)
         {
             LOGINFO(4, "Operation::addParameter(char*)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
CHARS));
+            parameters.insert(parameters.end(), Parameter((void*)parm, CHARS));
         }
 
         void Operation::addParameter(const string *parm)
         {
             LOGINFO(4, "Operation::addParameter(string)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
STRING));
+            parameters.insert(parameters.end(), Parameter((void*)parm, 
STRING));
         }
 
         void Operation::addParameter(const DataObjectPtr *parm)
         {
             LOGINFO(4, "Operation::addParameter(DataObjectPtr)");
-            parameters.insert(parameters.begin(), Parameter((void*)parm, 
DATAOBJECT));
+            parameters.insert(parameters.end(), Parameter((void*)parm, 
DATAOBJECT));
         }
 
-        // ====================================
-        // setReturnValue: set the return value
-        // ====================================
-        void Operation::setReturnValue(void* val)
+        Operation::Parameter::Parameter(void* val, Operation::ParameterType 
typ)
+            : value(val), type(typ)
         {
-            returnValue = val;
         }
 
-        Operation::Parameter::Parameter(void* val, Operation::ParameterType 
typ)
-            : value(val), type(typ)
+        // ===========================================
+        // setReturnValue
+        // ===========================================
+        void Operation::setReturnValue(const void *parm)
+        {
+            returnValue = Parameter((void*)parm, VOID_TYPE);
+        }
+
+        void Operation::setReturnValue(const bool *parm)
+        {
+            returnValue = Parameter((void*)parm, BOOL);
+        }
+
+        void Operation::setReturnValue(const short *parm)
+        {
+            returnValue = Parameter((void*)parm, SHORT);
+        }
+
+        void Operation::setReturnValue(const long *parm)
+        {
+           returnValue = Parameter((void*)parm, LONG);
+        }
+
+        void Operation::setReturnValue(const unsigned short *parm)
+        {
+           returnValue = Parameter((void*)parm, USHORT);
+        }
+
+        void Operation::setReturnValue(const unsigned long *parm)
         {
+           returnValue = Parameter((void*)parm, ULONG);
         }
+
+       void Operation::setReturnValue(const float *parm)
+        {
+           returnValue = Parameter((void*)parm, FLOAT);
+        }
+
+       void Operation::setReturnValue(const double *parm)
+        {
+           returnValue = Parameter((void*)parm, DOUBLE);
+        }
+
+       void Operation::setReturnValue(const long double *parm)
+        {
+           returnValue = Parameter((void*)parm, LONGDOUBLE);
+        }
+
+        void Operation::setReturnValue(const char* *parm)
+        {
+           returnValue = Parameter((void*)parm, CHARS);
+        }
+
+        void Operation::setReturnValue(const string *parm)
+        {
+           returnValue = Parameter((void*)parm, STRING);
+        }
+
+        void Operation::setReturnValue(const DataObjectPtr *parm)
+        {
+           returnValue = Parameter((void*)parm, DATAOBJECT);
+        }
+
  
     } // End namespace sca
 } // End namespace tuscany

Modified: 
incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.h
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.h?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.h 
(original)
+++ incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/Operation.h Tue 
Apr 25 04:59:31 2006
@@ -76,7 +76,7 @@
             class Parameter
             {
                 public:
-                    SCA_API Parameter(void* value, ParameterType type);
+                    SCA_API Parameter(void* value = NULL, ParameterType type = 
VOID_TYPE);
                     SCA_API void* getValue() {return value;}
                     SCA_API ParameterType getType() {return type;}
 
@@ -86,6 +86,23 @@
             };
 
             /**
+             * Set a return value for the operation.
+             * @param retVal Pointer to the return value.
+             */
+            SCA_API void setReturnValue(const void *retVal);
+            SCA_API void setReturnValue(const bool *retVal);
+            SCA_API void setReturnValue(const short *retVal);
+            SCA_API void setReturnValue(const long *retVal);
+            SCA_API void setReturnValue(const unsigned short *retVal);
+            SCA_API void setReturnValue(const unsigned long *retVal);
+            SCA_API void setReturnValue(const float *retVal);
+            SCA_API void setReturnValue(const double *retVal);
+            SCA_API void setReturnValue(const long double *retVal);
+            SCA_API void setReturnValue(const char* *retVal);
+            SCA_API void setReturnValue(const string *retVal);
+            SCA_API void setReturnValue(const DataObjectPtr *retVal);
+
+            /**
              * Set a parameter on the operation.
              * @param pos The position of the parameter in the parameter list.
              * @param parm Pointer to the parameter to be passed.
@@ -103,7 +120,8 @@
             SCA_API void addParameter(const string *parm);
             SCA_API void addParameter(const DataObjectPtr *parm);
             
-            SCA_API unsigned int getNParms() {return parameters.size();} 
+            SCA_API unsigned int getNParms() {return parameters.size();}
+
             /**
              * Get a parameter from the operation.
              * @param pos The position of the parameter in the parameter list.
@@ -128,23 +146,8 @@
              */
             SCA_API void* getParameterValue(unsigned int pos);
 
-            /**
-             * Get the return value on the operation.
-             * Normally the client
-             * would set the return value and the service will get this
-             * return value pointer and set the return value.
-             * @return Pointer to the return type.
-             */
-            SCA_API void* getReturnValue() {return returnValue;}
-
-            /**
-             * Set the return value on the operation.
-             * Normally the client
-             * would set the return value pointer so that the service can 
-             * return a value
-             * @param valPtr Pointer to the return type.
-             */
-            SCA_API void setReturnValue(void* valPtr);
+            SCA_API ParameterType getReturnType() {return 
returnValue.getType();}
+            SCA_API void* getReturnValue() {return returnValue.getValue();}
 
         private:
             /**
@@ -159,10 +162,8 @@
             
             PARAMETER_VECTOR parameters;
 
-            /**
-             * The return value.
-             */ 
-            void* returnValue;
+            Parameter returnValue;
+
         };
     } // End namespace sca
 } // End namespace tuscany

Modified: 
incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp 
(original)
+++ 
incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp 
Tue Apr 25 04:59:31 2006
@@ -164,7 +164,7 @@
             Operation operation(operationName);
             operation.addParameter(&inDataObject);
             DataObjectPtr ret;
-            operation.setReturnValue((void *)&ret);
+            operation.setReturnValue(&ret);
 
             for (SERVICES::iterator iter = services.begin(); iter < 
services.end(); iter++)
             {                

Modified: 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp 
(original)
+++ 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp 
Tue Apr 25 04:59:31 2006
@@ -68,7 +68,7 @@
     
     if (!strcmp("12345", customerID))
     {
-        return "IBM";
+        return "xzderg";
     }
     else
     {

Modified: 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
 (original)
+++ 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.cpp
 Tue Apr 25 04:59:31 2006
@@ -53,12 +53,11 @@
 const char* 
CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformation(const char* 
arg0)
 {
     Operation operation("getCustomerInformation");
-
     operation.addParameter(&arg0);
-
- 
+    const char* ret;
+    operation.setReturnValue(&ret);
     target->invoke(operation);
-    return (const char*)operation.getReturnValue();
+    return ret;
 
 }
 

Modified: 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
 (original)
+++ 
incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
 Tue Apr 25 04:59:31 2006
@@ -60,7 +60,7 @@
     {
         const char* p0 = *(const char**)operation.getParameterValue(0);
 
-        operation.setReturnValue((void*) impl->getCustomerInformation(p0));
+        *(const char**)operation.getReturnValue() = 
impl->getCustomerInformation(p0);
         return;
     }
         

Modified: 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.cpp
 (original)
+++ 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.cpp
 Tue Apr 25 04:59:31 2006
@@ -53,49 +53,37 @@
 float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0)
 {
     Operation operation("getMyValue");
-
     operation.addParameter(&arg0);
-
- float ret;
-    operation.setReturnValue((void*)&ret);
+    float ret;
+    operation.setReturnValue(&ret);
     target->invoke(operation);
     return ret;
-
 }
 
 float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0)
 {
     Operation operation("getMyValueS");
-
     operation.addParameter(&arg0);
-
- float ret;
-    operation.setReturnValue((void*)&ret);
+    float ret;
+    operation.setReturnValue(&ret);
     target->invoke(operation);
     return ret;
-
 }
 
 string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0)
 {
     Operation operation("getCustname");
-
     operation.addParameter(&arg0);
-
- string ret;
-    operation.setReturnValue((void*)&ret);
+    string ret;
+    operation.setReturnValue(&ret);
     target->invoke(operation);
     return ret;
-
 }
 
 const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0)
 {
     Operation operation("getCustnamecs");
-
     operation.addParameter(&arg0);
-
- 
     target->invoke(operation);
     return *(const string*)operation.getReturnValue();
 

Modified: 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp
 (original)
+++ 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp
 Tue Apr 25 04:59:31 2006
@@ -78,7 +78,7 @@
     {
         string& p0 = *( string*)operation.getParameterValue(0);
         const string& ret = impl->getCustnamecs(p0);
-        operation.setReturnValue((void*)&ret);
+        operation.setReturnValue(&ret);
         return;
     }
         

Modified: 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.cpp
 (original)
+++ 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.cpp
 Tue Apr 25 04:59:31 2006
@@ -53,12 +53,11 @@
 const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* 
arg0)
 {
     Operation operation("getCustomerInformation");
-
     operation.addParameter(&arg0);
-
- 
+    const char* ret;
+    operation.setReturnValue(&ret);
     target->invoke(operation);
-    return (const char*)operation.getReturnValue();
+    return ret;
 
 }
 

Modified: 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.cpp
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.cpp?rev=396854&r1=396853&r2=396854&view=diff
==============================================================================
--- 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.cpp
 (original)
+++ 
incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.cpp
 Tue Apr 25 04:59:31 2006
@@ -57,7 +57,7 @@
     operation.addParameter(&arg0);
 
      commonj::sdo::DataObjectPtr ret = 0;
-    operation.setReturnValue((void*)&ret);
+    operation.setReturnValue(&ret);
 
     target->invoke(operation);
     return ret; 


Reply via email to