<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_232) on Mon Feb 03 14:26:20 CET 2020 -->
<title>DeploymentUtil</title>
<meta name="date" content="2020-02-03">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
</head>
<body>
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
<h2 title="Class DeploymentUtil" class="title">Class DeploymentUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>Object</li>
<li>
<ul class="inheritance">
<li>DeploymentUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">DeploymentUtil</span>
extends Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="#DeploymentUtil--">DeploymentUtil</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static Set&lt;ProcessingUnit&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getAssignedCoreForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Amalthea-">getAssignedCoreForProcess</a></span>(Process&nbsp;process,
                         Amalthea&nbsp;model)</code>
<div class="block">Returns the cores the process is assigned to.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>List&lt;HwFeatureCategory&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getFeatureCategories-org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition-">getFeatureCategories</a></span>(ProcessingUnitDefinition&nbsp;procUnitDef)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static Set&lt;ISR&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getISRsMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">getISRsMappedToCore</a></span>(ProcessingUnit&nbsp;core,
                   Amalthea&nbsp;model)</code>
<div class="block">Returns a set of all ISR mapped to that core</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static Set&lt;Memory&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelMapping-org.eclipse.app4mc.amalthea.model.Label-">getLabelMapping</a></span>(Label&nbsp;label)</code>
<div class="block">Set of memories the label is mapped to (should be only one!)</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static Set&lt;Process&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessesMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">getProcessesMappedToCore</a></span>(ProcessingUnit&nbsp;core,
                        Amalthea&nbsp;model)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>List&lt;ProcessingUnitDefinition&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessingUnitDefinitionsForHwCategories-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-java.util.List-">getProcessingUnitDefinitionsForHwCategories</a></span>(HwFeatureCategory&nbsp;hwFeatureCat,
                                           List&lt;ProcessingUnitDefinition&gt;&nbsp;procUnitDefinitons)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>List&lt;ProcessingUnitDefinition&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessingUnitDefinitionsForHwFeature-org.eclipse.app4mc.amalthea.model.HwFeature-java.util.List-">getProcessingUnitDefinitionsForHwFeature</a></span>(HwFeature&nbsp;feature,
                                        List&lt;ProcessingUnitDefinition&gt;&nbsp;procUnitDefinitons)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static List&lt;TaskAllocation&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getTaskAllocations-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.app4mc.amalthea.model.Amalthea-">getTaskAllocations</a></span>(Task&nbsp;task,
                  Amalthea&nbsp;model)</code>
<div class="block">Returns a list of all allocations of a task</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static Set&lt;Task&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getTasksMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">getTasksMappedToCore</a></span>(ProcessingUnit&nbsp;core,
                    Amalthea&nbsp;model)</code>
<div class="block">Returns a set of tasks mapped to a core.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#isMapped-org.eclipse.app4mc.amalthea.model.Label-">isMapped</a></span>(Label&nbsp;label)</code>
<div class="block">Returns true if at least a label mapping exists</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static MemoryMapping</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#setLabelMapping-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Memory-org.eclipse.app4mc.amalthea.model.Amalthea-">setLabelMapping</a></span>(Label&nbsp;label,
               Memory&nbsp;mem,
               Amalthea&nbsp;model)</code>
<div class="block">Returns a created LabelMapping element which was already added to the model</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="DeploymentUtil--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DeploymentUtil</h4>
<pre>public&nbsp;DeploymentUtil()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getProcessesMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessesMappedToCore</h4>
<pre>public static&nbsp;Set&lt;Process&gt;&nbsp;getProcessesMappedToCore(ProcessingUnit&nbsp;core,
                                                    Amalthea&nbsp;model)</pre>
</li>
</ul>
<a name="getTasksMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTasksMappedToCore</h4>
<pre>public static&nbsp;Set&lt;Task&gt;&nbsp;getTasksMappedToCore(ProcessingUnit&nbsp;core,
                                             Amalthea&nbsp;model)</pre>
<div class="block">Returns a set of tasks mapped to a core. Depends on responsibilities of
 schedulers and the task allocated to them Assumption: Scheduler
 responsibilities are set empty core affinities are ignored otherwise the
 intersection of core affinity and scheduler responsibility is returned</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of tasks</dd>
