|
|
|
|
@ -74737,9 +74737,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
<node CREATED="1685987531259" ID="ID_1014305317" MODIFIED="1685988022566" TEXT="minimal halten! für Tests ist die ExitNode scheißegal">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
ich gehe davon aus, daß praktisch alle Tests, die dieses Mock-Framework verwenden, lediglich prüfen daß eine gewisse Connection durchgereicht wurde
|
|
|
|
|
@ -74808,9 +74806,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686264912495" ID="ID_1612660724" MODIFIED="1686270571978" TEXT="NEIN! das wird irre komplex mit den lokalen Scopes">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
ich will für den ganzen Mock-Support eine Lösung, die „einfach funktioniert“ — sofern man mit einer Instanz von MockSegmentation bzw. MockDispatcher arbeitet (und sonst nichts beeinflußt)
|
|
|
|
|
@ -74827,9 +74823,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1686265038081" ID="ID_889617435" MODIFIED="1686270657046" TEXT="(optional) explizit einen JobFunctor-Pointer in die ExitNode legen">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
...denn das entspricht noch am Meisten dem später mal erwarteten Ablauf
|
|
|
|
|
@ -74859,9 +74853,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="broken-line"/>
|
|
|
|
|
<node CREATED="1686526201442" ID="ID_1473295586" MODIFIED="1686526249802" TEXT="Bei Traversierung werden weniger Nodes gefunden als erwartet">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
<font face="Monospaced" color="#ae2828">FAIL___expectation___________ </font>
|
|
|
|
|
@ -74938,9 +74930,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1686532570287" ID="ID_1247471780" MODIFIED="1686532586636" TEXT="aktuelle Impl gibt back() zurück">
|
|
|
|
|
<node CREATED="1686532587893" ID="ID_270597249" MODIFIED="1686532627829" TEXT="das ist tatsächlich fehlerhaft programmiert">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
...ursprünglich hatte ich nämlich per emplace_back() alloziert....
|
|
|
|
|
@ -74954,9 +74944,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686536440412" ID="ID_516930810" MODIFIED="1686536567177" TEXT="das erklärt auch das beobachtete Fehlverhalten">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
an der Stelle, wo die Referenz auf Objekt-33 zurückgeliefert werden sollte, kommt tatsächlich eine Referenz auf das zuletzt rekursiv erzeugte Objekt-44  zurück, und wird daher in die Liste der Prerequisites eingefügt.
|
|
|
|
|
@ -74978,9 +74966,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
<node COLOR="#338800" CREATED="1686536684920" ID="ID_352953262" MODIFIED="1686581050434" TEXT="Holder-Buffer direkt selber implementieren">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
um den Lifecycle komplett kontrollieren zu können
|
|
|
|
|
@ -75033,9 +75019,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1685989471022" ID="ID_1045668645" MODIFIED="1686524466583" TEXT="erst einmal genügt es, daß jedes gemockte Segment da einen Eintrag hat">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
...auf <i>irgend ein</i> Objekt...
|
|
|
|
|
@ -75049,9 +75033,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#435e98" CREATED="1686524492032" ID="ID_1332592177" MODIFIED="1686524561638" TEXT="ExitNode kann vorläufig einfach so konstruiert werden">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
...da aktuell noch keine Verbindung zum Render-Nodes-Network besteht...
|
|
|
|
|
@ -75124,9 +75106,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#435e98" CREATED="1686089592469" ID="ID_1688607797" MODIFIED="1686270559655" TEXT="Storage muß stabil + erweiterungsfähig sein">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
und das heißt im Klartext: <font face="Monospaced" color="#262a9c">std::deque</font> — später kombiniert mit einem custom-Allocator, der auf den AllocationCluster delegiert
|
|
|
|
|
@ -75183,9 +75163,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1686436197019" ID="ID_1405705756" MODIFIED="1686436217710" TEXT="spezifisch ≡ kann nur JobTicket-Instanzen allozieren"/>
|
|
|
|
|
<node CREATED="1686436296914" ID="ID_1997952244" MODIFIED="1686436346538">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
aktuell wäre spezifisch besser —
|
|
|
|
|
@ -75214,9 +75192,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node CREATED="1686439686598" ID="ID_1468838708" MODIFIED="1686440085274">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
<b>Beschluß</b>: Allo ≡ Funktor mit variadischen Argumenten
|
|
|
|
|
@ -75249,9 +75225,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686449851892" ID="ID_96252432" MODIFIED="1686450255979" TEXT="der Allocator muß re-Entrance-fähig sein">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
exakt dieses Problem hatte ich schon vor einigen Wochen, bei der ersten (damals Mock)-Implementierung: da die Prerequisites private sind, gibt es keine andere Lösung als sie aus dem übergeordneten ctor heraus zu konstruieren, und damit re-entrant aus dem JobTicket-ctor ein weiteres JobTicket zu allozieren. Vector und Deque können das nicht hanhaben, und es kommt zu einem gefährlichen Aliasing, bei dem das geschachtelte Ticket an der gleichen Stelle im Speicher steht wie das Haupt-Ticket, und damit dessen ctor-Aufruf korrumpiert
|
|
|
|
|
@ -75301,9 +75275,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#e0b7aa" COLOR="#690f14" CREATED="1686270985068" ID="ID_116441332" MODIFIED="1686271310159" STYLE="fork" TEXT="unmöglich: rekursive Typ-Inferenz">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
damit sitz ich in der Falle...
|
|
|
|
|
@ -75361,9 +75333,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
<node COLOR="#435e98" CREATED="1686090919949" HGAP="27" ID="ID_929102409" MODIFIED="1686450462296" VSHIFT="10">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
bisherige Mock-Lösung<br />nun darauf aufsetzen
|
|
|
|
|
@ -75371,9 +75341,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</body>
|
|
|
|
|
</html></richcontent>
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
nach dem <i>ersten Schreck</i> <font size="1" color="#70005e">(weil ich es doch grade erst neu programmiert hatte...)</font> zeigt sich, daß die bisherige Mock-Implementierung bereits sehr gut ist, und strukturell direkt in die endgültige Implementierung übersetzt werden kann; wir machen dann lediglich zweimal eine strukturgleiche rekursive Verarbeitung (GenNode ⟼ ExitNode-Struktur sowie dann ExitNode-Struktur ⟼ JobTicket)
|
|
|
|
|
@ -75385,9 +75353,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1686498590686" ID="ID_383464116" MODIFIED="1686520395591" TEXT="Rückbau Differenzierung nach Channel">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
ursprünglich dachte ich, im Ticket würde intern noch nach einer Channel-ID (für Mehrkanal-Medien) differenziert; die Analyse im Detail ergab jedoch, daß dies stets unter dem Konstrukt »ModelPort« subsummiert werden kann — viele interne Komplexitäten fallen damit weg
|
|
|
|
|
@ -75424,9 +75390,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1686361493991" ID="ID_423058577" MODIFIED="1686361526825" TEXT="tritt nicht bei jedem Lauf auf ⟹ vermutlich dangling pointer"/>
|
|
|
|
|
<node CREATED="1686361820600" ID="ID_780766515" MODIFIED="1686361835540">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
Testfall: <b>retrieve_JobTicket</b>
|
|
|
|
|
@ -75442,9 +75406,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686361606310" ID="ID_288594511" MODIFIED="1686361716351" TEXT="requirements_ Linked-List is corruped">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
head_ steam::engine::JobTicket::Provision * 0x2525252525252525
|
|
|
|
|
@ -75465,9 +75427,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="broken-line"/>
|
|
|
|
|
<node CREATED="1686364436691" ID="ID_462388515" MODIFIED="1686364452584">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
<font face="Monospaced">provision.requirements.emplace(</font><font face="Monospaced" color="#e61919">preNode</font><font face="Monospaced">)</font>
|
|
|
|
|
@ -75478,9 +75438,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1686364460397" ID="ID_956048441" MODIFIED="1686364472840" TEXT="das alloziert eine struct Prerequisite"/>
|
|
|
|
|
<node CREATED="1686364475066" ID="ID_353638422" MODIFIED="1686364538445">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
und die nimmt im ctor ein <font face="Monospaced" color="#ef331d"><b>JobTicket const&</b></font>
|
|
|
|
|
@ -75519,9 +75477,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1686604218914" ID="ID_1822598563" MODIFIED="1686617174630" TEXT="besser direkt im Dispatcher implementieren">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
...denn das ist nicht wirklich ein Belang der Segmentation (diese arbeitet stets mit den Model-Port-Indices), sondern hat ehr mit dem globalen Mapping auf eine Timeline zu tun — also etwas, was  irgendwo in der RenderEnvironmentClosure verborgen liegt, denn wir wollen <i>definitiv nicht ein globales »Timelines«-Array durch die Hintertür einführen.</i>  Das High-Level-Model ist auf oberster Ebene ein Wald, und nicht eine einzige kohärente Struktur
|
|
|
|
|
@ -75538,9 +75494,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1686590017562" ID="ID_1378616081" MODIFIED="1686590067746">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
neue Dispatcher-Operation: <font face="Monospaced"><b>size_t resolveModelPort(ModelPort)</b></font>
|
|
|
|
|
@ -75581,9 +75535,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="idea"/>
|
|
|
|
|
<node CREATED="1685803432791" ID="ID_612766289" MODIFIED="1685803491700" TEXT="das heißt: die Verklammerung macht der Expander selber">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
...denn dieser hat natürlicherweise beide Elemente in der Hand...
|
|
|
|
|
@ -75610,9 +75562,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1685840479768" ID="ID_1500115702" MODIFIED="1685840492596" TEXT="macht das Dependency-Schema formal einfach"/>
|
|
|
|
|
<node CREATED="1685840517829" ID="ID_255096122" MODIFIED="1685840750650" TEXT="löst das Problem mit dem »beweglichen Teil« des JobFunctors">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
Eigentlich könnte das JobTicket für ein ganzes Segment konstant sein, ggfs noch aufdifferenziert nach ModelPort — der eigentliche JobFunctor (im Ticket) wäre vom Prinzip her in jedem Fall konstant und damit nur einmal alloziert. Aber jeder separate CalcStream braucht die Daten in einem anderen Ausgabe-Puffer, gegeben durch das DataSink-Handle.
|
|
|
|
|
@ -75624,9 +75574,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1685840443054" ID="ID_1482139155" MODIFIED="1685840444010" TEXT="con">
|
|
|
|
|
<node CREATED="1685840753973" ID="ID_1826791596" MODIFIED="1685840872613" TEXT="eigentlich war die Idee, daß der top-level-Job direkt in den Ausgabepuffer rendert">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>
|
|
|
|
|
@ -75701,9 +75649,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1686705365836" ID="ID_138010755" MODIFIED="1686757687312" TEXT="Visualisierung für das jeweils aktuelle JobTicket">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
also stets das 2.Element im Tupel. Bin nämlich zu faul, hier auch noch das Tupel irgendwie zu rendern. Das mach ich dann im nächsten Testfall...
|
|
|
|
|
@ -75718,9 +75664,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="broken-line"/>
|
|
|
|
|
<node CREATED="1686708460080" ID="ID_990579031" MODIFIED="1686708540153">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
<font color="#801111" face="Monospaced" size="2">FAIL___expectation___________ </font>
|
|
|
|
|
@ -75790,9 +75734,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1685058150242" ID="ID_1251514808" MODIFIED="1685058160434" TEXT="ein Feed kann mehrere CalcStreams haben (vector)"/>
|
|
|
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685058172991" ID="ID_1595485074" MODIFIED="1685062339730" TEXT="RenderDrive is non-Copyable ⟹ muß irgendwo abgefangen werden">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>
|
|
|
|
|
@ -75882,9 +75824,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="button_cancel"/>
|
|
|
|
|
<node CREATED="1685401954481" ID="ID_807804418" MODIFIED="1685402029862">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
bisher: <font face="Monospaced" size="2" color="#7b2b47">FrameCnt</font><font face="Monospaced" size="2"> </font><font face="Monospaced" size="2" color="#cc2727">getNextAnchorPoint()</font>
|
|
|
|
|
@ -75928,9 +75868,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="flag-yellow"/>
|
|
|
|
|
<node CREATED="1685058050639" ID="ID_143173446" MODIFIED="1685058108822" TEXT="Sink ist ein Handle (ref-counting)">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
lib::Handle<OutputSlot::Connection>
|
|
|
|
|
@ -75940,9 +75878,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685062340977" ID="ID_1162744930" MODIFIED="1685062405034" TEXT="diese Info gehört in den JobFunktor">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
denn die Inovcation muß in diese Sink rendern
|
|
|
|
|
@ -75955,9 +75891,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1684984896696" FOLDED="true" HGAP="36" ID="ID_727075583" MODIFIED="1687228182161" VSHIFT="3">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
Verhältnis von JobPlanning
|
|
|
|
|
@ -76038,9 +75972,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#435e98" CREATED="1686874081293" ID="ID_1358950308" MODIFIED="1686964328409" TEXT="Zugriff sollte aber über das JobTicket-API geführt werden">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
und zwar wegen <i>Separation of Concerns</i>   —  der JobFunctor ist kein Informations-Service (genau dafür haben wir ja das JobTicket geschaffen)
|
|
|
|
|
@ -76090,9 +76022,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686965001287" ID="ID_1948616906" MODIFIED="1687137549677">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
<u>Problem</u> : habe nur <b>JobTicket</b> des <i>unmittelbaren</i>  Vorgängers
|
|
|
|
|
@ -76120,9 +76050,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1687039436665" ID="ID_510256966" MODIFIED="1687039436665" TEXT="muß für Job-Planning-Berechnung zugänglich sein"/>
|
|
|
|
|
<node CREATED="1687039484904" ID="ID_846229350" MODIFIED="1687039649451" TEXT="muß aber in der Expander-Funktion bereits vorliegen">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
weil das die einzige Stelle ist in der zugleich Dependent und Dependency zugänglich sind
|
|
|
|
|
@ -76141,9 +76069,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
|
|
|
<node CREATED="1687042313601" ID="ID_891484053" MODIFIED="1687042479747" TEXT="redundante Storage für die JobTIcket* fällt weg">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
da im JobPlanning nochmal eine JobTicket& liegt, sind die zwei bisher im darunter liegenden Tupel gespeicherten JobTicket* eigentlich redundant und werden nur für die Explorer-Mechanik gebraucht
|
|
|
|
|
@ -76153,9 +76079,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1687042241003" ID="ID_513934853" MODIFIED="1687042834774" TEXT="erheblicher Speicher-Mehrverbrauch im Explorer">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
weil nun auf jeder Ebene im Explorer-Stack eine JobPlanning-Instanz liegt, und zwar dort im ItemWrapper für den jeweiligen TransformIterator (der die Explorer-Funktion implementiert)
|
|
|
|
|
@ -76169,9 +76093,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#5b280f" CREATED="1687042939750" ID="ID_573111234" MODIFIED="1687184137904" TEXT="läßt sich abmildern ⟹ FrameCoord per Referenz nehmen">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
....und das gilt aber auch für die einzelnen Felder darin, nachdem nun <b>FrameCoord als Konzept aufgegeben</b> wurden: es sind nun zwei Referenzen statt einer, aber ich erwarte, daß alle diese Referenzen vom Optimiser erkannt und ausgelassen werden...
|
|
|
|
|
@ -76181,9 +76103,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node CREATED="1687043326502" ID="ID_1349100996" MODIFIED="1687043610100" TEXT="nach Ausschöpfen der Optimierung gar nicht mehr so schlimm">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
Wenn man die Daten entsprechend reorganisiert und dadurch die Redundanzen in der Pipeline minimiert kann der Optimiser viel machen, da (private) Referenzen überhaupt nicht repräsentiert werden müssen, sofern die referenzierte Quelle (wie hier) stabil im gleichen Objekt liegt. Wenn ich richtig schätze, habe ich mit dem Umbau nur einen »slot« mehr Speicher verbraucht (weil drei redundante »slots« wegfallen können)
|
|
|
|
|
@ -76202,9 +76122,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
<node COLOR="#338800" CREATED="1687043695271" ID="ID_497206730" MODIFIED="1687137643989" TEXT="JobTicket-parent-Pointer in JobPlanning-parent verwandeln" VSHIFT="10">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
<b><font color="#f32157">AUA</font></b>: dieser parent-Pointer war bisher sogar eine <i>dangling reference </i>— er zeigte nämlich auf einen Pointer im Stack-Frame des λ-Aufrufs, der aber gar nicht mehr existiert, wenn man den Transform-Iterator auswertet. Soschnellkannsgehen
|
|
|
|
|
@ -76215,9 +76133,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#5b280f" CREATED="1687043645122" ID="ID_1471106329" MODIFIED="1687131535956" TEXT="FrameCoord müssen bereits in den TickGenerator">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
...denn sonst müßte ich sie in eine λ-Closure binden, was aber für zwei der drei Felder redundate Storage wäre; es macht auch sonst Sinn, wenn der Tick-Generator eben auf den FrameCoord arbeitet
|
|
|
|
|
@ -76231,9 +76147,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node CREATED="1687047139677" ID="ID_1123653637" MODIFIED="1687047160987" TEXT="es bläht den TickGenerator auf und macht ihn asymetrisch"/>
|
|
|
|
|
<node COLOR="#4a4398" CREATED="1687047169092" ID="ID_1819824079" MODIFIED="1687137416207">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
dann müssen die FrameCoord jetzt <b>sterben</b>
|
|
|
|
|
@ -76252,9 +76166,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
<node CREATED="1687047618686" ID="ID_1365656833" MODIFIED="1687047628283">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
verwendet nur absoluteNominalTime
|
|
|
|
|
@ -76285,9 +76197,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
<node CREATED="1687047995665" ID="ID_1960158539" MODIFIED="1687048015259">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
das ist die <i>einzige Verwendung</i> von zwei Feldern
|
|
|
|
|
@ -76300,9 +76210,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="info"/>
|
|
|
|
|
<node CREATED="1687048232475" ID="ID_564390430" MODIFIED="1687048406468" TEXT="PipelineBuilder::pullFrom()">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
Das ist <i>genau der Grund warum sie jetzt zum Problem</i> werden: diese Funktion erzeugt FrameCoord, die irgendwo leben müssen, und das bloß, um den einen Aufruf zu machen. Das <b>bestätigt die Enscheidung</b>, sie zurückzubauen
|
|
|
|
|
@ -76366,9 +76274,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="smiley-angry"/>
|
|
|
|
|
<node CREATED="1687131919997" ID="ID_830496483" MODIFIED="1687132086162">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
leider ist das ziemlich <i>abschüssiges Gelände</i>
|
|
|
|
|
@ -76376,9 +76282,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</body>
|
|
|
|
|
</html></richcontent>
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
....per SFINAE feststellen, daß ein Asignment-Operator unterdrückt wurde; lt. Standard sollte das gehen (das war eine späte Änderung zu C++11, da es in der Stdlib so viel Probleme gemacht hat) — aber in der Praxis weiß ich, daß das fragil ist, manchmal Fehler auslösen kann (statt SFINAE), und daß es Diskrepanzen zwischen den Compilern gibt. Ich hatte auch schon Fälle, wo std::is_assignable rundweg versagt hat....
|
|
|
|
|
@ -76388,9 +76292,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node CREATED="1687133791082" ID="ID_76046380" MODIFIED="1687134081357">
|
|
|
|
|
<richcontent TYPE="NODE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
also käme erst mal nur in Frage, dort stets die alte Payload
|
|
|
|
|
@ -76404,9 +76306,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</body>
|
|
|
|
|
</html></richcontent>
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
Der typische use-case, für den dieser ItemWrapper geschaffen wurde, ist, ein beliebiges Lambda auszuwerten, und das Resultat dann im Puffer vorzuhalten; speziell wenn das Lambda ein neues Objekt konstruiert und per Value zurückgibt, sorgt die RVO dafür, daß dieses Objekt dann (per copy elision) sofort im Puffer im ItemWrapper konstruiert wird — in der Praxis ist das der häufigste use-case und tritt im Besonderen in einem Transform-Iterator auf. Wenn andererseits die Payload ein POD oder einfacher Wert ist, dann sind Destruktor und Konstruktor ohnehin trivial...
|
|
|
|
|
@ -76459,9 +76359,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1687044201408" ID="ID_1507798641" MODIFIED="1687188666784" TEXT="die Deadline sollte man als Wert speichern (caching)">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
...denn sonst würde es genau zu rekursiven kaskadierenden (quadratisch aufwendigen) Aufrufen der Deadline-Berechnungs-Logik kommen; um das Caching zu steuern, kann ich einen Marker-Wert Time::NEVER verwenden
|
|
|
|
|
@ -76477,9 +76375,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node CREATED="1687188700992" HGAP="30" ID="ID_1176783672" MODIFIED="1687188838995" TEXT="die ersten paar sind billig, und die Kosten sind nicht klar" VSHIFT="2">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head>
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
<p>
|
|
|
|
|
Ich kann mir nicht vorstellen, daß die große Mehrheit der Jobs mehr als eine Prerequisite bekommt...  der Aufwand ist n/2 * (n+1), das bringt uns erst mal solange nicht um (bis es uns nachweislich umbringt...)
|
|
|
|
|
@ -78267,8 +78163,12 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</node>
|
|
|
|
|
<node CREATED="1693178495964" ID="ID_807456413" MODIFIED="1693178500231" TEXT="Struktur-Bausteine">
|
|
|
|
|
<node CREATED="1693178501472" ID="ID_1503655415" MODIFIED="1693178503142" TEXT="stets">
|
|
|
|
|
<node CREATED="1693178507426" ID="ID_391129339" MODIFIED="1693178509638" TEXT="Post"/>
|
|
|
|
|
<node CREATED="1693178510554" ID="ID_530087254" MODIFIED="1693178514253" TEXT="Invoke + Feed"/>
|
|
|
|
|
<node COLOR="#338800" CREATED="1693178507426" ID="ID_391129339" MODIFIED="1693275201840" TEXT="Post">
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1693178510554" ID="ID_530087254" MODIFIED="1693275201840" TEXT="Invoke + Feed">
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
</node>
|
|
|
|
|
</node>
|
|
|
|
|
<node CREATED="1693178622450" ID="ID_702953156" MODIFIED="1693178792128" TEXT="fallbezogen">
|
|
|
|
|
<node CREATED="1693178646683" ID="ID_1322750884" MODIFIED="1693178660593" TEXT="Klammer Workstart|stop"/>
|
|
|
|
|
@ -80372,8 +80272,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1689200547247" ID="ID_1506436785" MODIFIED="1693269217510" TEXT="termBuilder">
|
|
|
|
|
<arrowlink COLOR="#4e4671" DESTINATION="ID_469443507" ENDARROW="Default" ENDINCLINATION="-463;535;" ID="Arrow_ID_1203697100" STARTARROW="None" STARTINCLINATION="-890;-116;"/>
|
|
|
|
|
<icon BUILTIN="pencil"/>
|
|
|
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693269179507" ID="ID_286775090" MODIFIED="1693269215395" TEXT="einfachst möglichen activity::Term konstruieren">
|
|
|
|
|
<icon BUILTIN="flag-yellow"/>
|
|
|
|
|
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1693269179507" ID="ID_286775090" LINK="#ID_1334461256" MODIFIED="1693275234891" TEXT="einfachst möglichen activity::Term konstruieren">
|
|
|
|
|
<icon BUILTIN="pencil"/>
|
|
|
|
|
<node COLOR="#338800" CREATED="1693269232884" ID="ID_1940626454" MODIFIED="1693269393485" TEXT="ActivityDetector stellt auch Dummy-Job bereit">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head/>
|
|
|
|
|
@ -80390,17 +80290,25 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
</richcontent>
|
|
|
|
|
</html></richcontent>
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1693275128994" ID="ID_901919286" MODIFIED="1693275153343" TEXT="Invocation-Parameter aus Job ⟼ INVOKE-Activity">
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
</node>
|
|
|
|
|
<node COLOR="#338800" CREATED="1693275156129" ID="ID_1778878124" MODIFIED="1693275162493" TEXT="POST-Activity anlegen">
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
</node>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693269199928" ID="ID_185134867" MODIFIED="1693269214903" TEXT="minimale Ausstattung verifizieren">
|
|
|
|
|
<icon BUILTIN="flag-yellow"/>
|
|
|
|
|
<node COLOR="#338800" CREATED="1693275251993" ID="ID_101711182" MODIFIED="1693275264459" TEXT="Ankerpunkt ist eine POST-Activity">
|
|
|
|
|
<icon BUILTIN="button_ok"/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693269490081" ID="ID_815043128" MODIFIED="1693269501096" TEXT="POST hat das Timing-Window übernommen">
|
|
|
|
|
<icon BUILTIN="flag-yellow"/>
|
|
|
|
|
</node>
|
|
|
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693269535563" ID="ID_1083096028" MODIFIED="1693269624962" TEXT="Activities sind verlinkt">
|
|
|
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693269535563" ID="ID_1083096028" MODIFIED="1693275264466" TEXT="Activities sind verlinkt">
|
|
|
|
|
<richcontent TYPE="NOTE"><html>
|
|
|
|
|
<head/>
|
|
|
|
|
<body>
|
|
|
|
|
|