summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend16
-rw-r--r--org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FrancaGeneratorExtensions.xtend28
2 files changed, 22 insertions, 22 deletions
diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend
index 2cfba8d..f35a752 100644
--- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend
+++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend
@@ -252,7 +252,7 @@ class FTypeGenerator {
«fStructType.baseStructName»::writeToTypeOutputStream(typeOutputStream);
«ENDIF»
«FOR element : fStructType.elements»
- «element.type.typeStreamSignature(deploymentAccessor)»
+ «element.type.typeStreamSignature(deploymentAccessor, element)»
«ENDFOR»
}
};
@@ -495,20 +495,6 @@ class FTypeGenerator {
fUnionType.elements.forEach[type.getRequiredHeaderPath(generatedHeaders, libraryHeaders)]
libraryHeaders.addAll('cstdint', 'memory')
}
-
- def private getRequiredHeaderPath(FTypeRef fTypeRef) {
- if (fTypeRef.derived != null)
- return fTypeRef.derived.FTypeCollection.headerPath
- return fTypeRef.predefined.requiredHeaderPath
- }
-
- def private getRequiredHeaderPath(FBasicTypeId fBasicTypeId) {
- switch fBasicTypeId {
- case FBasicTypeId::STRING : 'string'
- case FBasicTypeId::BYTE_BUFFER : 'CommonAPI/ByteBuffer.h'
- default : 'cstdint'
- }
- }
def private void getRequiredHeaderPath(FTypeRef fTypeRef, Collection<String> generatedHeaders, Collection<String> libraryHeaders) {
if (fTypeRef.derived != null) {
diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FrancaGeneratorExtensions.xtend b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FrancaGeneratorExtensions.xtend
index 7940583..59d1475 100644
--- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FrancaGeneratorExtensions.xtend
+++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FrancaGeneratorExtensions.xtend
@@ -46,6 +46,7 @@ import org.genivi.commonapi.core.preferences.FPreferences
import org.osgi.framework.FrameworkUtil
import org.eclipse.core.resources.IResource
import org.osgi.framework.Version
+import org.franca.core.franca.FField
class FrancaGeneratorExtensions {
@@ -751,9 +752,22 @@ class FrancaGeneratorExtensions {
}
}
- def String typeStreamSignature(FTypeRef fTypeRef, DeploymentInterfacePropertyAccessor deploymentAccessor) {
- if (fTypeRef.derived != null)
+ def String typeStreamSignature(FTypeRef fTypeRef, DeploymentInterfacePropertyAccessor deploymentAccessor, FField forThisElement) {
+ if (forThisElement.array != null && forThisElement.array.equals("[]")) {
+ var String ret = ""
+ ret = ret + "typeOutputStream.beginWriteVectorType();\n"
+ ret = ret + fTypeRef.actualTypeStreamSignature(deploymentAccessor)
+ ret = ret + "typeOutputStream.endWriteVectorType();\n"
+ return ret
+ }
+ return fTypeRef.actualTypeStreamSignature(deploymentAccessor)
+ }
+
+ def String actualTypeStreamSignature(FTypeRef fTypeRef, DeploymentInterfacePropertyAccessor deploymentAccessor) {
+ if (fTypeRef.derived != null) {
return fTypeRef.derived.typeStreamFTypeSignature(deploymentAccessor)
+ }
+
return fTypeRef.predefined.basicTypeStreamSignature
}
@@ -777,20 +791,20 @@ class FrancaGeneratorExtensions {
def private dispatch String typeStreamFTypeSignature(FTypeDef fTypeDef,
DeploymentInterfacePropertyAccessor deploymentAccessor) {
- return fTypeDef.actualType.typeStreamSignature(deploymentAccessor)
+ return fTypeDef.actualType.actualTypeStreamSignature(deploymentAccessor)
}
def private dispatch String typeStreamFTypeSignature(FArrayType fArrayType,
DeploymentInterfacePropertyAccessor deploymentAccessor) {
return 'typeOutputStream.beginWriteVectorType();\n' +
- fArrayType.elementType.typeStreamSignature(deploymentAccessor) + '\n' +
+ fArrayType.elementType.actualTypeStreamSignature(deploymentAccessor) + '\n' +
'typeOutputStream.endWriteVectorType();'
}
def private dispatch String typeStreamFTypeSignature(FMapType fMap,
DeploymentInterfacePropertyAccessor deploymentAccessor) {
- return 'typeOutputStream.beginWriteMapType();\n' + fMap.keyType.typeStreamSignature(deploymentAccessor) + '\n' +
- fMap.valueType.typeStreamSignature(deploymentAccessor) + '\n' + 'typeOutputStream.endWriteMapType();'
+ return 'typeOutputStream.beginWriteMapType();\n' + fMap.keyType.actualTypeStreamSignature(deploymentAccessor) + '\n' +
+ fMap.valueType.actualTypeStreamSignature(deploymentAccessor) + '\n' + 'typeOutputStream.endWriteMapType();'
}
def private dispatch String typeStreamFTypeSignature(FStructType fStructType,
@@ -812,7 +826,7 @@ class FrancaGeneratorExtensions {
def private String getElementsTypeStreamSignature(FStructType fStructType,
DeploymentInterfacePropertyAccessor deploymentAccessor) {
- var signature = fStructType.elements.map[type.typeStreamSignature(deploymentAccessor)].join
+ var signature = fStructType.elements.map[type.typeStreamSignature(deploymentAccessor, it)].join
if (fStructType.base != null)
signature = fStructType.base.getElementsTypeStreamSignature(deploymentAccessor) + signature