You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/08/28 12:42:20 UTC

svn commit: r437637 [6/8] - in /incubator/tuscany/cpp/sca: runtime/core/src/ runtime/core/src/osoa/sca/ runtime/core/src/tuscany/sca/core/ runtime/core/src/tuscany/sca/cpp/ runtime/core/src/tuscany/sca/extension/ runtime/core/src/tuscany/sca/model/ run...

Modified: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.cpp Mon Aug 28 03:42:10 2006
@@ -21,658 +21,660 @@
 #include "tuscany/sca/util/Logging.h"
 #include "tuscany/sca/util/Utils.h"
 #include "tuscany/sca/core/SCARuntime.h"
-
-#include "tuscany/sca/model/WSBinding.h"
+#include "tuscany/sca/core/TuscanyRuntime.h"
+#include "tuscany/sca/core/Operation.h"
+#include "tuscany/sca/core/CompositeServiceHelper.h"
+#include "tuscany/sca/model/Component.h"
+#include "tuscany/sca/model/Composite.h"
+#include "tuscany/sca/model/CompositeService.h"
 
 #include "commonj/sdo/SDO.h"
 using namespace commonj::sdo;
 
-using namespace tuscany::sca::ws;
-
-
-// Singleton pattern
-WSServiceProxy* WSServiceProxy::compositeServiceProxyInstance = new WSServiceProxy();
-
-WSServiceProxy* WSServiceProxy::getInstance()
-{
-    return compositeServiceProxyInstance;
-}
-
-WSServiceProxy::WSServiceProxy()
-{
-    LOGENTRY(1,"WSServiceProxy::constructor");
-    tuscanyRuntime = NULL;
-    scaCompositeServiceType = NULL;
-    compositeServiceName = "";
-    systemRoot = "";
-    compositeComponent = "";
-    LOGEXIT(1,"WSServiceProxy::constructor");
-}
-
-WSServiceProxy::~WSServiceProxy()
-{
-    LOGENTRY(1,"WSServiceProxy::destructor");
-
-    if(tuscanyRuntime != NULL)
-    {
-        tuscanyRuntime->stop();
-        delete tuscanyRuntime;
-        tuscanyRuntime = NULL;
-    }
-    if(scaCompositeServiceType != NULL)
-    {
-        delete scaCompositeServiceType;
-    }
-    LOGEXIT(1,"WSServiceProxy::destructor");
-}
-
-void WSServiceProxy::init(const char* systemRootPath, const char* fullCompositeServiceTypeName)
-{
-    LOGENTRY(1,"WSServiceProxy::init");
-
-    try
-	{
-
-		// fullCompositeServiceTypeName is of the form "subsystem name"/"composite component name"/"entry point name"
-		// Get the "subsystem name"/"composite component name" part for setDefaultCompositeComponent
-        // Keep the "entry point name" part for use in invoke
-		string subsystemAndComponentName, epName;
-		Utils::rTokeniseString("/", fullCompositeServiceTypeName, subsystemAndComponentName, epName);
-
-        bool newInitParams = false;
-
-        if(systemRoot.length() != 0 && systemRoot != systemRootPath)
-        {
-            systemRoot = systemRootPath;
-            newInitParams = true;
-        }
-
-        if(compositeComponent.length() != 0 && compositeComponent != subsystemAndComponentName)
-        {
-            compositeComponent = subsystemAndComponentName;
-            newInitParams = true;
-        }
-
-        if(compositeServiceName.length() != 0 && compositeServiceName != epName)
-        {
-            compositeServiceName = epName;
-            newInitParams = true;
-        }
-
-
-        if(tuscanyRuntime == NULL)
-        {
-            LOGINFO(4, "Creating new TuscanyRuntime");
-            compositeComponent = subsystemAndComponentName;
-            systemRoot = systemRootPath;
-            compositeServiceName = epName;
-            tuscanyRuntime = new TuscanyRuntime(compositeComponent, systemRoot);
-            tuscanyRuntime->start();
-        }
-        else if(tuscanyRuntime != NULL && newInitParams)
-        {
-            LOGINFO(4, "Restarting TuscanyRuntime with new SystemRoot or DefaultComposite");
-            tuscanyRuntime->stop();
-            tuscanyRuntime->setDefaultCompositeComponent(compositeComponent);
-            tuscanyRuntime->setSystemRoot(systemRoot);
-            tuscanyRuntime->start();
-        }
-
-        if(scaCompositeServiceType == NULL)
-        {
-            scaCompositeServiceType = new CompositeService(fullCompositeServiceTypeName);
-        }
-        else
-        {
-            if(newInitParams)
-            {
-                delete scaCompositeServiceType;
-                scaCompositeServiceType = NULL;
-                scaCompositeServiceType = new CompositeService(fullCompositeServiceTypeName);
-            }
-        }
-	}
-	catch(SystemConfigurationException &ex)
-	{	
-		LOGERROR_1(0, "SystemConfigurationException has been caught: %s\n", ex.getMessageText());
-        scaCompositeServiceType = 0;
-	}
-	catch(ServiceRuntimeException &ex)
-	{	
-        LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
-        scaCompositeServiceType = 0;
-	}  
-    LOGEXIT(1,"WSServiceProxy::init");
-}
-
-DataFactoryPtr WSServiceProxy::getDataFactory()
-{
-    if (scaCompositeServiceType == 0) return 0;
-    return scaCompositeServiceType->getDataFactory();
-}
-
-///
-/// This method will be called when an CompositeServiceType needs to be invoked.
-///
-DataObjectPtr WSServiceProxy::invoke(const char* operationName, DataObjectPtr inputDataObject)
+namespace tuscany
 {
-    LOGENTRY(1,"WSServiceProxy::invoke");
-
-    if (scaCompositeServiceType == 0)
-    {
-        LOGINFO(4, "WSServiceProxy has not got an sca CompositeServiceType\n");
-        return NULL;
-    }
-
-    DataFactoryPtr dataFactoryPtr = scaCompositeServiceType->getDataFactory();
-						
-    DataObjectPtr outputDataObject = NULL;
-    SCARuntime* runtime = SCARuntime::getInstance();
-    
-	Composite* composite = runtime->getCurrentComposite();
-
-	CompositeServiceType* compositeService = composite->findCompositeServiceType(compositeServiceName);
-
-    Binding* binding = compositeService->getBinding();
-    if(binding->getBindingType() == Binding::SCA)
-    {
-        LOGINFO_1(4, "WSServiceProxy has got SCA binding: %s\n", binding->getUri().c_str());
-        LOGERROR(0, "CompositeServiceTypes with SCA bindings are not yet supported");
-        return NULL;
-    }
-    else if(binding->getBindingType() == Binding::WS)
-    {
-        WSBinding* wsBinding = (WSBinding*) binding;
-
-        string wsdlNamespace = wsBinding->getWSDLNamespaceURL();
-        string wsdlPort  = wsBinding->getPortName();
-        string wsdlService = wsBinding->getServiceName();
-
-        Wsdl* wsdl = composite->findWsdl(wsdlNamespace);
-        if (wsdl == 0)
-        {
-            LOGINFO_1(0, "WSDL description %s not found\n", wsdlNamespace.c_str());
-            return NULL;
-        }
-
-        WsdlOperation operation;
-        try
-        {
-            operation = wsdl->findOperation(wsdlService, wsdlPort, operationName);
-        }
-	    catch(SystemConfigurationException &ex)
-	    {	
-		    LOGERROR_1(0, "SystemConfigurationException has been caught: %s\n", ex.getMessageText());
-            return NULL;
-        }
-
-        LOGINFO_2(4, "WSServiceProxy has got WsdlOperation with inputType: %s#%s",
-            operation.getInputTypeUri().c_str(), 
-            operation.getInputTypeName().c_str());
-        LOGINFO_2(4, "WSServiceProxy has got WsdlOperation with outputType: %s#%s",
-            operation.getOutputTypeUri().c_str(), 
-            operation.getOutputTypeName().c_str());
-        LOGINFO_2(4, "WSServiceProxy has got WsdlOperation with documentStyle=%d and encoded=%d",        
-            operation.isDocumentStyle(),
-            operation.isEncoded());
-        
-        if(operation.isDocumentStyle())
-        {
-            // Document style
-            outputDataObject = dataFactoryPtr->create(operation.getOutputTypeUri().c_str(), operation.getOutputTypeName().c_str());
-
-            //printf("outputDataObject %s#%s\n", outputDataObject->getType().getURI(), outputDataObject->getType().getName());
-            //Utils::printDO(outputDataObject);
-        }
-        else
-        {
-            // RPC style
-            LOGERROR(0, "CompositeServiceTypes with RPC style WSDL Operations are not yet supported");
-            return NULL;
-        }
-    }
-
-    // Create new Operation object and set parameters and return value
-    Operation operation(operationName);
-
-    // Go through input data object to set the operation parameters
-    PropertyList pl = inputDataObject->getInstanceProperties();
-
-    for(int i=0; i<pl.size(); i++)
+    namespace sca
     {
-        const char* name = pl[i].getName();
-
-        switch (pl[i].getTypeEnum()) 
+        namespace ws
         {
-        case Type::BooleanType:
+            
+            // Singleton pattern
+            WSServiceProxy* WSServiceProxy::compositeServiceProxyInstance = new WSServiceProxy();
+            
+            WSServiceProxy* WSServiceProxy::getInstance()
             {
-                bool* boolData = new bool;
-                *boolData = inputDataObject->getBoolean(pl[i]);
-                //printf("inputDataObject has BooleanType named %s with value %d\n", name, boolData);
-                operation.addParameter(boolData);
+                return compositeServiceProxyInstance;
             }
-            break;
-        case Type::ByteType:
+            
+            WSServiceProxy::WSServiceProxy()
             {
-                char* byteData = new char;
-                //printf("inputDataObject has ByteType named %s\n", name);
-                *byteData = inputDataObject->getByte(pl[i]);
-                operation.addParameter(byteData);
+                LOGENTRY(1,"WSServiceProxy::constructor");
+                tuscanyRuntime = NULL;
+                compositeServiceName = "";
+                systemRoot = "";
+                defaultComponentName = "";
+                LOGEXIT(1,"WSServiceProxy::constructor");
             }
-            break;
-        case Type::BytesType:
+            
+            WSServiceProxy::~WSServiceProxy()
             {
-                int len = inputDataObject->getLength(pl[i]);
-                char* bytesData = new char[len+1];
-                int bytesWritten = inputDataObject->getBytes(pl[i], bytesData, len);
-                // Ensure the bytes end with the null char. Not sure if this is neccessary
-                if(bytesWritten <= len)
-                {
-                    bytesData[bytesWritten] = 0;
-                }
-                else
+                LOGENTRY(1,"WSServiceProxy::destructor");
+            
+                if(tuscanyRuntime != NULL)
                 {
-                    bytesData[len] = 0;
+                    tuscanyRuntime->stop();
+                    delete tuscanyRuntime;
+                    tuscanyRuntime = NULL;
                 }
-                //printf("inputDataObject has BytesType named %s with length %d\n", name, bytesWritten);
-                operation.addParameter(&bytesData);
-            }
-            break;
-        case Type::CharacterType:
-            {
-                // This code should work but won't be used as there is no mapping from an XSD type to the SDO CharacterType
-                wchar_t* charData = new wchar_t;
-                //printf("inputDataObject has CharacterType named %s\n", name);
-                *charData = inputDataObject->getCharacter(pl[i]);
-                operation.addParameter(charData);
-            }
-            break;
-        case Type::DoubleType:
-            {
-                long double* doubleData = new long double;
-                *doubleData = inputDataObject->getDouble(pl[i]);
-                //printf("inputDataObject has DoubleType named %s\n", name);            
-                operation.addParameter(doubleData);
-            }
-            break;
-        case Type::FloatType:
-            {
-                float* floatData = new float;
-                *floatData = inputDataObject->getFloat(pl[i]);
-                //printf("inputDataObject has FloatType named %s with value %f\n", name, *floatData);
-                operation.addParameter(floatData); 
-            }
-            break;
-        case Type::IntegerType:
-            {
-                long* intData = new long;
-                //printf("inputDataObject has IntegerType named %s\n", name);
-                *intData = inputDataObject->getInteger(pl[i]);
-                operation.addParameter(intData);
+                LOGEXIT(1,"WSServiceProxy::destructor");
             }
-            break;
-        case Type::ShortType:
+            
+            void WSServiceProxy::init(const char* systemRootPath, const char* fullCompositeServiceName)
             {
-                short* shortData = new short;
-                //printf("inputDataObject has ShortType named %s\n", name);
-                *shortData = inputDataObject->getShort(pl[i]);
-                operation.addParameter(shortData);
+                LOGENTRY(1,"WSServiceProxy::init");
+            
+                try
+            	{
+            
+            		// fullCompositeServiceName is of the form "subsystem name"/"composite component name"/"entry point name"
+            		// Get the "subsystem name"/"composite component name" part for setDefaultCompositeComponent
+                    // Keep the "entry point name" part for use in invoke
+            		string subsystemAndComponentName, epName;
+            		Utils::rTokeniseString("/", fullCompositeServiceName, subsystemAndComponentName, epName);
+            
+                    bool newInitParams = false;
+            
+                    if(systemRoot.length() != 0 && systemRoot != systemRootPath)
+                    {
+                        systemRoot = systemRootPath;
+                        newInitParams = true;
+                    }
+            
+                    if(defaultComponentName.length() != 0 && defaultComponentName != subsystemAndComponentName)
+                    {
+                        defaultComponentName = subsystemAndComponentName;
+                        newInitParams = true;
+                    }
+            
+                    if(compositeServiceName.length() != 0 && compositeServiceName != epName)
+                    {
+                        compositeServiceName = epName;
+                        newInitParams = true;
+                    }
+            
+            
+                    if(tuscanyRuntime == NULL)
+                    {
+                        LOGINFO(4, "Creating new TuscanyRuntime");
+                        defaultComponentName = subsystemAndComponentName;
+                        systemRoot = systemRootPath;
+                        compositeServiceName = epName;
+                        tuscanyRuntime = new TuscanyRuntime(defaultComponentName, systemRoot);
+                        tuscanyRuntime->start();
+                    }
+                    else if(tuscanyRuntime != NULL && newInitParams)
+                    {
+                        LOGINFO(4, "Restarting TuscanyRuntime with new SystemRoot or DefaultComponent");
+                        tuscanyRuntime->stop();
+                        tuscanyRuntime->setDefaultComponentName(defaultComponentName);
+                        tuscanyRuntime->setSystemRoot(systemRoot);
+                        tuscanyRuntime->start();
+                    }
+            
+                    if(compositeServiceHelper == NULL)
+                    {
+                        compositeServiceHelper = new CompositeServiceHelper(fullCompositeServiceName);
+                    }
+                    else
+                    {
+                        if(newInitParams)
+                        {
+                            delete compositeServiceHelper;
+                            compositeServiceHelper = NULL;
+                            compositeServiceHelper = new CompositeServiceHelper(fullCompositeServiceName);
+                        }
+                    }
+            	}
+            	catch(SystemConfigurationException &ex)
+            	{	
+            		LOGERROR_1(0, "SystemConfigurationException has been caught: %s\n", ex.getMessageText());
+                    compositeServiceHelper = 0;
+            	}
+            	catch(ServiceRuntimeException &ex)
+            	{	
+                    LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
+                    compositeServiceHelper = 0;
+            	}  
+                LOGEXIT(1,"WSServiceProxy::init");
             }
-            break;
-        case Type::StringType:
+            
+            DataFactoryPtr WSServiceProxy::getDataFactory()
             {
-                const char** stringData = new const char*; 
-                *stringData = inputDataObject->getCString(pl[i]);
-                //printf("inputDataObject has StringType named %s with value %s\n", name, stringData);
-                operation.addParameter(stringData);
+                if (compositeServiceHelper == 0) return 0;
+                return compositeServiceHelper->getDataFactory();
             }
-            break;
-        case Type::DataObjectType:
+            
+            ///
+            /// This method will be called when an CompositeService needs to be invoked.
+            ///
+            DataObjectPtr WSServiceProxy::invoke(const char* operationName, DataObjectPtr inputDataObject)
             {
-                DataObjectPtr dataObjectData = inputDataObject->getDataObject(pl[i]);
-                //printf("inputDataObject has DataObjectType named %s (#%d)\n", name, dataObjectData);
-
-                if(!dataObjectData)
+                LOGENTRY(1,"WSServiceProxy::invoke");
+            
+                if (compositeServiceHelper == 0)
                 {
-                    LOGINFO_1(4, "SDO DataObject parameter named %s was null", name);
+                    LOGINFO(4, "WSServiceProxy has not got an sca CompositeService\n");
+                    return NULL;
                 }
-                operation.addParameter(&dataObjectData);
-            }
-            break;
-        case Type::OpenDataObjectType:
-            {         
-                /*
-                 * This code deals with xsd:any element parameters
-                 * Get each element as a DataObject and add in to the parameter list
-                 */
-
-                //printf("inputDataObject has OpenDataObjectType named %s\n", name);
-                DataObjectList& dataObjectList = inputDataObject->getList(pl[i]);
+            
+                DataFactoryPtr dataFactoryPtr = compositeServiceHelper->getDataFactory();
+            						
+                DataObjectPtr outputDataObject = NULL;
+                SCARuntime* runtime = SCARuntime::getInstance();
                 
-                for(int j=0; j<dataObjectList.size(); j++)
+            	Component* defaultComponent = runtime->getDefaultComponent();
+                Composite* composite  = (Composite*)defaultComponent->getType();
+
+//TODO Fix this                
+            
+//            	CompositeService* compositeService = (CompositeService)composite->findComponent(compositeServiceName);
+//            
+//                Binding* binding = compositeService->getBinding();
+//                WSBinding* wsBinding = (WSBinding*) binding;
+//        
+//                string wsdlNamespace = wsBinding->getWSDLNamespaceURL();
+//                string wsdlPort  = wsBinding->getPortName();
+//                string wsdlService = wsBinding->getServiceName();
+//        
+//                WSDL* wsdl = composite->findWSDLDefinition(wsdlNamespace);
+//                if (wsdl == 0)
+//                {
+//                    LOGINFO_1(0, "WSDL description %s not found\n", wsdlNamespace.c_str());
+//                    return NULL;
+//                }
+//        
+//                WSDLOperation operation;
+//                try
+//                {
+//                    operation = wsdl->findOperation(wsdlService, wsdlPort, operationName);
+//                }
+//        	    catch(SystemConfigurationException &ex)
+//        	    {	
+//        		    LOGERROR_1(0, "SystemConfigurationException has been caught: %s\n", ex.getMessageText());
+//                    return NULL;
+//                }
+//        
+//                LOGINFO_2(4, "WSServiceProxy has got WSDLOperation with inputType: %s#%s",
+//                    operation.getInputTypeUri().c_str(), 
+//                    operation.getInputTypeName().c_str());
+//                LOGINFO_2(4, "WSServiceProxy has got WSDLOperation with outputType: %s#%s",
+//                    operation.getOutputTypeUri().c_str(), 
+//                    operation.getOutputTypeName().c_str());
+//                LOGINFO_2(4, "WSServiceProxy has got WSDLOperation with documentStyle=%d and encoded=%d",        
+//                    operation.isDocumentStyle(),
+//                    operation.isEncoded());
+//                
+//                if(operation.isDocumentStyle())
+//                {
+//                    // Document style
+//                    outputDataObject = dataFactoryPtr->create(operation.getOutputTypeUri().c_str(), operation.getOutputTypeName().c_str());
+//        
+//                    //printf("outputDataObject %s#%s\n", outputDataObject->getType().getURI(), outputDataObject->getType().getName());
+//                    //Utils::printDO(outputDataObject);
+//                }
+//                else
+//                {
+//                    // RPC style
+//                    LOGERROR(0, "CompositeServices with RPC style WSDL Operations are not yet supported");
+//                    return NULL;
+//                }
+//            
+//                // Create new Operation object and set parameters and return value
+//                Operation operation(operationName);
+//            
+//                // Go through input data object to set the operation parameters
+//                PropertyList pl = inputDataObject->getInstanceProperties();
+//            
+//                for(int i=0; i<pl.size(); i++)
+//                {
+//                    const char* name = pl[i].getName();
+//            
+//                    switch (pl[i].getTypeEnum()) 
+//                    {
+//                    case Type::BooleanType:
+//                        {
+//                            bool* boolData = new bool;
+//                            *boolData = inputDataObject->getBoolean(pl[i]);
+//                            //printf("inputDataObject has BooleanType named %s with value %d\n", name, boolData);
+//                            operation.addParameter(boolData);
+//                        }
+//                        break;
+//                    case Type::ByteType:
+//                        {
+//                            char* byteData = new char;
+//                            //printf("inputDataObject has ByteType named %s\n", name);
+//                            *byteData = inputDataObject->getByte(pl[i]);
+//                            operation.addParameter(byteData);
+//                        }
+//                        break;
+//                    case Type::BytesType:
+//                        {
+//                            int len = inputDataObject->getLength(pl[i]);
+//                            char* bytesData = new char[len+1];
+//                            int bytesWritten = inputDataObject->getBytes(pl[i], bytesData, len);
+//                            // Ensure the bytes end with the null char. Not sure if this is neccessary
+//                            if(bytesWritten <= len)
+//                            {
+//                                bytesData[bytesWritten] = 0;
+//                            }
+//                            else
+//                            {
+//                                bytesData[len] = 0;
+//                            }
+//                            //printf("inputDataObject has BytesType named %s with length %d\n", name, bytesWritten);
+//                            operation.addParameter(&bytesData);
+//                        }
+//                        break;
+//                    case Type::CharacterType:
+//                        {
+//                            // This code should work but won't be used as there is no mapping from an XSD type to the SDO CharacterType
+//                            wchar_t* charData = new wchar_t;
+//                            //printf("inputDataObject has CharacterType named %s\n", name);
+//                            *charData = inputDataObject->getCharacter(pl[i]);
+//                            operation.addParameter(charData);
+//                        }
+//                        break;
+//                    case Type::DoubleType:
+//                        {
+//                            long double* doubleData = new long double;
+//                            *doubleData = inputDataObject->getDouble(pl[i]);
+//                            //printf("inputDataObject has DoubleType named %s\n", name);            
+//                            operation.addParameter(doubleData);
+//                        }
+//                        break;
+//                    case Type::FloatType:
+//                        {
+//                            float* floatData = new float;
+//                            *floatData = inputDataObject->getFloat(pl[i]);
+//                            //printf("inputDataObject has FloatType named %s with value %f\n", name, *floatData);
+//                            operation.addParameter(floatData); 
+//                        }
+//                        break;
+//                    case Type::IntegerType:
+//                        {
+//                            long* intData = new long;
+//                            //printf("inputDataObject has IntegerType named %s\n", name);
+//                            *intData = inputDataObject->getInteger(pl[i]);
+//                            operation.addParameter(intData);
+//                        }
+//                        break;
+//                    case Type::ShortType:
+//                        {
+//                            short* shortData = new short;
+//                            //printf("inputDataObject has ShortType named %s\n", name);
+//                            *shortData = inputDataObject->getShort(pl[i]);
+//                            operation.addParameter(shortData);
+//                        }
+//                        break;
+//                    case Type::StringType:
+//                        {
+//                            const char** stringData = new const char*; 
+//                            *stringData = inputDataObject->getCString(pl[i]);
+//                            //printf("inputDataObject has StringType named %s with value %s\n", name, stringData);
+//                            operation.addParameter(stringData);
+//                        }
+//                        break;
+//                    case Type::DataObjectType:
+//                        {
+//                            DataObjectPtr dataObjectData = inputDataObject->getDataObject(pl[i]);
+//                            //printf("inputDataObject has DataObjectType named %s (#%d)\n", name, dataObjectData);
+//            
+//                            if(!dataObjectData)
+//                            {
+//                                LOGINFO_1(4, "SDO DataObject parameter named %s was null", name);
+//                            }
+//                            operation.addParameter(&dataObjectData);
+//                        }
+//                        break;
+//                    case Type::OpenDataObjectType:
+//                        {         
+//                            /*
+//                             * This code deals with xsd:any element parameters
+//                             * Get each element as a DataObject and add in to the parameter list
+//                             */
+//            
+//                            //printf("inputDataObject has OpenDataObjectType named %s\n", name);
+//                            DataObjectList& dataObjectList = inputDataObject->getList(pl[i]);
+//                            
+//                            for(int j=0; j<dataObjectList.size(); j++)
+//                            {
+//                                DataObjectPtr dataObjectData = dataObjectList[j];
+//                                if(!dataObjectData)
+//                                {
+//                                    LOGINFO_2(4, "SDO OpenDataObject parameter named %s[%d] was null", name, j);
+//                                }
+//                                operation.addParameter(&dataObjectData);
+//                                //Utils::printDO(dataObjectData);
+//                            }
+//                        }
+//                        break;
+//                    case Type::DateType:
+//                        LOGERROR_1(0, "SDO DateType parameters are not yet supported (%s)", name);
+//                        return NULL;
+//                    case Type::LongType:
+//                        LOGERROR_1(0, "SDO LongType (int64_t) parameters are not yet supported (%s)", name);
+//                        return NULL;
+//                        break;
+//                    case Type::UriType:
+//                        LOGERROR_1(0, "SDO UriType parameters are not yet supported (%s)", name);
+//                        return NULL;
+//                        break;
+//                    case Type::BigDecimalType:
+//                        LOGERROR_1(0, "SDO BigDecimalType parameters are not yet supported (%s)", name);
+//                        return NULL;
+//                        break;
+//                    case Type::BigIntegerType:
+//                        LOGERROR_1(0, "SDO BigIntegerType parameters are not yet supported (%s)", name);
+//                        return NULL;
+//                        break;
+//                    default:
+//                        LOGERROR_1(0, "Unknown SDO type parameter named %s has been found. Unknown types are not yet supported", name);
+//                        return NULL;
+//                    }         
+//                }
+//                        
+//                // Now go through outputDataObject to set the return value
+//                pl = outputDataObject->getInstanceProperties();
+//            
+//                // Set up the possible return value pointers
+//                bool boolData = 0;
+//                char byteData = 0;
+//                wchar_t charData = 0;
+//                long double doubleData = 0;
+//                float floatData = 0;
+//                long intData = 0;
+//                short shortData = 0;
+//                const char* stringData;
+//                DataObjectPtr dataObjectData;
+//            
+//            
+//                // There should only be one return value, but go through any list anyway?
+//                if(pl.size() > 1)
+//                {
+//                    LOGINFO(4, "More than one return value is defined in the WSDL, just defining the first");
+//                }
+//                else if(pl.size() == 0)
+//                {
+//                    if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType())
+//                    {
+//                        /*
+//                         * This code deals with returning xsd:any elements
+//                         * Return as a DataObject set within the outputDataObject
+//                         */
+//                       
+//                        // An OpenDataObject for the data to return in
+//                        operation.setReturnValue(&dataObjectData);            
+//                    }
+//                    else
+//                    {
+//                        LOGINFO(4, "No return values are defined in the WSDL");
+//                    }
+//            
+//                }
+//            
+//                if(pl.size() > 0)
+//                {
+//                    const char* name = pl[0].getName();
+//                    
+//                    switch (pl[0].getTypeEnum()) 
+//                    {
+//                    case Type::BooleanType:
+//                        {
+//                            //printf("outputDataObject has BooleanType named %s\n", name);
+//                            operation.setReturnValue(&boolData);
+//                        }
+//                        break;
+//                    case Type::ByteType:
+//                        {
+//                            //printf("outputDataObject has ByteType named %s\n", name);
+//                            operation.setReturnValue(&byteData);
+//                        }
+//                        break;
+//                    case Type::CharacterType:
+//                        {
+//                            //printf("outputDataObject has CharacterType named %s\n", name);
+//                            operation.setReturnValue(&charData);
+//                        }
+//                        break;
+//                    case Type::DoubleType:
+//                        {
+//                            //printf("outputDataObject has DoubleType named %s\n", name);
+//                            operation.setReturnValue((long double*) &doubleData);
+//                        }
+//                        break;
+//                    case Type::FloatType:
+//                        {
+//                            //printf("outputDataObject has FloatType named %s\n", name);
+//                            operation.setReturnValue(&floatData);
+//                        }
+//                        break;
+//                    case Type::IntegerType:
+//                        {
+//                            //printf("outputDataObject has IntegerType named %s\n", name);
+//                            operation.setReturnValue(&intData);
+//                        }
+//                        break;
+//                    case Type::ShortType:
+//                        {
+//                            //printf("outputDataObject has ShortType named %s\n", name);
+//                            operation.setReturnValue(&shortData);
+//                        }
+//                        break;
+//                    case Type::StringType:
+//                    case Type::BytesType:
+//                         {
+//                            //printf("outputDataObject has StringType or BytesType named %s\n", name);
+//                            operation.setReturnValue((const char**) &stringData);
+//                        }
+//                        break;
+//                    case Type::DataObjectType:
+//                        {
+//                            // printf("outputDataObject has DataObjectType named %s with type %s # %s\n", name, pl[0].getType().getURI(), pl[0].getType().getName());
+//                            operation.setReturnValue(&dataObjectData);
+//                        }
+//                        break;
+//                    case Type::DateType:
+//                        LOGERROR_1(0, "SDO DateType return values are not yet supported (%s)", name);
+//                        return NULL;
+//                    case Type::LongType:
+//                        LOGERROR_1(0, "SDO LongType (int64_t) return values are not yet supported (%s)", name);
+//                        return NULL;
+//                    case Type::UriType:
+//                        LOGERROR_1(0, "SDO UriType return values are not yet supported (%s)", name);
+//                        return NULL;
+//                    case Type::BigDecimalType:
+//                        LOGERROR_1(0, "SDO BigDecimalType return values are not yet supported (%s)", name);
+//                        return NULL;
+//                    case Type::BigIntegerType:
+//                        LOGERROR_1(0, "SDO BigIntegerType return values are not yet supported (%s)", name);
+//                        return NULL;
+//                    default:
+//                        LOGERROR_1(0, "Unknown SDO type return value named %s has been found. Unknown types are not yet supported", name);
+//                        return NULL;
+//                    }         
+//                }
+//            
+//                try
+//                {
+//                    // Call into the wired composite
+//                    compositeServiceHelper->invoke(operation);
+//            
+//                    // Set the data in the outputDataObject to be returned
+//                    setOutputData(operation, outputDataObject);                            
+//                }
+//            	catch(SDORuntimeException &ex)
+//            	{	
+//                    // TODO: Return more error information than just a null DataObject
+//                    LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
+//                    return NULL;
+//            	}  
+//            	catch(ServiceRuntimeException &ex)
+//            	{	
+//                    // TODO: Return more error information than just a null DataObject
+//                    LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
+//                    return NULL;
+//            	}  
+//            
+//                LOGEXIT(1,"WSServiceProxy::invoke");
+//            
+//                return outputDataObject;
+
+                    return NULL;
+            }
+            
+            
+            void WSServiceProxy::setOutputData(Operation operation, DataObjectPtr outputDataObject)
+            {    
+                // Go through data object to set the return value
+                PropertyList pl = outputDataObject->getInstanceProperties();
+            
+                if(pl.size() == 0)
                 {
-                    DataObjectPtr dataObjectData = dataObjectList[j];
-                    if(!dataObjectData)
+                    if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType())
                     {
-                        LOGINFO_2(4, "SDO OpenDataObject parameter named %s[%d] was null", name, j);
+                        /*
+                         * This code deals with returning xsd:any elements
+                         * Return as a DataObject set within the outputDataObject
+                         */
+                        
+                        DataObjectPtr* dataObjectData = (DataObjectPtr*) operation.getReturnValue();
+                        //Utils::printDO(*dataObjectData);
+            
+                        // Need to provide a name for the dataobject being returned, use the containment property name if there is one.
+                        const char* rootName = "OpenDataObject";
+                        try
+                        {
+                            const Property& prop = (*dataObjectData)->getContainmentProperty();
+                            rootName = prop.getName();
+                            (*dataObjectData)->detach();
+                        }
+                        catch(SDOPropertyNotFoundException&)
+                        {
+                            // DataObject has no containment property - use default rootName
+                        }
+                        outputDataObject->setDataObject(rootName, *dataObjectData);
+                    }
+                    else
+                    {
+                        LOGINFO(4, "No return values are defined in the WSDL");
                     }
-                    operation.addParameter(&dataObjectData);
-                    //Utils::printDO(dataObjectData);
-                }
-            }
-            break;
-        case Type::DateType:
-            LOGERROR_1(0, "SDO DateType parameters are not yet supported (%s)", name);
-            return NULL;
-        case Type::LongType:
-            LOGERROR_1(0, "SDO LongType (int64_t) parameters are not yet supported (%s)", name);
-            return NULL;
-            break;
-        case Type::UriType:
-            LOGERROR_1(0, "SDO UriType parameters are not yet supported (%s)", name);
-            return NULL;
-            break;
-        case Type::BigDecimalType:
-            LOGERROR_1(0, "SDO BigDecimalType parameters are not yet supported (%s)", name);
-            return NULL;
-            break;
-        case Type::BigIntegerType:
-            LOGERROR_1(0, "SDO BigIntegerType parameters are not yet supported (%s)", name);
-            return NULL;
-            break;
-        default:
-            LOGERROR_1(0, "Unknown SDO type parameter named %s has been found. Unknown types are not yet supported", name);
-            return NULL;
-        }         
-    }
             
