diff options
author | Thomas Schuetz | 2012-01-30 15:05:42 +0000 |
---|---|---|
committer | Thomas Schuetz | 2012-01-30 15:05:42 +0000 |
commit | d5afc9c0c42138ac147199ae60193899953869cb (patch) | |
tree | c27b93e12a6cd508f5486a1a2a78f064663f3469 | |
parent | 17c0786b480e757f538d5e334e6e5c93f6751a4a (diff) | |
download | org.eclipse.etrice-d5afc9c0c42138ac147199ae60193899953869cb.tar.gz org.eclipse.etrice-d5afc9c0c42138ac147199ae60193899953869cb.tar.xz org.eclipse.etrice-d5afc9c0c42138ac147199ae60193899953869cb.zip |
[generator.c.tests] moved testcases for C-generator to generator.c.tests
40 files changed, 1652 insertions, 14 deletions
diff --git a/plugins/org.eclipse.etrice.logging/bin/log4j.properties b/plugins/org.eclipse.etrice.logging/bin/log4j.properties new file mode 100644 index 000000000..711e8bc45 --- /dev/null +++ b/plugins/org.eclipse.etrice.logging/bin/log4j.properties @@ -0,0 +1,7 @@ +log4j.rootCategory=INFO, S + +log4j.logger.org.eclipse.xtext=INFO + +log4j.appender.S = org.apache.log4j.ConsoleAppender +log4j.appender.S.layout = org.apache.log4j.PatternLayout +log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n diff --git a/tests/org.eclipse.etrice.generator.c.tests/.cproject b/tests/org.eclipse.etrice.generator.c.tests/.cproject new file mode 100644 index 000000000..f811adc92 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/.cproject @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?fileVersion 4.0.0?> + +<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> + <storageModule moduleId="org.eclipse.cdt.core.settings"> + <cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.debug.54263550"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.debug.54263550" moduleId="org.eclipse.cdt.core.settings" name="Debug"> + <externalSettings/> + <extensions> + <extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> + <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> + <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> + <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> + </extensions> + </storageModule> + <storageModule moduleId="cdtBuildSystem" version="4.0.0"> + <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.debug.54263550" name="Debug" parent="cdt.managedbuild.config.gnu.mingw.exe.debug"> + <folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.debug.54263550." name="/" resourcePath=""> + <toolChain id="cdt.managedbuild.toolchain.gnu.mingw.exe.debug.918285240" name="MinGW GCC" superClass="cdt.managedbuild.toolchain.gnu.mingw.exe.debug"> + <targetPlatform id="cdt.managedbuild.target.gnu.platform.mingw.exe.debug.1377401325" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.mingw.exe.debug"/> + <builder buildPath="${workspace_loc:/org.eclipse.etrice.generator.c.tests/Debug}" id="cdt.managedbuild.tool.gnu.builder.mingw.base.1914462916" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="cdt.managedbuild.tool.gnu.builder.mingw.base"/> + <tool id="cdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.2128193487" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.mingw.exe.debug"> + <option id="gnu.both.asm.option.include.paths.646571697" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1636502349" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + </tool> + <tool id="cdt.managedbuild.tool.gnu.archiver.mingw.base.1852443642" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.mingw.base"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.1864486752" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug"> + <option id="gnu.cpp.compiler.mingw.exe.debug.option.optimization.level.321169512" name="Optimization Level" superClass="gnu.cpp.compiler.mingw.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> + <option id="gnu.cpp.compiler.mingw.exe.debug.option.debugging.level.1151544407" name="Debug Level" superClass="gnu.cpp.compiler.mingw.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> + </tool> + <tool id="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.1547425303" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug"> + <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.mingw.exe.debug.option.optimization.level.836528711" name="Optimization Level" superClass="gnu.c.compiler.mingw.exe.debug.option.optimization.level" valueType="enumerated"/> + <option id="gnu.c.compiler.mingw.exe.debug.option.debugging.level.1206340557" name="Debug Level" superClass="gnu.c.compiler.mingw.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> + <option id="gnu.c.compiler.option.include.paths.937550345" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> + <listOptionValue builtIn="false" value=""${workspace_loc:/org.eclipse.etrice.runtime.c/src}""/> + </option> + <option id="gnu.c.compiler.option.misc.other.674019116" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -Wconversion" valueType="string"/> + <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.215126527" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> + </tool> + <tool id="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.2141539090" name="MinGW C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug"> + <option id="gnu.c.link.option.libs.1886054812" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> + <listOptionValue builtIn="false" value="org.eclipse.etrice.runtime.c"/> + </option> + <option id="gnu.c.link.option.paths.1410926104" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> + <listOptionValue builtIn="false" value=""${workspace_loc:/org.eclipse.etrice.runtime.c/Debug}""/> + </option> + <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1941302758" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> + <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> + <additionalInput kind="additionalinput" paths="$(LIBS)"/> + </inputType> + </tool> + <tool id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1915798937" name="MinGW C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug"/> + </toolChain> + </folderInfo> + <sourceEntries> + <entry excluding="src-gen|src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> + <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> + <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src-gen"/> + </sourceEntries> + </configuration> + </storageModule> + <storageModule moduleId="org.eclipse.cdt.core.externalSettings"> + <externalSettings containerId="org.eclipse.etrice.runtime.c;cdt.managedbuild.config.gnu.mingw.lib.debug.505530637" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/> + </storageModule> + </cconfiguration> + <cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.release.1445732435"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.release.1445732435" moduleId="org.eclipse.cdt.core.settings" name="Release"> + <externalSettings/> + <extensions> + <extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> + <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> + <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> + <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> + </extensions> + </storageModule> + <storageModule moduleId="cdtBuildSystem" version="4.0.0"> + <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.release.1445732435" name="Release" parent="cdt.managedbuild.config.gnu.mingw.exe.release"> + <folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.release.1445732435." name="/" resourcePath=""> + <toolChain id="cdt.managedbuild.toolchain.gnu.mingw.exe.release.44614125" name="MinGW GCC" superClass="cdt.managedbuild.toolchain.gnu.mingw.exe.release"> + <targetPlatform id="cdt.managedbuild.target.gnu.platform.mingw.exe.release.1563670810" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.mingw.exe.release"/> + <builder buildPath="${workspace_loc:/org.eclipse.etrice.generator.c.tests/Release}" id="cdt.managedbuild.tool.gnu.builder.mingw.base.748437960" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="cdt.managedbuild.tool.gnu.builder.mingw.base"/> + <tool id="cdt.managedbuild.tool.gnu.assembler.mingw.exe.release.2087319745" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.mingw.exe.release"> + <option id="gnu.both.asm.option.include.paths.2089558096" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"> + <listOptionValue builtIn="false" value=""${workspace_loc:/org.eclipse.etrice.runtime.c}""/> + </option> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1375308303" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + </tool> + <tool id="cdt.managedbuild.tool.gnu.archiver.mingw.base.245787891" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.mingw.base"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.1042972525" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release"> + <option id="gnu.cpp.compiler.mingw.exe.release.option.optimization.level.1950851559" name="Optimization Level" superClass="gnu.cpp.compiler.mingw.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/> + <option id="gnu.cpp.compiler.mingw.exe.release.option.debugging.level.373334651" name="Debug Level" superClass="gnu.cpp.compiler.mingw.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/> + </tool> + <tool id="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.1378403430" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release"> + <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.mingw.exe.release.option.optimization.level.554911279" name="Optimization Level" superClass="gnu.c.compiler.mingw.exe.release.option.optimization.level" valueType="enumerated"/> + <option id="gnu.c.compiler.mingw.exe.release.option.debugging.level.331396171" name="Debug Level" superClass="gnu.c.compiler.mingw.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/> + <option id="gnu.c.compiler.option.include.paths.1226733508" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> + <listOptionValue builtIn="false" value=""${workspace_loc:/org.eclipse.etrice.runtime.c/src}""/> + </option> + <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.156681579" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> + </tool> + <tool id="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.release.1192709765" name="MinGW C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.release"> + <option id="gnu.c.link.option.libs.2121552378" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> + <listOptionValue builtIn="false" value="org.eclipse.etrice.runtime.c"/> + </option> + <option id="gnu.c.link.option.paths.1610581119" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> + <listOptionValue builtIn="false" value=""${workspace_loc:/org.eclipse.etrice.runtime.c/Release}""/> + </option> + <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1107454825" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> + <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> + <additionalInput kind="additionalinput" paths="$(LIBS)"/> + </inputType> + </tool> + <tool id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release.1557729682" name="MinGW C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release"/> + </toolChain> + </folderInfo> + <sourceEntries> + <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src-gen"/> + <entry excluding="runtime/RMessageQueue.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> + <entry excluding="src-gen|src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> + </sourceEntries> + </configuration> + </storageModule> + <storageModule moduleId="org.eclipse.cdt.core.externalSettings"> + <externalSettings containerId="org.eclipse.etrice.runtime.c;cdt.managedbuild.config.gnu.mingw.lib.release.406040144" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"> + <externalSetting> + <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/org.eclipse.etrice.runtime.c"/> + <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/org.eclipse.etrice.runtime.c/Release"/> + <entry flags="RESOLVED" kind="libraryFile" name="org.eclipse.etrice.runtime.c"/> + </externalSetting> + </externalSettings> + </storageModule> + </cconfiguration> + </storageModule> + <storageModule moduleId="cdtBuildSystem" version="4.0.0"> + <project id="org.eclipse.etrice.generator.c.tests.cdt.managedbuild.target.gnu.mingw.exe.44532741" name="Executable" projectType="cdt.managedbuild.target.gnu.mingw.exe"/> + </storageModule> + <storageModule moduleId="scannerConfiguration"> + <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> + <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.54263550;cdt.managedbuild.config.gnu.mingw.exe.debug.54263550.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.1547425303;cdt.managedbuild.tool.gnu.c.compiler.input.215126527"> + <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/> + </scannerConfigBuildInfo> + <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.1445732435;cdt.managedbuild.config.gnu.mingw.exe.release.1445732435.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.1378403430;cdt.managedbuild.tool.gnu.c.compiler.input.156681579"> + <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/> + </scannerConfigBuildInfo> + </storageModule> + <storageModule moduleId="refreshScope" versionNumber="1"> + <resource resourceType="PROJECT" workspacePath="/org.eclipse.etrice.generator.c.tests"/> + </storageModule> + <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/> +</cproject> diff --git a/tests/org.eclipse.etrice.generator.c.tests/.gitignore b/tests/org.eclipse.etrice.generator.c.tests/.gitignore new file mode 100644 index 000000000..0f3a6b1b9 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/.gitignore @@ -0,0 +1,2 @@ +Debug +Release diff --git a/tests/org.eclipse.etrice.generator.c.tests/.project b/tests/org.eclipse.etrice.generator.c.tests/.project new file mode 100644 index 000000000..d59cce925 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/.project @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.etrice.generator.c.tests</name> + <comment></comment> + <projects> + <project>org.eclipse.etrice.runtime.c</project> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> + <triggers>clean,full,incremental,</triggers> + <arguments> + <dictionary> + <key>?name?</key> + <value></value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.append_environment</key> + <value>true</value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.buildArguments</key> + <value></value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.buildCommand</key> + <value>make</value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.buildLocation</key> + <value>${workspace_loc:/org.eclipse.etrice.generator.c.tests/Debug}</value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.contents</key> + <value>org.eclipse.cdt.make.core.activeConfigSettings</value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.enableAutoBuild</key> + <value>false</value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.enableCleanBuild</key> + <value>true</value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.enableFullBuild</key> + <value>true</value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.stopOnError</key> + <value>true</value> + </dictionary> + <dictionary> + <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key> + <value>true</value> + </dictionary> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> + <triggers>full,incremental,</triggers> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.cdt.core.cnature</nature> + <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> + <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + </natures> +</projectDescription> diff --git a/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.codan.core.prefs b/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 000000000..9f5f4e439 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,66 @@ +#Mon Dec 26 18:56:09 CET 2011 +eclipse.preferences.version=1 +org.eclipse.cdt.codan.checkers.errnoreturn=Warning +org.eclipse.cdt.codan.checkers.errnoreturn.params={implicit\=>false} +org.eclipse.cdt.codan.checkers.errreturnvalue=Error +org.eclipse.cdt.codan.checkers.errreturnvalue.params={} +org.eclipse.cdt.codan.checkers.noreturn=Error +org.eclipse.cdt.codan.checkers.noreturn.params={implicit\=>false} +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={} +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={} +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={no_break_comment\=>"no break",last_case_param\=>true,empty_case_param\=>false} +org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning +org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={unknown\=>false,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error +org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={} +org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error +org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={} +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={} +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={paramNot\=>false} +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={macro\=>true,exceptions\=>("@(\#)","$Id")} +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} diff --git a/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 000000000..dea3bcaa0 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,22 @@ +#Tue Dec 27 19:24:40 CET 2011 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/CPATH/delimiter=; +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/CPATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/C_INCLUDE_PATH/delimiter=; +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/append=true +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/appendContributed=true +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/CPATH/delimiter=; +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/CPATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/C_INCLUDE_PATH/delimiter=; +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/append=true +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/appendContributed=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/LIBRARY_PATH/delimiter=; +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/append=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.54263550/appendContributed=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/LIBRARY_PATH/delimiter=; +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/append=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.release.1445732435/appendContributed=true diff --git a/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.ui.prefs b/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.ui.prefs new file mode 100644 index 000000000..ea816250e --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/.settings/org.eclipse.cdt.ui.prefs @@ -0,0 +1,3 @@ +#Wed Jan 11 10:35:04 CET 2012 +eclipse.preferences.version=1 +formatter_settings_version=1 diff --git a/tests/org.eclipse.etrice.generator.c.tests/manualCGenLaunch.launch b/tests/org.eclipse.etrice.generator.c.tests/manualCGenLaunch.launch new file mode 100644 index 000000000..4472ae430 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/manualCGenLaunch.launch @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/Main.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.generator.c.Main"/> +<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="${workspace_loc:org.eclipse.etrice.generator.c.test}\model\cGenRef.room"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.generator.c"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/> +</launchConfiguration> diff --git a/tests/org.eclipse.etrice.generator.c.tests/model/CTypes.room b/tests/org.eclipse.etrice.generator.c.tests/model/CTypes.room new file mode 100644 index 000000000..9c76a085e --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/model/CTypes.room @@ -0,0 +1,21 @@ +RoomModel room.basic.types.c { + + PrimitiveType boolean -> boolean (boolean) default "FALSE" + PrimitiveType char -> char (char) default "0" + PrimitiveType int8 -> int8 (int8) default "0" + PrimitiveType int16 -> int16 (int16) default "0" + PrimitiveType int32 -> int32 (int32) default "0" + PrimitiveType int64 -> int64 (int64) default "0" + + PrimitiveType uint8 -> uint8 (uint8) default "0" + PrimitiveType uint16 -> uint16 (uint16) default "0" + PrimitiveType uint32 -> uint32 (uint32) default "0" + PrimitiveType uint64 -> uint64 (uint64) default "0" + + PrimitiveType float32 -> float32 (float32) default "0" + PrimitiveType float64 -> float64 (float64) default "0" + + // TODO: define strings for C + // PrimitiveType string -> string (String) default "\"\"" + +}
\ No newline at end of file diff --git a/tests/org.eclipse.etrice.generator.c.tests/model/cGenRef.room b/tests/org.eclipse.etrice.generator.c.tests/model/cGenRef.room new file mode 100644 index 000000000..c1ec04d23 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/model/cGenRef.room @@ -0,0 +1,178 @@ +RoomModel cGenRef { + import room.basic.types.c.* from "CTypes.room" + + SubSystemClass SS { + ActorRef Receiver: Receiver + ActorRef Sender: Sender + ActorRef Broadcast: Broadcast + ActorRef Receiver2: Receiver + ActorRef ref0: Broadcast + ActorRef ref1: Broadcast + ActorRef ref2: Receiver + ActorRef ref3: Receiver + Binding Sender.dataOut and Broadcast.dataIn + Binding Broadcast.dataOut and ref0.dataIn + Binding Broadcast.dataOut and ref1.dataIn + Binding Receiver.dataIn and ref0.dataOut + Binding Receiver2.dataIn and ref0.dataOut + Binding ref2.dataIn and ref1.dataOut + Binding ref3.dataIn and ref1.dataOut + } + + ActorClass Receiver { + Interface { + Port dataIn: CommunicationProtocol + } + Structure { + external Port dataIn + Attribute attr1: DataClass1 + } + Behavior { + StateMachine { + Transition init: initial -> Idle { } + Transition tr0: Idle -> DataReceived { + triggers { + <sendData: dataIn> + } + action { + "dataIn.receivedData();" + } + } + State Idle + State DataReceived + } + } + } + + ActorClass Broadcast { + Interface { + Port dataIn: CommunicationProtocol + conjugated Port dataOut [2]: CommunicationProtocol + } + Structure { + external Port dataIn + external Port dataOut + } + Behavior { + StateMachine { + Transition init: initial -> Idle { } + Transition tr0: Idle -> tp0 of Sending { + triggers { + <sendData: dataIn> + } + action { + "//dataOut.get(0).sendData(data);" + "//dataOut.get(1).sendData(data);" + "dataOut.sendData(data);" + } + } + Transition tr1: tp1 of Sending -> ReceivedBoth { + action { + "dataIn.receivedData();" + } + } + State Idle + State Sending { + subgraph { + Transition tr0: my tp0 -> WaitingForReceived + Transition tr1: WaitingForReceived -> ReceivedOne { + triggers { + <receivedData: dataOut guard { + "true" + }> + } + } + Transition tr2: WaitingForReceived -> ReceivedTheOther { + triggers { + <receivedData: dataOut guard { + "false" + }> + } + } + Transition tr3: ReceivedOne -> my tp1 { + triggers { + <receivedData: dataOut guard { + "true" + }> + } + } + Transition tr4: ReceivedTheOther -> my tp1 { + triggers { + <receivedData: dataOut guard { + "false" + }> + } + } + EntryPoint tp0 + ExitPoint tp1 + State WaitingForReceived + State ReceivedOne + State ReceivedTheOther + } + } + State ReceivedBoth + } + } + } + + ActorClass Sender { + Interface { + conjugated Port dataOut: CommunicationProtocol + } + Structure { + external Port dataOut + } + Behavior { + StateMachine { + Transition init: initial -> SendingData { } + Transition tr0: SendingData -> Done { + triggers { + <receivedData: dataOut> + } + } + State SendingData { + entry { + "dataOut.sendData(1234);" + } + } + State Done + } + } + } + + ProtocolClass CommunicationProtocol { + incoming { + Message sendData(data: int32) + Message sendData2(data: DataClass1) + + } + outgoing { + Message receivedData() + } + } + + + DataClass DataClass1 { + usercode1 {"// usercode1"} + usercode2 {"// usercode2"} + usercode3 {"// usercode3"} + Attribute Attr1: int32 + Attribute ComplexAttr: DataClass2 + Attribute Attr3: float32 + + Operation MultiplyWithAttr1(value: int32): int32 { + "return self->Attr1*value;" + } + Operation MultiplyWithAttr3(value: float32): float32 { + "return self->Attr3*value;" + } + } + + DataClass DataClass2 { + Attribute Attr1: int32 + Attribute Attr2: float32 + Attribute Attr3: int32 + Operation Operation1(): void {"/*nothing to do*/"} + } + +}
\ No newline at end of file diff --git a/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Broadcast.behavior b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Broadcast.behavior new file mode 100644 index 000000000..5fb0a165b --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Broadcast.behavior @@ -0,0 +1,458 @@ +<?xml version="1.0" encoding="ASCII"?> +<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" diagramTypeId="room.behavior" name="Behavior of Broadcast" showGuides="true" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.4/@link //@children.1/@link //@children.1/@children.1/@link //@children.0/@children.3/@children.1/@link //@children.1/@children.2/@link //@children.0/@children.3/@children.2/@link //@children.1/@children.3/@link //@children.1/@children.4/@link //@children.1/@children.5/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link //@connections.6/@link //@connections.7/@link" verticalGridUnit="0"> + <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/> + <link> + <businessObjects href="../cGenRef.room#ActorClass:Broadcast"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="sg"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#StateMachine:Broadcast$sg"/> + </link> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="trp"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100"> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#StateMachine:Broadcast$sg"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.5" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="state"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="170" y="80"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24"> + <points x="-3" y="-3"/> + <points x="-3" y="3"/> + <points x="-11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24"> + <points x="3" y="-3"/> + <points x="3" y="3"/> + <points x="11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24"> + <points x="-2" y="-3"/> + <points x="-2" y="3"/> + <points x="2" y="3"/> + <points x="2" y="-3"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#BaseState:Broadcast$Idle"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.6" incomingConnections="//@connections.5"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Idle"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="state"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="370" y="80"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24"> + <points x="-3" y="-3"/> + <points x="-3" y="3"/> + <points x="-11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24"> + <points x="3" y="-3"/> + <points x="3" y="3"/> + <points x="11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24"> + <points x="-2" y="-3"/> + <points x="-2" y="3"/> + <points x="2" y="3"/> + <points x="2" y="-3"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#BaseState:Broadcast$Sending"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Sending"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="trp"/> + <properties key="item-kind" value="entp"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="19"> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="11" height="11" x="25" y="25"/> + <graphicsAlgorithmChildren xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"> + <points x="27" y="33"/> + <points x="33" y="27"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"> + <points x="27" y="27"/> + <points x="33" y="33"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#EntryPoint:Broadcast$Sending$tp0"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.6" referencedGraphicsAlgorithm="//@children.0/@children.3/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="22" font="//@fonts.0" verticalAlignment="ALIGNMENT_BOTTOM" value="tp0"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="trp"/> + <properties key="item-kind" value="extp"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="39"> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="11" height="11" x="25" y="25"/> + <graphicsAlgorithmChildren xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="25" y="25"> + <points x="5"/> + <points x="11" y="5"/> + <points x="5" y="11"/> + <points y="5"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ExitPoint:Broadcast$Sending$tp1"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.7" referencedGraphicsAlgorithm="//@children.0/@children.3/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="22" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" verticalAlignment="ALIGNMENT_BOTTOM" value="tp1"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="state"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="149" height="90" x="556" y="80"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="89" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="64" y="3" cornerHeight="5" cornerWidth="5"/> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="44" y="24"> + <points x="-3" y="-3"/> + <points x="-3" y="3"/> + <points x="-11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="44" y="24"> + <points x="3" y="-3"/> + <points x="3" y="3"/> + <points x="11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="44" y="24"> + <points x="-2" y="-3"/> + <points x="-2" y="3"/> + <points x="2" y="3"/> + <points x="2" y="-3"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#BaseState:Broadcast$ReceivedBoth"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.7" referencedGraphicsAlgorithm="//@children.0/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="89" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ReceivedBoth"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" active="true"> + <properties key="obj-type" value="sg"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#PlainStateGraph:Broadcast$Sending$sg"/> + </link> + <children> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/Sending"/> + </children> + <children xsi:type="pi:ContainerShape" active="true"> + <properties key="obj-type" value="trp"/> + <properties key="item-kind" value="entp"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="256"> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/> + <graphicsAlgorithmChildren xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="2" filled="false" transparency="0.0"> + <points x="33" y="47"/> + <points x="47" y="33"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="2" filled="false" transparency="0.0"> + <points x="33" y="33"/> + <points x="47" y="47"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#EntryPoint:Broadcast$Sending$tp0"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.1/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="80" height="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" verticalAlignment="ALIGNMENT_BOTTOM" value="tp0"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" active="true"> + <properties key="obj-type" value="trp"/> + <properties key="item-kind" value="extp"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="522"> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/> + <graphicsAlgorithmChildren xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" x="30" y="30"> + <points x="10"/> + <points x="20" y="10"/> + <points x="10" y="20"/> + <points y="10"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ExitPoint:Broadcast$Sending$tp1"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.3 //@connections.4" referencedGraphicsAlgorithm="//@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="80" height="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" verticalAlignment="ALIGNMENT_BOTTOM" value="tp1"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" active="true"> + <properties key="obj-type" value="state"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="185" height="90" x="138" y="80"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="125" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="100" y="3" cornerHeight="5" cornerWidth="5"/> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="62" y="24"> + <points x="-3" y="-3"/> + <points x="-3" y="3"/> + <points x="-11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="62" y="24"> + <points x="3" y="-3"/> + <points x="3" y="3"/> + <points x="11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="62" y="24"> + <points x="-2" y="-3"/> + <points x="-2" y="3"/> + <points x="2" y="3"/> + <points x="2" y="-3"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#BaseState:Broadcast$Sending$WaitingForReceived"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1 //@connections.2" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.1/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="125" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="WaitingForReceived"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" active="true"> + <properties key="obj-type" value="state"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="146" height="90" x="357" y="80"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="86" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="61" y="3" cornerHeight="5" cornerWidth="5"/> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="43" y="24"> + <points x="-3" y="-3"/> + <points x="-3" y="3"/> + <points x="-11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="43" y="24"> + <points x="3" y="-3"/> + <points x="3" y="3"/> + <points x="11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="43" y="24"> + <points x="-2" y="-3"/> + <points x="-2" y="3"/> + <points x="2" y="3"/> + <points x="2" y="-3"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#BaseState:Broadcast$Sending$ReceivedOne"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3" incomingConnections="//@connections.1" referencedGraphicsAlgorithm="//@children.1/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="86" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ReceivedOne"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" active="true"> + <properties key="obj-type" value="state"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="175" height="90" x="543" y="80"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="115" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20"> + <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="90" y="3" cornerHeight="5" cornerWidth="5"/> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="57" y="24"> + <points x="-3" y="-3"/> + <points x="-3" y="3"/> + <points x="-11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="57" y="24"> + <points x="3" y="-3"/> + <points x="3" y="3"/> + <points x="11" y="3"/> + </graphicsAlgorithmChildren> + <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="57" y="24"> + <points x="-2" y="-3"/> + <points x="-2" y="3"/> + <points x="2" y="3"/> + <points x="2" y="-3"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#BaseState:Broadcast$Sending$ReceivedTheOther"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.4" incomingConnections="//@connections.2" referencedGraphicsAlgorithm="//@children.1/@children.5/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="115" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ReceivedTheOther"/> + </children> + </children> + </children> + <connections xsi:type="pi:FreeFormConnection" active="true" start="//@children.1/@children.1/@anchors.0" end="//@children.1/@children.3/@anchors.0"> + <properties key="obj-type" value="trans"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#ContinuationTransition:Broadcast$Sending$tr0"/> + </link> + <connectionDecorators locationRelative="true" location="1.0"> + <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0"> + <points x="-15" y="5"/> + <points/> + <points x="-15" y="-5"/> + </graphicsAlgorithm> + </connectionDecorators> + <connectionDecorators active="true" locationRelative="true" location="0.5"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="10" font="//@fonts.0" value="tr0: "/> + </connectionDecorators> + </connections> + <connections xsi:type="pi:FreeFormConnection" active="true" start="//@children.1/@children.3/@anchors.0" end="//@children.1/@children.4/@anchors.0"> + <properties key="obj-type" value="trans"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#TriggeredTransition:Broadcast$Sending$tr1"/> + </link> + <connectionDecorators locationRelative="true" location="1.0"> + <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0"> + <points x="-15" y="5"/> + <points/> + <points x="-15" y="-5"/> + </graphicsAlgorithm> + </connectionDecorators> + <connectionDecorators active="true" locationRelative="true" location="0.5"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <receivedData:d..."/> + </connectionDecorators> + </connections> + <connections xsi:type="pi:FreeFormConnection" active="true" start="//@children.1/@children.3/@anchors.0" end="//@children.1/@children.5/@anchors.0"> + <properties key="obj-type" value="trans"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#TriggeredTransition:Broadcast$Sending$tr2"/> + </link> + <connectionDecorators locationRelative="true" location="1.0"> + <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0"> + <points x="-15" y="5"/> + <points/> + <points x="-15" y="-5"/> + </graphicsAlgorithm> + </connectionDecorators> + <connectionDecorators active="true" locationRelative="true" location="0.5"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="10" font="//@fonts.0" value="tr2: <receivedData:d..."/> + </connectionDecorators> + </connections> + <connections xsi:type="pi:FreeFormConnection" active="true" start="//@children.1/@children.4/@anchors.0" end="//@children.1/@children.2/@anchors.0"> + <properties key="obj-type" value="trans"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#TriggeredTransition:Broadcast$Sending$tr3"/> + </link> + <connectionDecorators locationRelative="true" location="1.0"> + <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0"> + <points x="-15" y="5"/> + <points/> + <points x="-15" y="-5"/> + </graphicsAlgorithm> + </connectionDecorators> + <connectionDecorators active="true" locationRelative="true" location="0.5"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="10" font="//@fonts.0" value="tr3: <receivedData:d..."/> + </connectionDecorators> + </connections> + <connections xsi:type="pi:FreeFormConnection" active="true" start="//@children.1/@children.5/@anchors.0" end="//@children.1/@children.2/@anchors.0"> + <properties key="obj-type" value="trans"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#TriggeredTransition:Broadcast$Sending$tr4"/> + </link> + <connectionDecorators locationRelative="true" location="1.0"> + <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0"> + <points x="-15" y="5"/> + <points/> + <points x="-15" y="-5"/> + </graphicsAlgorithm> + </connectionDecorators> + <connectionDecorators active="true" locationRelative="true" location="0.5"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="10" font="//@fonts.0" value="tr4: <receivedData:d..."/> + </connectionDecorators> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0"> + <properties key="obj-type" value="trans"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#InitialTransition:Broadcast$initial"/> + </link> + <connectionDecorators visible="true" locationRelative="true" location="1.0"> + <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0"> + <points x="-15" y="5"/> + <points/> + <points x="-15" y="-5"/> + </graphicsAlgorithm> + </connectionDecorators> + <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="10" font="//@fonts.0" value="init"/> + </connectionDecorators> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.3/@children.1/@anchors.0"> + <properties key="obj-type" value="trans"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#TriggeredTransition:Broadcast$tr0"/> + </link> + <connectionDecorators visible="true" locationRelative="true" location="1.0"> + <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0"> + <points x="-15" y="5"/> + <points/> + <points x="-15" y="-5"/> + </graphicsAlgorithm> + </connectionDecorators> + <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="10" font="//@fonts.0" value="tr0: <sendData:dataI..."/> + </connectionDecorators> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@children.2/@anchors.0" end="//@children.0/@children.4/@anchors.0"> + <properties key="obj-type" value="trans"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#ContinuationTransition:Broadcast$tr1"/> + </link> + <connectionDecorators visible="true" locationRelative="true" location="1.0"> + <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0"> + <points x="-15" y="5"/> + <points/> + <points x="-15" y="-5"/> + </graphicsAlgorithm> + </connectionDecorators> + <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" x="10" font="//@fonts.0" value="tr1: "/> + </connectionDecorators> + </connections> + <colors red="227" green="238" blue="249"/> + <colors red="255" green="255" blue="255"/> + <colors/> + <colors red="200" green="200" blue="200"/> + <fonts name="Arial" size="8"/> + <fonts name="Arial" size="9" bold="true"/> +</pi:Diagram> diff --git a/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Broadcast.structure b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Broadcast.structure new file mode 100644 index 000000000..e588b0c21 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Broadcast.structure @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="ASCII"?> +<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" diagramTypeId="room.structure" name="Structure of Broadcast" showGuides="true" pictogramLinks="//@children.0/@link //@link //@children.0/@children.0/@link //@children.0/@children.1/@link" verticalGridUnit="0"> + <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/> + <link> + <businessObjects href="../cGenRef.room#ActorClass:Broadcast"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="cls"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorClass:Broadcast"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="266"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.1" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Broadcast$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="80" height="20" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value="CM"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="532"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="25" y="15"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Broadcast$dataOut"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.1"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="80" height="20" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataOut"/> + </children> + </children> + </children> + <colors red="227" green="238" blue="249"/> + <colors red="255" green="255" blue="255"/> + <colors/> + <fonts name="Arial" size="8"/> +</pi:Diagram> diff --git a/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Receiver.structure b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Receiver.structure new file mode 100644 index 000000000..dffdfb858 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Receiver.structure @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="ASCII"?> +<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" diagramTypeId="room.structure" name="Structure of Receiver" showGuides="true" pictogramLinks="//@children.0/@link //@link //@children.0/@children.0/@link" verticalGridUnit="0"> + <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/> + <link> + <businessObjects href="../cGenRef.room#ActorClass:Receiver"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="cls"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorClass:Receiver"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="400"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.1" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Receiver$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="80" height="20" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + </children> + <colors red="227" green="238" blue="249"/> + <colors red="255" green="255" blue="255"/> + <colors/> + <fonts name="Arial" size="8"/> +</pi:Diagram> diff --git a/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.SS.structure b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.SS.structure new file mode 100644 index 000000000..93082cde0 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.SS.structure @@ -0,0 +1,356 @@ +<?xml version="1.0" encoding="ASCII"?> +<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" diagramTypeId="room.structure" name="Structure of SS" showGuides="true" pictogramLinks="//@children.0/@link //@link //@children.0/@children.0/@link //@children.0/@children.0/@children.1/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.2/@children.1/@link //@children.0/@children.2/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.3/@children.1/@link //@children.0/@children.4/@link //@children.0/@children.4/@children.1/@link //@children.0/@children.4/@children.2/@link //@children.0/@children.5/@link //@children.0/@children.5/@children.1/@link //@children.0/@children.5/@children.2/@link //@children.0/@children.6/@link //@children.0/@children.6/@children.1/@link //@children.0/@children.7/@link //@children.0/@children.7/@children.1/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link //@connections.6/@link" verticalGridUnit="0"> + <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/> + <link> + <businessObjects href="../cGenRef.room#SubSystemClass:SS"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="cls"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#SubSystemClass:SS"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="ref"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="240" height="140" x="26" y="170"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="150" y="50"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="145" y="65"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorRef:SS$Receiver"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Receiver
(Receiver)"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="79"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Receiver$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3" referencedGraphicsAlgorithm="//@children.0/@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="ref"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="240" height="140" x="222" y="170"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="150" y="50"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="145" y="65"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorRef:SS$Sender"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Sender
(Sender)"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value="C"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="79"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Sender$dataOut"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataOut"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="ref"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="240" height="140" x="418" y="170"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="150" y="50"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="145" y="65"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorRef:SS$Broadcast"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Broadcast
(Broadcast)"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="45"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Broadcast$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.2/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value="CM"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="112"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="23" y="19"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Broadcast$dataOut"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1 //@connections.2" referencedGraphicsAlgorithm="//@children.0/@children.2/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.1"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataOut"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="ref"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="240" height="140" x="614" y="170"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="150" y="50"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="145" y="65"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorRef:SS$Receiver2"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Receiver2
(Receiver)"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="79"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Receiver$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.4" referencedGraphicsAlgorithm="//@children.0/@children.3/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="ref"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="240" height="140" x="26" y="280"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="150" y="50"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="145" y="65"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorRef:SS$ref0"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ref0
(Broadcast)"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="45"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Broadcast$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.1" referencedGraphicsAlgorithm="//@children.0/@children.4/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value="CM"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="112"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="23" y="19"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Broadcast$dataOut"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.3 //@connections.4" referencedGraphicsAlgorithm="//@children.0/@children.4/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.1"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataOut"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="ref"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="240" height="140" x="222" y="280"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="150" y="50"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="145" y="65"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorRef:SS$ref1"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.5/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ref1
(Broadcast)"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="45"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Broadcast$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.2" referencedGraphicsAlgorithm="//@children.0/@children.5/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value="CM"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="112"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="23" y="19"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Broadcast$dataOut"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.5 //@connections.6" referencedGraphicsAlgorithm="//@children.0/@children.5/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.1"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataOut"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="ref"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="240" height="140" x="418" y="280"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="150" y="50"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="145" y="65"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorRef:SS$ref2"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.6/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ref2
(Receiver)"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="79"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Receiver$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.5" referencedGraphicsAlgorithm="//@children.0/@children.6/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="ref"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="240" height="140" x="614" y="280"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="150" y="50"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="20" height="10" x="145" y="65"/> + </graphicsAlgorithmChildren> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorRef:SS$ref3"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.7/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ref3
(Receiver)"/> + </children> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value=""/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="79"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Receiver$dataIn"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.6" referencedGraphicsAlgorithm="//@children.0/@children.7/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataIn"/> + </children> + </children> + </children> + </children> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@children.1/@anchors.0" end="//@children.0/@children.2/@children.1/@anchors.0"> + <properties key="obj-type" value="bind"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#Binding:SS$dataOut!Sender-dataIn!Broadcast"/> + </link> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@children.2/@anchors.0" end="//@children.0/@children.4/@children.1/@anchors.0"> + <properties key="obj-type" value="bind"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#Binding:SS$dataOut!Broadcast-dataIn!ref0"/> + </link> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@children.2/@anchors.0" end="//@children.0/@children.5/@children.1/@anchors.0"> + <properties key="obj-type" value="bind"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#Binding:SS$dataOut!Broadcast-dataIn!ref1"/> + </link> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.0/@children.1/@anchors.0" end="//@children.0/@children.4/@children.2/@anchors.0"> + <properties key="obj-type" value="bind"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#Binding:SS$dataIn!Receiver-dataOut!ref0"/> + </link> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@children.1/@anchors.0" end="//@children.0/@children.4/@children.2/@anchors.0"> + <properties key="obj-type" value="bind"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#Binding:SS$dataIn!Receiver2-dataOut!ref0"/> + </link> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@children.1/@anchors.0" end="//@children.0/@children.5/@children.2/@anchors.0"> + <properties key="obj-type" value="bind"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#Binding:SS$dataIn!ref2-dataOut!ref1"/> + </link> + </connections> + <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.7/@children.1/@anchors.0" end="//@children.0/@children.5/@children.2/@anchors.0"> + <properties key="obj-type" value="bind"/> + <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/> + <link> + <businessObjects href="../cGenRef.room#Binding:SS$dataIn!ref3-dataOut!ref1"/> + </link> + </connections> + <colors red="227" green="238" blue="249"/> + <colors red="255" green="255" blue="255"/> + <colors/> + <colors red="200" green="200" blue="200"/> + <fonts name="Arial" size="8"/> +</pi:Diagram> diff --git a/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Sender.structure b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Sender.structure new file mode 100644 index 000000000..d39809681 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/model/diagrams/cGenRef.Sender.structure @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="ASCII"?> +<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" diagramTypeId="room.structure" name="Structure of Sender" showGuides="true" pictogramLinks="//@children.0/@link //@link //@children.0/@children.0/@link" verticalGridUnit="0"> + <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/> + <link> + <businessObjects href="../cGenRef.room#ActorClass:Sender"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="cls"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40"/> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#ActorClass:Sender"/> + </link> + <children xsi:type="pi:ContainerShape" visible="true" active="true"> + <properties key="obj-type" value="port"/> + <properties key="item-kind" value="C"/> + <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="400"> + <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/> + <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/> + </graphicsAlgorithm> + <link> + <businessObjects href="../cGenRef.room#Port:Sender$dataOut"/> + </link> + <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/> + <children visible="true"> + <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="80" height="20" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="dataOut"/> + </children> + </children> + </children> + <colors red="227" green="238" blue="249"/> + <colors red="255" green="255" blue="255"/> + <colors/> + <fonts name="Arial" size="8"/> +</pi:Diagram> diff --git a/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/CommunicationProtocol.c b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/CommunicationProtocol.c new file mode 100644 index 000000000..22bc04cec --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/CommunicationProtocol.c @@ -0,0 +1,21 @@ +#include "CommunicationProtocol.h" + +/*--------------------- port classes */ + + + +/*--------------------- debug helpers */ + +/* TODO: make this optional or different for smaller footprint */ +/* message names as strings for debugging (generate MSC) */ +static const char* CommunicationProtocol_messageStrings[] = {"MIN", "receivedData","sendData", "sendData2", "MAX"}; + +const char* CommunicationProtocol_getMessageString(int msg_id) { + if (msg_id<CommunicationProtocol_MSG_MIN || msg_id>CommunicationProtocol_MSG_MAX+1){ + /* id out of range */ + return "Message ID out of range"; + } + else{ + return CommunicationProtocol_messageStrings[msg_id]; + } +} diff --git a/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/CommunicationProtocol.h b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/CommunicationProtocol.h new file mode 100644 index 000000000..937c181f6 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/CommunicationProtocol.h @@ -0,0 +1,50 @@ +#ifndef _CommunicationProtocol_H_ +#define _CommunicationProtocol_H_ + +#include "etDatatypes.h" + + +#include "DataClass1.h" + +typedef struct { + + +} CommunicationProtocol; + +/* message IDs */ +enum { + CommunicationProtocol_MSG_MIN = 0, + /* IDs for outgoing messages */ + CommunicationProtocol_OUT_receivedData = 1, + /* IDs for incoming messages */ + CommunicationProtocol_IN_sendData = 2, + CommunicationProtocol_IN_sendData2 = 3, + /* error if msgID >= MSG_MAX */ + CommunicationProtocol_MSG_MAX = 4 +}; + +/*--------------------- port classes */ + +typedef struct etPort CommunicationProtocolPort; + +void CommunicationProtocolPort_MyOperation1(CommunicationProtocolPort* self, int a, int b); +int CommunicationProtocolPort_MyOperation2(CommunicationProtocolPort* self); + + + +typedef struct etPort CommunicationProtocolConjPort; + +void CommunicationProtocolConjPort_MyOperation1(CommunicationProtocolConjPort* self, int a, int b); +int CommunicationProtocolConjPort_MyOperation2(CommunicationProtocolConjPort* self); + + + +/*--------------------- debug helpers */ + +/* get message string for message id */ +const char* CommunicationProtocol_getMessageString(int msg_id); + + + +#endif /* _CommunicationProtocol_H_ */ + diff --git a/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass1.c b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass1.c new file mode 100644 index 000000000..d4235dbc3 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass1.c @@ -0,0 +1,24 @@ +#include "DataClass1.h" + +#include <string.h> + +//--------------------- begin user code + // usercode3 +//--------------------- end user code + +// TODO: do we need setters and getters for C and C++ ? + +//--------------------- operations +int32 DataClass1_MultiplyWithAttr1(DataClass1* self, int32 value) { + return self->Attr1*value; +} +float32 DataClass1_MultiplyWithAttr3(DataClass1* self, float32 value) { + return self->Attr3*value; +} + +// deep copy +void DataClass1_deepCopy(DataClass1* source, DataClass1* target) { + memcpy(target, source, sizeof(DataClass1)); +} + + diff --git a/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass1.h b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass1.h new file mode 100644 index 000000000..dbf8dee81 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass1.h @@ -0,0 +1,33 @@ +#ifndef _DataClass1_H_ +#define _DataClass1_H_ + +#include "etDatatypes.h" + +/* TODO: includes only for used DataClasses, also for other models */ +#include "DataClass2.h" + +//--------------------- begin user code + // usercode1 +//--------------------- end user code + +typedef struct { + //--------------------- begin user code + // usercode2 + //--------------------- end user code + //--------------------- attributes + int32 Attr1; + DataClass2 ComplexAttr; + float32 Attr3; +} DataClass1; + +// TODO: do we need setters and getters for C and C++ ? + +//--------------------- operations +int32 DataClass1_MultiplyWithAttr1(DataClass1* self, int32 value); +float32 DataClass1_MultiplyWithAttr3(DataClass1* self, float32 value); + +// deep copy +void DataClass1_deepCopy(DataClass1* source, DataClass1* target); + +#endif /* _DataClass1_H_ */ + diff --git a/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass2.c b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass2.c new file mode 100644 index 000000000..2150d7b41 --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass2.c @@ -0,0 +1,18 @@ +#include "DataClass2.h" + +#include <string.h> + + +// TODO: do we need setters and getters for C and C++ ? + +//--------------------- operations +void DataClass2_Operation1(DataClass2* self) { + /*nothing to do*/ +} + +// deep copy +void DataClass2_deepCopy(DataClass2* source, DataClass2* target) { + memcpy(target, source, sizeof(DataClass2)); +} + + diff --git a/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass2.h b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass2.h new file mode 100644 index 000000000..2d8cbb74f --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/src-gen/cGenRef/DataClass2.h @@ -0,0 +1,25 @@ +#ifndef _DataClass2_H_ +#define _DataClass2_H_ + +#include "etDatatypes.h" + +/* TODO: includes only for used DataClasses, also for other models */ + + +typedef struct { + //--------------------- attributes + int32 Attr1; + float32 Attr2; + int32 Attr3; +} DataClass2; + +// TODO: do we need setters and getters for C and C++ ? + +//--------------------- operations +void DataClass2_Operation1(DataClass2* self); + +// deep copy +void DataClass2_deepCopy(DataClass2* source, DataClass2* target); + +#endif /* _DataClass2_H_ */ + diff --git a/tests/org.eclipse.etrice.generator.c.tests/src-gen/readme.txt b/tests/org.eclipse.etrice.generator.c.tests/src-gen/readme.txt new file mode 100644 index 000000000..1dc2b35ab --- /dev/null +++ b/tests/org.eclipse.etrice.generator.c.tests/src-gen/readme.txt @@ -0,0 +1,4 @@ +This directory is an eTrice code generation target. +It will be erased every time the generator is executed. + +DO NOT PLACE OTHER FILES HERE! diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/RunAllTestcases.c b/tests/org.eclipse.etrice.generator.c.tests/src/RunAllTestcases.c index 242a53d14..c21cc4074 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/RunAllTestcases.c +++ b/tests/org.eclipse.etrice.generator.c.tests/src/RunAllTestcases.c @@ -17,9 +17,6 @@ void runTestCases(void); -#include "test/experiments/test.h" -void runROMTest(void); - int main(void){ runTestCases(); return 0; @@ -29,16 +26,5 @@ int main(void){ void runTestCases(void){ RunCGeneratorTestcases(); RunCRuntimeTestcases(); - runROMTest(); -} - -void runROMTest(void){ - - if (Actor1.constData == &Actor1_const){ - printf("OK\n"); - } - if (Actor1_const.actor == &Actor1){ - printf("OK\n"); - } } diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/generator/RunCGeneratorTestcases.c b/tests/org.eclipse.etrice.generator.c.tests/src/test/generator/RunCGeneratorTestcases.c index cf2d11e9c..cf2d11e9c 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/generator/RunCGeneratorTestcases.c +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/generator/RunCGeneratorTestcases.c diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/generator/RunCGeneratorTestcases.h b/tests/org.eclipse.etrice.generator.c.tests/src/test/generator/RunCGeneratorTestcases.h index 03d5c4276..03d5c4276 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/generator/RunCGeneratorTestcases.h +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/generator/RunCGeneratorTestcases.h diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/generator/TestDataClass.c b/tests/org.eclipse.etrice.generator.c.tests/src/test/generator/TestDataClass.c index e3c521dd3..e3c521dd3 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/generator/TestDataClass.c +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/generator/TestDataClass.c diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/generator/TestDataClass.h b/tests/org.eclipse.etrice.generator.c.tests/src/test/generator/TestDataClass.h index 3cbce4bc1..3cbce4bc1 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/generator/TestDataClass.h +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/generator/TestDataClass.h diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/RunCRuntimeTestcases.c b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/RunCRuntimeTestcases.c index a9a502f3b..a9a502f3b 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/RunCRuntimeTestcases.c +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/RunCRuntimeTestcases.c diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/RunCRuntimeTestcases.h b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/RunCRuntimeTestcases.h index 5d17f7ddb..5d17f7ddb 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/RunCRuntimeTestcases.h +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/RunCRuntimeTestcases.h diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessage.c b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessage.c index c360b0a84..c360b0a84 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessage.c +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessage.c diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessage.h b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessage.h index 67b45e4e1..67b45e4e1 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessage.h +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessage.h diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessageQueue.c b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessageQueue.c index 3a453962c..3a453962c 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessageQueue.c +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessageQueue.c diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessageQueue.h b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessageQueue.h index afceea8f8..afceea8f8 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessageQueue.h +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessageQueue.h diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessageService.c b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessageService.c index 1d8b6cce8..1d8b6cce8 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessageService.c +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessageService.c diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessageService.h b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessageService.h index 43a85baee..43a85baee 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtMessageService.h +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtMessageService.h diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtUnit.c b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtUnit.c index 3f01d0587..3f01d0587 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtUnit.c +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtUnit.c diff --git a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtUnit.h b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtUnit.h index e591d27ef..e591d27ef 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/src/test/runtime/TestEtUnit.h +++ b/tests/org.eclipse.etrice.generator.c.tests/src/test/runtime/TestEtUnit.h diff --git a/examples/org.eclipse.etrice.generator.c.reference/tmp/testlog/TestCGenerator.xml b/tests/org.eclipse.etrice.generator.c.tests/tmp/testlog/TestCGenerator.xml index 160ccd2bf..160ccd2bf 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/tmp/testlog/TestCGenerator.xml +++ b/tests/org.eclipse.etrice.generator.c.tests/tmp/testlog/TestCGenerator.xml diff --git a/examples/org.eclipse.etrice.generator.c.reference/tmp/testlog/TestCRuntime.xml b/tests/org.eclipse.etrice.generator.c.tests/tmp/testlog/TestCRuntime.xml index a5a4ad3d9..a5a4ad3d9 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/tmp/testlog/TestCRuntime.xml +++ b/tests/org.eclipse.etrice.generator.c.tests/tmp/testlog/TestCRuntime.xml diff --git a/examples/org.eclipse.etrice.generator.c.reference/tmp/testlog/TestEtUnitSpecial.xml b/tests/org.eclipse.etrice.generator.c.tests/tmp/testlog/TestEtUnitSpecial.xml index f319d0648..f319d0648 100644 --- a/examples/org.eclipse.etrice.generator.c.reference/tmp/testlog/TestEtUnitSpecial.xml +++ b/tests/org.eclipse.etrice.generator.c.tests/tmp/testlog/TestEtUnitSpecial.xml |