Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.etrice.core.etmap/src/org/eclipse/etrice/core/etmap/util/ETMapUtil.java10
-rw-r--r--plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend14
-rw-r--r--plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java29
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend32
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java25
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.c.zipbin135694 -> 135707 bytes
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.java.zipbin417736 -> 417736 bytes
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.c.zipbin829483 -> 829508 bytes
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.java.zipbin69185 -> 69352 bytes
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.tutorials.java.zipbin78670 -> 78670 bytes
10 files changed, 37 insertions, 73 deletions
diff --git a/plugins/org.eclipse.etrice.core.etmap/src/org/eclipse/etrice/core/etmap/util/ETMapUtil.java b/plugins/org.eclipse.etrice.core.etmap/src/org/eclipse/etrice/core/etmap/util/ETMapUtil.java
index 426cb4b9e..58cae5e78 100644
--- a/plugins/org.eclipse.etrice.core.etmap/src/org/eclipse/etrice/core/etmap/util/ETMapUtil.java
+++ b/plugins/org.eclipse.etrice.core.etmap/src/org/eclipse/etrice/core/etmap/util/ETMapUtil.java
@@ -19,6 +19,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map.Entry;
+import java.util.Set;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.resource.Resource;
@@ -125,6 +126,15 @@ public class ETMapUtil {
return thread;
}
+ public static Set<PhysicalThread> getUsedThreads(NodeRef nr, SubSystemInstance ssi){
+ Set<PhysicalThread> usedThreads = new HashSet<PhysicalThread>();
+ for(ActorInstance ai : ssi.getAllContainedInstances())
+ usedThreads.add(getMappedThread(ai).getThread());
+ usedThreads.retainAll(nr.getType().getThreads());
+
+ return usedThreads;
+ }
+
public static String dumpMappings() {
StringBuilder result = new StringBuilder();
diff --git a/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend b/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
index e5add8190..c428ba401 100644
--- a/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
@@ -46,6 +46,7 @@ import org.eclipse.etrice.core.room.PrimitiveType
import org.eclipse.etrice.core.common.base.LiteralType
import org.eclipse.etrice.core.genmodel.base.ILogger
import org.eclipse.etrice.core.room.EnumerationType
+import java.util.Collection
@Singleton
class NodeGen {
@@ -72,12 +73,7 @@ class NodeGen {
checkDataPorts(ssi)
- val usedThreads = new HashSet<PhysicalThread>();
- for (thread: nr.type.threads) {
- val instancesOnThread = ssi.allContainedInstances.filter(ai|ETMapUtil::getMappedThread(ai).thread==thread)
- if (!instancesOnThread.empty)
- usedThreads.add(thread)
- }
+ val usedThreads = ETMapUtil::getUsedThreads(nr, ssi)
fileIO.generateFile("generating Node declaration", filepath, infopath, file, root.generateHeaderFile(ssi))
@@ -137,7 +133,7 @@ class NodeGen {
'''
}
- def private generateSourceFile(Root root, SubSystemInstance ssi, HashSet<PhysicalThread> usedThreads) {
+ def private generateSourceFile(Root root, SubSystemInstance ssi, Collection<PhysicalThread> usedThreads) {
val nr = ETMapUtil::getNodeRef(ssi)
val ssc = ssi.subSystemClass
val clsname = nr.name+"_"+ssi.name
@@ -356,7 +352,7 @@ class NodeGen {
'''
}
- def private generateInstanceFile(Root root, SubSystemInstance ssi, HashSet<PhysicalThread> usedThreads) {
+ def private generateInstanceFile(Root root, SubSystemInstance ssi, Collection<PhysicalThread> usedThreads) {
val nr = ETMapUtil::getNodeRef(ssi)
'''
/**
@@ -650,7 +646,7 @@ class NodeGen {
return result
}
- def private generateDispatcherFile(Root root, SubSystemInstance ssi, HashSet<PhysicalThread> usedThreads) {
+ def private generateDispatcherFile(Root root, SubSystemInstance ssi, Collection<PhysicalThread> usedThreads) {
val nr = ETMapUtil::getNodeRef(ssi)
val loggedPorts = ssi.loggedPorts
val logData = ssi.subSystemClass.annotations.isAnnotationPresent("DataLogging")
diff --git a/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java b/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java
index 25c09a109..aedc1eb98 100644
--- a/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java
+++ b/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java
@@ -20,6 +20,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EObject;
@@ -138,27 +139,7 @@ public class NodeGen {
final String infopath = (_generationInfoPath + _path_1);
String file = this._cExtensions.getCHeaderFileName(nr, ssi);
this.checkDataPorts(ssi);
- final HashSet<PhysicalThread> usedThreads = new HashSet<PhysicalThread>();
- NodeClass _type = nr.getType();
- EList<PhysicalThread> _threads = _type.getThreads();
- for (final PhysicalThread thread : _threads) {
- {
- EList<ActorInstance> _allContainedInstances = ssi.getAllContainedInstances();
- final Function1<ActorInstance,Boolean> _function = new Function1<ActorInstance,Boolean>() {
- public Boolean apply(final ActorInstance ai) {
- ETMapUtil.MappedThread _mappedThread = ETMapUtil.getMappedThread(ai);
- PhysicalThread _thread = _mappedThread.getThread();
- return Boolean.valueOf(Objects.equal(_thread, thread));
- }
- };
- final Iterable<ActorInstance> instancesOnThread = IterableExtensions.<ActorInstance>filter(_allContainedInstances, _function);
- boolean _isEmpty = IterableExtensions.isEmpty(instancesOnThread);
- boolean _not = (!_isEmpty);
- if (_not) {
- usedThreads.add(thread);
- }
- }
- }
+ final Set<PhysicalThread> usedThreads = ETMapUtil.getUsedThreads(nr, ssi);
CharSequence _generateHeaderFile = this.generateHeaderFile(root, ssi);
this.fileIO.generateFile("generating Node declaration", filepath, infopath, file, _generateHeaderFile);
String _cSourceFileName = this._cExtensions.getCSourceFileName(nr, ssi);
@@ -277,7 +258,7 @@ public class NodeGen {
return _xblockexpression;
}
- private CharSequence generateSourceFile(final Root root, final SubSystemInstance ssi, final HashSet<PhysicalThread> usedThreads) {
+ private CharSequence generateSourceFile(final Root root, final SubSystemInstance ssi, final Collection<PhysicalThread> usedThreads) {
CharSequence _xblockexpression = null;
{
final NodeRef nr = ETMapUtil.getNodeRef(ssi);
@@ -999,7 +980,7 @@ public class NodeGen {
return _xblockexpression;
}
- private CharSequence generateInstanceFile(final Root root, final SubSystemInstance ssi, final HashSet<PhysicalThread> usedThreads) {
+ private CharSequence generateInstanceFile(final Root root, final SubSystemInstance ssi, final Collection<PhysicalThread> usedThreads) {
CharSequence _xblockexpression = null;
{
final NodeRef nr = ETMapUtil.getNodeRef(ssi);
@@ -2162,7 +2143,7 @@ public class NodeGen {
return result;
}
- private CharSequence generateDispatcherFile(final Root root, final SubSystemInstance ssi, final HashSet<PhysicalThread> usedThreads) {
+ private CharSequence generateDispatcherFile(final Root root, final SubSystemInstance ssi, final Collection<PhysicalThread> usedThreads) {
CharSequence _xblockexpression = null;
{
final NodeRef nr = ETMapUtil.getNodeRef(ssi);
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend
index 50deb5209..4b84235ea 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend
@@ -14,33 +14,34 @@ package org.eclipse.etrice.generator.java.gen
import com.google.inject.Inject
import com.google.inject.Singleton
+import java.util.Collection
+import java.util.HashMap
import java.util.HashSet
+import org.eclipse.etrice.core.etmap.util.ETMapUtil
import org.eclipse.etrice.core.etphys.eTPhys.ExecMode
import org.eclipse.etrice.core.etphys.eTPhys.PhysicalThread
import org.eclipse.etrice.core.genmodel.etricegen.ActorInstance
+import org.eclipse.etrice.core.genmodel.etricegen.ActorInterfaceInstance
import org.eclipse.etrice.core.genmodel.etricegen.IDiagnostician
+import org.eclipse.etrice.core.genmodel.etricegen.InstanceBase
import org.eclipse.etrice.core.genmodel.etricegen.Root
+import org.eclipse.etrice.core.genmodel.etricegen.StructureInstance
import org.eclipse.etrice.core.genmodel.etricegen.SubSystemInstance
+import org.eclipse.etrice.core.genmodel.etricegen.WiredSubSystemClass
+import org.eclipse.etrice.core.room.ActorClass
import org.eclipse.etrice.core.room.CommunicationType
+import org.eclipse.etrice.core.room.SubSystemClass
+import org.eclipse.etrice.generator.base.FileSystemHelpers
import org.eclipse.etrice.generator.base.IDataConfiguration
import org.eclipse.etrice.generator.base.IGeneratorFileIo
import org.eclipse.etrice.generator.base.IntelligentSeparator
import org.eclipse.etrice.generator.generic.ProcedureHelpers
import org.eclipse.etrice.generator.generic.RoomExtensions
+import org.eclipse.etrice.generator.java.Main
import static extension org.eclipse.etrice.generator.base.Indexed.*
-import org.eclipse.etrice.core.genmodel.etricegen.ActorInterfaceInstance
-import org.eclipse.etrice.core.room.ActorClass
-import com.google.common.collect.Sets
import com.google.common.collect.Lists
-import org.eclipse.etrice.core.genmodel.etricegen.StructureInstance
-import org.eclipse.etrice.generator.java.Main
-import org.eclipse.etrice.core.genmodel.etricegen.WiredSubSystemClass
-import java.util.HashMap
-import org.eclipse.etrice.core.room.SubSystemClass
-import org.eclipse.etrice.core.genmodel.etricegen.InstanceBase
-import org.eclipse.etrice.core.etmap.util.ETMapUtil
-import org.eclipse.etrice.generator.base.FileSystemHelpers
+import com.google.common.collect.Sets
@Singleton
class NodeGen {
@@ -70,12 +71,7 @@ class NodeGen {
checkDataPorts(ssi)
- val usedThreads = new HashSet<PhysicalThread>();
- for (thread: nr.type.threads) {
- val instancesOnThread = ssi.allContainedInstances.filter(ai|ETMapUtil::getMappedThread(ai).thread==thread)
- if (!instancesOnThread.empty)
- usedThreads.add(thread)
- }
+ val usedThreads = ETMapUtil::getUsedThreads(nr, ssi)
fileIO.generateFile("generating Node implementation", path, infopath, file, root.generate(ssi, wired, usedThreads))
if (dataConfigExt.hasVariableService(ssi))
@@ -100,7 +96,7 @@ class NodeGen {
return result
}
- def generate(Root root, SubSystemInstance comp, WiredSubSystemClass wired, HashSet<PhysicalThread> usedThreads) {
+ def generate(Root root, SubSystemInstance comp, WiredSubSystemClass wired, Collection<PhysicalThread> usedThreads) {
val cc = comp.subSystemClass
val models = root.getReferencedModels(cc)
val nr = ETMapUtil::getNodeRef(comp)
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java
index 3ca455020..a61166ed5 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java
@@ -21,6 +21,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.TreeIterator;
@@ -153,27 +154,7 @@ public class NodeGen {
final String infopath = (_generationInfoPath + _path_1);
final String file = this._javaExtensions.getJavaFileName(nr, ssi);
this.checkDataPorts(ssi);
- final HashSet<PhysicalThread> usedThreads = new HashSet<PhysicalThread>();
- NodeClass _type = nr.getType();
- EList<PhysicalThread> _threads = _type.getThreads();
- for (final PhysicalThread thread : _threads) {
- {
- EList<ActorInstance> _allContainedInstances = ssi.getAllContainedInstances();
- final Function1<ActorInstance,Boolean> _function_2 = new Function1<ActorInstance,Boolean>() {
- public Boolean apply(final ActorInstance ai) {
- ETMapUtil.MappedThread _mappedThread = ETMapUtil.getMappedThread(ai);
- PhysicalThread _thread = _mappedThread.getThread();
- return Boolean.valueOf(Objects.equal(_thread, thread));
- }
- };
- final Iterable<ActorInstance> instancesOnThread = IterableExtensions.<ActorInstance>filter(_allContainedInstances, _function_2);
- boolean _isEmpty = IterableExtensions.isEmpty(instancesOnThread);
- boolean _not = (!_isEmpty);
- if (_not) {
- usedThreads.add(thread);
- }
- }
- }
+ final Set<PhysicalThread> usedThreads = ETMapUtil.getUsedThreads(nr, ssi);
CharSequence _generate = this.generate(root, ssi, wired, usedThreads);
this.fileIO.generateFile("generating Node implementation", path, infopath, file, _generate);
boolean _hasVariableService = this.dataConfigExt.hasVariableService(ssi);
@@ -221,7 +202,7 @@ public class NodeGen {
return result;
}
- public CharSequence generate(final Root root, final SubSystemInstance comp, final WiredSubSystemClass wired, final HashSet<PhysicalThread> usedThreads) {
+ public CharSequence generate(final Root root, final SubSystemInstance comp, final WiredSubSystemClass wired, final Collection<PhysicalThread> usedThreads) {
CharSequence _xblockexpression = null;
{
final SubSystemClass cc = comp.getSubSystemClass();
diff --git a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.c.zip b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.c.zip
index 74008449e..7f487d131 100644
--- a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.c.zip
+++ b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.c.zip
Binary files differ
diff --git a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.java.zip b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.java.zip
index 6f3b5e63b..cfb6b198c 100644
--- a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.java.zip
+++ b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.java.zip
Binary files differ
diff --git a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.c.zip b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.c.zip
index c407eb463..0d09b4894 100644
--- a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.c.zip
+++ b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.c.zip
Binary files differ
diff --git a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.java.zip b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.java.zip
index 3cf453247..c7b6f84de 100644
--- a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.java.zip
+++ b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.java.zip
Binary files differ
diff --git a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.tutorials.java.zip b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.tutorials.java.zip
index afdb6fd90..62eaaf717 100644
--- a/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.tutorials.java.zip
+++ b/plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.tutorials.java.zip
Binary files differ

Back to the top