-    // Now go through outputDataObject to set the return value
-    pl = outputDataObject->getInstanceProperties();
-
-    // Set up the possible return value pointers
-    bool boolData = 0;
-    char byteData = 0;
-    wchar_t charData = 0;
-    long double doubleData = 0;
-    float floatData = 0;
-    long intData = 0;
-    short shortData = 0;
-    const char* stringData;
-    DataObjectPtr dataObjectData;
-
-
-    // There should only be one return value, but go through any list anyway?
-    if(pl.size() > 1)
-    {
-        LOGINFO(4, "More than one return value is defined in the WSDL, just defining the first");
-    }
-    else if(pl.size() == 0)
-    {
-        if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType())
-        {
-            /*
-             * This code deals with returning xsd:any elements
-             * Return as a DataObject set within the outputDataObject
-             */
-           
-            // An OpenDataObject for the data to return in
-            operation.setReturnValue(&dataObjectData);            
-        }
-        else
-        {
-            LOGINFO(4, "No return values are defined in the WSDL");
-        }
-
-    }
-
-    if(pl.size() > 0)
-    {
-        const char* name = pl[0].getName();
-        
-        switch (pl[0].getTypeEnum()) 
-        {
-        case Type::BooleanType:
-            {
-                //printf("outputDataObject has BooleanType named %s\n", name);
-                operation.setReturnValue(&boolData);
-            }
-            break;
-        case Type::ByteType:
-            {
-                //printf("outputDataObject has ByteType named %s\n", name);
-                operation.setReturnValue(&byteData);
-            }
-            break;
-        case Type::CharacterType:
-            {
-                //printf("outputDataObject has CharacterType named %s\n", name);
-                operation.setReturnValue(&charData);
-            }
-            break;
-        case Type::DoubleType:
-            {
-                //printf("outputDataObject has DoubleType named %s\n", name);
-                operation.setReturnValue((long double*) &doubleData);
-            }
-            break;
-        case Type::FloatType:
-            {
-                //printf("outputDataObject has FloatType named %s\n", name);
-                operation.setReturnValue(&floatData);
-            }
-            break;
-        case Type::IntegerType:
-            {
-                //printf("outputDataObject has IntegerType named %s\n", name);
-                operation.setReturnValue(&intData);
-            }
-            break;
-        case Type::ShortType:
-            {
-                //printf("outputDataObject has ShortType named %s\n", name);
-                operation.setReturnValue(&shortData);
-            }
-            break;
-        case Type::StringType:
-        case Type::BytesType:
-             {
-                //printf("outputDataObject has StringType or BytesType named %s\n", name);
-                operation.setReturnValue((const char**) &stringData);
-            }
-            break;
-        case Type::DataObjectType:
-            {
-                // printf("outputDataObject has DataObjectType named %s with type %s # %s\n", name, pl[0].getType().getURI(), pl[0].getType().getName());
-                operation.setReturnValue(&dataObjectData);
-            }
-            break;
-        case Type::DateType:
-            LOGERROR_1(0, "SDO DateType return values are not yet supported (%s)", name);
-            return NULL;
-        case Type::LongType:
-            LOGERROR_1(0, "SDO LongType (int64_t) return values are not yet supported (%s)", name);
-            return NULL;
-        case Type::UriType:
-            LOGERROR_1(0, "SDO UriType return values are not yet supported (%s)", name);
-            return NULL;
-        case Type::BigDecimalType:
-            LOGERROR_1(0, "SDO BigDecimalType return values are not yet supported (%s)", name);
-            return NULL;
-        case Type::BigIntegerType:
-            LOGERROR_1(0, "SDO BigIntegerType return values are not yet supported (%s)", name);
-            return NULL;
-        default:
-            LOGERROR_1(0, "Unknown SDO type return value named %s has been found. Unknown types are not yet supported", name);
-            return NULL;
-        }         
-    }
-
-    try
-    {
-        // Call into the wired composite
-        scaCompositeServiceType->invoke(operation);
-
-        // Set the data in the outputDataObject to be returned
-        setOutputData(operation, outputDataObject);                            
-    }
-	catch(SDORuntimeException &ex)
-	{	
-        // TODO: Return more error information than just a null DataObject
-        LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
-        return NULL;
-	}  
-	catch(ServiceRuntimeException &ex)
-	{	
-        // TODO: Return more error information than just a null DataObject
-        LOGERROR_2(0, "%s has been caught: %s\n", ex.getEClassName(), ex.getMessageText());
-        return NULL;
-	}  
-
-    LOGEXIT(1,"WSServiceProxy::invoke");
-
-    return outputDataObject;
-}
-
-
-void WSServiceProxy::setOutputData(Operation operation, DataObjectPtr outputDataObject)
-{    
-    // Go through data object to set the return value
-    PropertyList pl = outputDataObject->getInstanceProperties();
-
-    if(pl.size() == 0)
-    {
-        if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType())
-        {
-            /*
-             * This code deals with returning xsd:any elements
-             * Return as a DataObject set within the outputDataObject
-             */
+                }
             
-            DataObjectPtr* dataObjectData = (DataObjectPtr*) operation.getReturnValue();
-            //Utils::printDO(*dataObjectData);
-
-            // Need to provide a name for the dataobject being returned, use the containment property name if there is one.
-            const char* rootName = "OpenDataObject";
-            try
-            {
-                const Property& prop = (*dataObjectData)->getContainmentProperty();
-                rootName = prop.getName();
-                (*dataObjectData)->detach();
-            }
-            catch(SDOPropertyNotFoundException&)
-            {
-                // DataObject has no containment property - use default rootName
-            }
-            outputDataObject->setDataObject(rootName, *dataObjectData);
-        }
-        else
-        {
-            LOGINFO(4, "No return values are defined in the WSDL");
-        }
-
-    }
-
-    // Should only be one return value.. This goes through all return values
-    for(int i=0; i<pl.size(); i++)
-    {
-        const char* name = pl[i].getName();
-
-        switch (pl[i].getTypeEnum()) 
-        {
-        case Type::BooleanType:
-            {
-                bool* boolData = (bool*)operation.getReturnValue();
-                //printf("outputDataObject has BooleanType named %s with value %d\n", name, *boolData);
-                outputDataObject->setBoolean(pl[i], *boolData); 
-            }
-            break;
-        case Type::ByteType:
-            {
-                char* byteData = (char*) operation.getReturnValue();
-                //printf("outputDataObject has ByteType named %s with value %c (#%d)\n", name, *byteData, *byteData);
-                outputDataObject->setByte(pl[i], *byteData);
-            }
-            break;
-        case Type::BytesType:
-            {
-                const char** bytesData = (const char**) operation.getReturnValue();
-                // TODO This looks for the first NULL byte - this may not be the full length of the data...
-                int len = 0;
-                while((*bytesData)[len] != 0)
+                // Should only be one return value.. This goes through all return values
+                for(int i=0; i<pl.size(); i++)
                 {
-                    len++;
+                    const char* name = pl[i].getName();
+            
+                    switch (pl[i].getTypeEnum()) 
+                    {
+                    case Type::BooleanType:
+                        {
+                            bool* boolData = (bool*)operation.getReturnValue();
+                            //printf("outputDataObject has BooleanType named %s with value %d\n", name, *boolData);
+                            outputDataObject->setBoolean(pl[i], *boolData); 
+                        }
+                        break;
+                    case Type::ByteType:
+                        {
+                            char* byteData = (char*) operation.getReturnValue();
+                            //printf("outputDataObject has ByteType named %s with value %c (#%d)\n", name, *byteData, *byteData);
+                            outputDataObject->setByte(pl[i], *byteData);
+                        }
+                        break;
+                    case Type::BytesType:
+                        {
+                            const char** bytesData = (const char**) operation.getReturnValue();
+                            // TODO This looks for the first NULL byte - this may not be the full length of the data...
+                            int len = 0;
+                            while((*bytesData)[len] != 0)
+                            {
+                                len++;
+                            }
+                            //printf("outputDataObject has BytesType named %s with value %s and length %d\n", name, *bytesData, len);
+                            outputDataObject->setBytes(pl[i], *bytesData, len);
+                        }
+                        break;
+                    case Type::CharacterType:
+                        {
+                            wchar_t* charData = (wchar_t*) operation.getReturnValue();
+                            //printf("outputDataObject has CharacterType named %s with value %s\n", name, charData);
+                            outputDataObject->setCharacter(pl[i], *charData);
+                        }
+                        break;
+                    case Type::DoubleType:
+                        {
+                            long double* doubleData = (long double*) operation.getReturnValue();
+                            //printf("outputDataObject has DoubleType named %s with value %f\n", name, *doubleData);
+                            outputDataObject->setDouble(pl[i], *doubleData);
+                        }
+                        break;
+                    case Type::FloatType:
+                        {
+                            float* floatData = (float*) operation.getReturnValue();
+                            //printf("outputDataObject has FloatType named %s with value %f \n", name, *floatData);
+                            outputDataObject->setFloat(pl[i], *floatData);
+                        }
+                        break;
+                    case Type::IntegerType:
+                        {
+                            long* intData = (long*) operation.getReturnValue();
+                            //printf("outputDataObject has IntegerType named %s with value %d\n", name, *intData);
+                            outputDataObject->setInteger(pl[i], *intData);
+                        }
+                        break;
+                    case Type::ShortType:
+                        {
+                            short* shortData = (short*) operation.getReturnValue();
+                            //printf("outputDataObject has ShortType named %s  with value %d\n", name, *shortData);
+                            outputDataObject->setShort(pl[i], *shortData);
+                        }
+                        break;
+                    case Type::StringType:
+                        {
+                            const char** stringData = (const char**) operation.getReturnValue();
+                            //printf("outputDataObject has StringType named %s with value %s\n", name, *stringData);
+                            outputDataObject->setCString(pl[i], *stringData);
+                        }
+                        break;
+                    case Type::DataObjectType:
+                        {
+                            DataObjectPtr* dataObjectData = (DataObjectPtr*) operation.getReturnValue();
+                            //printf("outputDataObject has DataObjectType named %s with value (%d)\n", name, (*dataObjectData));
+                            outputDataObject->setDataObject(pl[i], *dataObjectData);
+                        }
+                        break;
+                    case Type::DateType:
+                        LOGERROR_1(0, "SDO DateType return values are not yet supported (%s)", name);
+                        break;
+                    case Type::LongType:
+                        LOGERROR_1(0, "SDO LongType (int64_t) return values are not yet supported (%s)", name);
+                        break;
+                    case Type::UriType:
+                        LOGERROR_1(0, "SDO UriType return values are not yet supported (%s)", name);
+                        break;
+                    case Type::BigDecimalType:
+                        LOGERROR_1(0, "SDO BigDecimalType return values are not yet supported (%s)", name);
+                        break;
+                    case Type::BigIntegerType:
+                        LOGERROR_1(0, "SDO BigIntegerType return values are not yet supported (%s)", name);
+                        break;
+                    default:
+                        LOGERROR_1(0, "Unknown SDO type return value named %s has been found. Unknown types are not yet supported", name);
+                    }   
                 }
-                //printf("outputDataObject has BytesType named %s with value %s and length %d\n", name, *bytesData, len);
-                outputDataObject->setBytes(pl[i], *bytesData, len);
-            }
-            break;
-        case Type::CharacterType:
-            {
-                wchar_t* charData = (wchar_t*) operation.getReturnValue();
-                //printf("outputDataObject has CharacterType named %s with value %s\n", name, charData);
-                outputDataObject->setCharacter(pl[i], *charData);
-            }
-            break;
-        case Type::DoubleType:
-            {
-                long double* doubleData = (long double*) operation.getReturnValue();
-                //printf("outputDataObject has DoubleType named %s with value %f\n", name, *doubleData);
-                outputDataObject->setDouble(pl[i], *doubleData);
-            }
-            break;
-        case Type::FloatType:
-            {
-                float* floatData = (float*) operation.getReturnValue();
-                //printf("outputDataObject has FloatType named %s with value %f \n", name, *floatData);
-                outputDataObject->setFloat(pl[i], *floatData);
-            }
-            break;
-        case Type::IntegerType:
-            {
-                long* intData = (long*) operation.getReturnValue();
-                //printf("outputDataObject has IntegerType named %s with value %d\n", name, *intData);
-                outputDataObject->setInteger(pl[i], *intData);
-            }
-            break;
-        case Type::ShortType:
-            {
-                short* shortData = (short*) operation.getReturnValue();
-                //printf("outputDataObject has ShortType named %s  with value %d\n", name, *shortData);
-                outputDataObject->setShort(pl[i], *shortData);
-            }
-            break;
-        case Type::StringType:
-            {
-                const char** stringData = (const char**) operation.getReturnValue();
-                //printf("outputDataObject has StringType named %s with value %s\n", name, *stringData);
-                outputDataObject->setCString(pl[i], *stringData);
-            }
-            break;
-        case Type::DataObjectType:
-            {
-                DataObjectPtr* dataObjectData = (DataObjectPtr*) operation.getReturnValue();
-                //printf("outputDataObject has DataObjectType named %s with value (%d)\n", name, (*dataObjectData));
-                outputDataObject->setDataObject(pl[i], *dataObjectData);
             }
-            break;
-        case Type::DateType:
-            LOGERROR_1(0, "SDO DateType return values are not yet supported (%s)", name);
-            break;
-        case Type::LongType:
-            LOGERROR_1(0, "SDO LongType (int64_t) return values are not yet supported (%s)", name);
-            break;
-        case Type::UriType:
-            LOGERROR_1(0, "SDO UriType return values are not yet supported (%s)", name);
-            break;
-        case Type::BigDecimalType:
-            LOGERROR_1(0, "SDO BigDecimalType return values are not yet supported (%s)", name);
-            break;
-        case Type::BigIntegerType:
-            LOGERROR_1(0, "SDO BigIntegerType return values are not yet supported (%s)", name);
-            break;
-        default:
-            LOGERROR_1(0, "Unknown SDO type return value named %s has been found. Unknown types are not yet supported", name);
-        }   
-    }
-}
 