</dl>
</li>
</ul>
<a name="getISRsMappedToCore-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getISRsMappedToCore</h4>
<pre>public static&nbsp;Set&lt;ISR&gt;&nbsp;getISRsMappedToCore(ProcessingUnit&nbsp;core,
                                           Amalthea&nbsp;model)</pre>
<div class="block">Returns a set of all ISR mapped to that core</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of interrupt service routines (ISR)</dd>
</dl>
</li>
</ul>
<a name="getTaskAllocations-org.eclipse.app4mc.amalthea.model.Task-org.eclipse.app4mc.amalthea.model.Amalthea-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTaskAllocations</h4>
<pre>public static&nbsp;List&lt;TaskAllocation&gt;&nbsp;getTaskAllocations(Task&nbsp;task,
                                                      Amalthea&nbsp;model)</pre>
<div class="block">Returns a list of all allocations of a task</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of task allocations</dd>
</dl>
</li>
</ul>
<a name="isMapped-org.eclipse.app4mc.amalthea.model.Label-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMapped</h4>
<pre>public static&nbsp;boolean&nbsp;isMapped(Label&nbsp;label)</pre>
<div class="block">Returns true if at least a label mapping exists</div>
</li>
</ul>
<a name="getLabelMapping-org.eclipse.app4mc.amalthea.model.Label-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelMapping</h4>
<pre>public static&nbsp;Set&lt;Memory&gt;&nbsp;getLabelMapping(Label&nbsp;label)</pre>
<div class="block">Set of memories the label is mapped to (should be only one!)</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Memories</dd>
</dl>
</li>
</ul>
<a name="setLabelMapping-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Memory-org.eclipse.app4mc.amalthea.model.Amalthea-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLabelMapping</h4>
<pre>public static&nbsp;MemoryMapping&nbsp;setLabelMapping(Label&nbsp;label,
                                            Memory&nbsp;mem,
                                            Amalthea&nbsp;model)</pre>
<div class="block">Returns a created LabelMapping element which was already added to the model</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>MemoryMapping</dd>
</dl>
</li>
</ul>
<a name="getAssignedCoreForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Amalthea-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAssignedCoreForProcess</h4>
<pre>public static&nbsp;Set&lt;ProcessingUnit&gt;&nbsp;getAssignedCoreForProcess(Process&nbsp;process,
                                                            Amalthea&nbsp;model)</pre>
<div class="block">Returns the cores the process is assigned to. Empty core affinities are
 ignored, otherwise the intersection of core affinity and scheduler
 responsibility is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - Task or ISR</dd>
<dd><code>model</code> - the containing model</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of cores</dd>
</dl>
</li>
</ul>
<a name="getFeatureCategories-org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFeatureCategories</h4>
<pre>public&nbsp;List&lt;HwFeatureCategory&gt;&nbsp;getFeatureCategories(ProcessingUnitDefinition&nbsp;procUnitDef)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>procUnitDef</code> - processing unit definition</dd>
</dl>
</li>
</ul>
<a name="getProcessingUnitDefinitionsForHwCategories-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessingUnitDefinitionsForHwCategories</h4>
<pre>public&nbsp;List&lt;ProcessingUnitDefinition&gt;&nbsp;getProcessingUnitDefinitionsForHwCategories(HwFeatureCategory&nbsp;hwFeatureCat,
                                                                                  List&lt;ProcessingUnitDefinition&gt;&nbsp;procUnitDefinitons)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>hwFeatureCat</code> - selection criteria</dd>
<dd><code>procUnitDefinitons</code> - list of potential definitions</dd>
</dl>
</li>
</ul>
<a name="getProcessingUnitDefinitionsForHwFeature-org.eclipse.app4mc.amalthea.model.HwFeature-java.util.List-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getProcessingUnitDefinitionsForHwFeature</h4>
<pre>public&nbsp;List&lt;ProcessingUnitDefinition&gt;&nbsp;getProcessingUnitDefinitionsForHwFeature(HwFeature&nbsp;feature,
                                                                               List&lt;ProcessingUnitDefinition&gt;&nbsp;procUnitDefinitons)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>feature</code> - selection criteria</dd>
<dd><code>procUnitDefinitons</code> - list of potential definitions</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</body>
</html>