+        } // End namespace ws
+    } // End namespace sca
+} // End namespace tuscany

Modified: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceProxy.h Mon Aug 28 03:42:10 2006
@@ -19,19 +19,18 @@
 #define tuscany_sca_ws_wsserviceproxy_h
 
 #include "osoa/sca/export.h"
-
-#include "commonj/sdo/SDO.h"
-using commonj::sdo::DataObjectPtr;
-
-#include "tuscany/sca/core/CompositeService.h"
-using tuscany::sca::CompositeService;
-
 #include "tuscany/sca/core/TuscanyRuntime.h"
-using tuscany::sca::TuscanyRuntime;
+#include "tuscany/sca/core/Operation.h"
+#include "tuscany/sca/core/CompositeServiceHelper.h"
+#include "commonj/sdo/SDO.h"
 
 #include <string>
 using std::string;
 
+using namespace commonj::sdo;
+using namespace tuscany::sca;
+
+
 namespace tuscany
 {
     namespace sca
@@ -52,9 +51,9 @@
                 virtual void setOutputData(Operation operation, DataObjectPtr outputDataObject);
                 string compositeServiceName;
                 string systemRoot;
-                string compositeComponent;
-                CompositeService* scaCompositeServiceType;
+                string defaultComponentName;
                 TuscanyRuntime* tuscanyRuntime;
+                CompositeServiceHelper* compositeServiceHelper;
             };
         } // End namespace ws
     } // End namespace sca

Added: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h?rev=437637&view=auto
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h (added)
+++ incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h Mon Aug 28 03:42:10 2006
@@ -0,0 +1,67 @@
+/*
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+#ifndef tuscany_sca_ws_wsservicewrapper_h
+#define tuscany_sca_ws_wsservicewrapper_h
+#include "osoa/sca/export.h"
+
+#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/core/Operation.h"
+#include "tuscany/sca/model/Service.h"
+
+using namespace tuscany::sca::model;
+using namespace tuscany::sca;
+        
+
+namespace tuscany
+{
+    namespace sca
+    {
+        
+        namespace ws
+        {
+        
+            class SCA_API WSServiceWrapper : public ServiceWrapper
+            {
+            public:
+
+                /**
+                 * Constructor.
+                 * @param target The service wrapper represents a Web service.
+                 */
+                WSServiceWrapper(Service* service);
+                
+                /**
+                 * Destructor
+                 */
+                virtual    ~WSServiceWrapper();
+
+                /**
+                 * All business method calls on the target service are performed through
+                 * this invoke method.
+                 * @param operation The details of the method, paramaters and return value for the
+                 * business method to be called on the target service.
+                 */
+                virtual void invoke(Operation& operation);
+            };
+        } // End namespace ws
+    } // End namespace sca
+} // End namespace tuscany
+
+#endif // tuscany_sca_ws_wsservicewrapper_h

Propchange: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/cpp/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Proxy.h Mon Aug 28 03:42:10 2006
@@ -22,7 +22,7 @@
 #endif 
 
 #include "CustomerInfo.h"
-#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
 
 class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo
 {

Modified: incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp?rev=437637&r1=437636&r2=437637&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 Mon Aug 28 03:42:10 2006
@@ -34,7 +34,7 @@
     }
 }
 
-CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target)
+CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : CPPServiceWrapper(target)
 {
     impl = (CustomerInfoImpl*)getImplementation();
 }

Modified: incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl_CustomerInfoService_Wrapper.h Mon Aug 28 03:42:10 2006
@@ -22,9 +22,9 @@
 #endif 
 
 #include "CustomerInfoImpl.h"
-#include "tuscany/sca/core/ComponentServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
 
-class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper
+class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper
 {
 public:
     CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target);

Modified: incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/Makefile.am?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/Makefile.am (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/CustomerInfo/Makefile.am Mon Aug 28 03:42:10 2006
@@ -10,6 +10,7 @@
 libCustomerInfo_la_LIBADD =
 
 INCLUDES = -I$(top_builddir)/runtime/core/src \
+		   -I$(top_builddir)/runtime/extensions \
            -I${TUSCANY_SDOCPP}/include
                       
 install:

Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/Makefile.am?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/Makefile.am (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/Makefile.am Mon Aug 28 03:42:10 2006
@@ -12,6 +12,7 @@
 libMyValue_la_LIBADD =
 
 INCLUDES = -I$(top_builddir)/runtime/core/src \
+		   -I$(top_builddir)/runtime/extensions \
            -I${TUSCANY_SDOCPP}/include \
            -I../CustomerInfo
                    

Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Proxy.h Mon Aug 28 03:42:10 2006
@@ -22,7 +22,7 @@
 #endif 
 
 #include "MyValue.h"
-#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
 
 class MyValueImpl_MyValueService_Proxy : public MyValue
 {

Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.cpp?rev=437637&r1=437636&r2=437637&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 Mon Aug 28 03:42:10 2006
@@ -34,7 +34,7 @@
     }
 }
 
-MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target)
+MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : CPPServiceWrapper(target)
 {
     impl = (MyValueImpl*)getImplementation();
 }

Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_MyValueService_Wrapper.h Mon Aug 28 03:42:10 2006
@@ -22,9 +22,9 @@
 #endif 
 
 #include "MyValueImpl.h"
-#include "tuscany/sca/core/ComponentServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
 
-class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper
+class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper
 {
 public:
     MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target);

Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_customerInfo_Proxy.h Mon Aug 28 03:42:10 2006
@@ -22,7 +22,7 @@
 #endif 
 
 #include "CustomerInfo.h"
-#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
 
 class MyValueImpl_customerInfo_Proxy : public CustomerInfo
 {

Modified: incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.h (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/MyValue/MyValueImpl_stockQuote_Proxy.h Mon Aug 28 03:42:10 2006
@@ -22,7 +22,7 @@
 #endif 
 
 #include "StockQuoteService.h"
-#include "tuscany/sca/core/ServiceWrapper.h"
+#include "tuscany/sca/cpp/CPPServiceWrapper.h"
 
 class MyValueImpl_stockQuote_Proxy : public StockQuoteService
 {

Modified: incubator/tuscany/cpp/sca/runtime/core/test/src/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/core/test/src/Makefile.am?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/core/test/src/Makefile.am (original)
+++ incubator/tuscany/cpp/sca/runtime/core/test/src/Makefile.am Mon Aug 28 03:42:10 2006
@@ -9,4 +9,5 @@
 
 INCLUDES = -I$(top_builddir)/runtime/core/test/MyValue \
             -I$(top_builddir)/runtime/core/src \
+            -I$(top_builddir)/runtime/extensions \
             -I${TUSCANY_SDOCPP}/include

Propchange: incubator/tuscany/cpp/sca/runtime/extensions/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Aug 28 03:42:10 2006
@@ -0,0 +1,29 @@
+configure
+Makefile.in
+config.log
+depcomp
+config.guess
+config.h
+config.sub
+ltmain.sh
+Makefile
+config.status
+stamp-h1
+config.h.in
+libtool
+autom4te.cache
+missing
+aclocal.m4
+install-sh
+.deps
+*.dat
+.libs
+tmp
+bld
+.project
+.cdtproject
+.settings
+*_Proxy.cpp
+*_Proxy.h
+*_Wrapper.cpp
+*_Wrapper.h

Propchange: incubator/tuscany/cpp/sca/runtime/extensions/cpp/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Aug 28 03:42:10 2006
@@ -0,0 +1,29 @@
+configure
+Makefile.in
+config.log
+depcomp
+config.guess
+config.h
+config.sub
+ltmain.sh
+Makefile
+config.status
+stamp-h1
+config.h.in
+libtool
+autom4te.cache
+missing
+aclocal.m4
+install-sh
+.deps
+*.dat
+.libs
+tmp
+bld
+.project
+.cdtproject
+.settings
+*_Proxy.cpp
+*_Proxy.h
+*_Wrapper.cpp
+*_Wrapper.h

Propchange: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Aug 28 03:42:10 2006
@@ -0,0 +1,29 @@
+configure
+Makefile.in
+config.log
+depcomp
+config.guess
+config.h
+config.sub
+ltmain.sh
+Makefile
+config.status
+stamp-h1
+config.h.in
+libtool
+autom4te.cache
+missing
+aclocal.m4
+install-sh
+.deps
+*.dat
+.libs
+tmp
+bld
+.project
+.cdtproject
+.settings
+*_Proxy.cpp
+*_Proxy.h
+*_Wrapper.cpp
+*_Wrapper.h

Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.cpp Mon Aug 28 03:42:10 2006
@@ -24,7 +24,6 @@
 #include "CPPInterfaceExtension.h"
 
 
-
 extern "C"
 {
     #if defined(WIN32) || defined(_WINDOWS)

Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.h (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPExtension.h Mon Aug 28 03:42:10 2006
@@ -41,6 +41,7 @@
                 virtual ~CPPExtension();            
 
                 static void initialize();
+                
             private:
                 
             };

Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.cpp Mon Aug 28 03:42:10 2006
@@ -20,6 +20,7 @@
 #include "CPPImplementationExtension.h"
 #include "CPPImplementation.h"
 #include "tuscany/sca/util/Logging.h"
+#include "tuscany/sca/util/Utils.h"
 
 
 namespace tuscany
@@ -52,7 +53,7 @@
             // ===================================================================
             // loadModelElement - load the info from implementation.cpp 
             // ===================================================================
-            tuscany::sca::model::Implementation* CPPImplementationExtension::getImplementation(commonj::sdo::DataObjectPtr scdlImplementation)
+            ComponentType* CPPImplementationExtension::getImplementation(Composite *composite, DataObjectPtr scdlImplementation)
             {
                 string implType = scdlImplementation->getType().getName();
                 if (implType == "CPPImplementation")
@@ -60,11 +61,29 @@
                     string library = scdlImplementation->getCString("library");
                     string header = scdlImplementation->getCString("header");
                     string className = scdlImplementation->getCString("class");
-                    // The following works for now ONLY bacause CPPImplementation is identical 
-                    // to tusscany::sca::model::CPPIplementation which will be removed soon!
-                    return new CPPImplementation(library, header, className);
+
+                    string headerPath;
+                    string headerStub;
+
+                    // Separate any path element
+                    Utils::rTokeniseString("/", header, headerPath, headerStub);
+                    if (headerPath != "")
+                    {
+                        headerPath += "/";
+                    }
+                    
+                    // Determine the header stub name
+                    string tmp;             
+                    Utils::rTokeniseString(".h", headerStub, headerStub, tmp);
+                    
+                    CPPImplementation* cppImpl = new CPPImplementation(library, header, headerPath, headerStub, className);
+                    
+                    return cppImpl;
+                }
+                else
+                {
+                    return NULL;
                 }
-                return 0;
             }
 
         } // End namespace cpp

Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.h (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPImplementationExtension.h Mon Aug 28 03:42:10 2006
@@ -35,7 +35,7 @@
             /**
             * Default constructor
                 */
-                CPPImplementationExtension();            
+                CPPImplementationExtension();
                 
                 /**
                 * Destructor
@@ -53,7 +53,7 @@
                 */
                 virtual const string& getExtensionTypeQName() {return typeQName;}
                 
-                virtual tuscany::sca::model::Implementation* getImplementation(commonj::sdo::DataObjectPtr scdlImplementation);
+                virtual ComponentType* getImplementation(Composite* composite, DataObjectPtr scdlImplementation);
                 
             private:
                 static const string extensionName;

Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.cpp?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.cpp Mon Aug 28 03:42:10 2006
@@ -50,9 +50,9 @@
             const string CPPInterfaceExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#CPPInterface");
 
             // ===================================================================
-            // loadModelElement - load the info from implementation.cpp 
+            // loadModelElement - load the info from interface.cpp 
             // ===================================================================
-            tuscany::sca::model::Interface* CPPInterfaceExtension::getInterface(commonj::sdo::DataObjectPtr scdlInterface)
+            tuscany::sca::model::Interface* CPPInterfaceExtension::getInterface(Composite* composite, DataObjectPtr scdlInterface)
             {
                 // Determine the type
                 string ifType = scdlInterface->getType().getName();
@@ -62,9 +62,7 @@
                     string className = scdlInterface->getCString("class");
                     string scope = scdlInterface->getCString("scope");
                     bool remotable = scdlInterface->getBoolean("remotable");
-
-                    // The following works for now ONLY bacause CPPInterface is identical 
-                    // to tusscany::sca::model::CPPInterface which will be removed soon!                    
+                    
                     return new CPPInterface(header, className, scope, remotable);
                 }
                 return 0;

Modified: incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.h?rev=437637&r1=437636&r2=437637&view=diff
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.h (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/cpp/src/CPPInterfaceExtension.h Mon Aug 28 03:42:10 2006
@@ -53,7 +53,7 @@
                 */
                 virtual const string& getExtensionTypeQName() {return typeQName;}
  
-                virtual tuscany::sca::model::Interface* getInterface(commonj::sdo::DataObjectPtr scdlInterface);
+                virtual tuscany::sca::model::Interface* getInterface(Composite* composite, DataObjectPtr scdlInterface);
                  
             private:
                 static const string extensionName;



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