Invocation: usage analysis for prototype
...after having determined the several levels of prototyping currently employed, an important step ahead could be achieved by analysing the intended and implied usage context of this builder scheme, while still assuming the simplifications related to prototyping. It can be assumed that * the Level-2 builder object is ''somehow provided'' * the invocation happens from within a media-handling lib-plugin * alongside with the desired `ProcAsset` spec, an `ExpectationContext` will be provided, allowing to pass-through additional semantic tags The implementation in the lib-plugin is then able to draw from specific knowledge related to the **Domain Ontology** for ''especially for this library'' and provide the necessary wrappers and parameter mapping information. ⟹ the **Level-2**-builder should thus expose an API to * set up a straight forward mapping, based on a given wrapper functor to delegate to the actual library invocation * allow optionally to override some of the input connections * alternatively allow to use a complete `InvocationAdapter`, including a `FeedManifold`, as provided directly by the library-plugin
This commit is contained in:
parent
bad6751aae
commit
5f0b8b8a81
3 changed files with 461 additions and 93 deletions
|
|
@ -204,17 +204,20 @@ namespace engine {
|
|||
, util::MoveOnly
|
||||
{
|
||||
public:
|
||||
|
||||
template<typename FUN>
|
||||
PortBuilder
|
||||
inSlots (uint s)
|
||||
invoke (FUN&& fun)
|
||||
{
|
||||
UNIMPLEMENTED ("define number of predecessor-source slots");
|
||||
UNIMPLEMENTED ("setup standard wiring to adapt the given processing function");
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
template<class ADA, typename...ARGS>
|
||||
PortBuilder
|
||||
outSlots (uint r)
|
||||
adaptInvocation(ARGS&& ...args)
|
||||
{
|
||||
UNIMPLEMENTED ("define number of result slots");
|
||||
UNIMPLEMENTED ("specify an `InvocationAdapter` to use explicitly");
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
|
|
@ -226,6 +229,49 @@ namespace engine {
|
|||
return move(*this);
|
||||
}
|
||||
|
||||
PortBuilder
|
||||
asResultSlot (uint r)
|
||||
{
|
||||
UNIMPLEMENTED ("define the output slot to use as result (default is the first one)");
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
PortBuilder
|
||||
connectLead (uint idx)
|
||||
{
|
||||
UNIMPLEMENTED ("connect the next input slot to existing lead-node given by index");
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
PortBuilder
|
||||
conectLead (ProcNode& leadNode)
|
||||
{
|
||||
UNIMPLEMENTED ("connect the next input slot to either existing or new lead-node");
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
PortBuilder
|
||||
connectLeadPort (uint idx, uint port)
|
||||
{
|
||||
UNIMPLEMENTED ("connect next input to lead-node, using a specific port-number");
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
PortBuilder
|
||||
connectLeadPort (ProcNode& leadNode, uint port)
|
||||
{
|
||||
UNIMPLEMENTED ("connect next input to existing or new lead-node, with given port-number");
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
PortBuilder
|
||||
useLeadPort (uint defaultPort)
|
||||
{
|
||||
UNIMPLEMENTED ("use given port-index as default for all following connections");
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
|
||||
/****************************************************//**
|
||||
* Terminal: complete the Port wiring and return to the node level.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -428,7 +428,7 @@ namespace engine {
|
|||
Feed
|
||||
mount()
|
||||
{
|
||||
return Feed{};
|
||||
return Feed{}; //////////////////////OOO cant work this way ... need to pass-in a processing functor for the ctor
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -6154,9 +6154,7 @@
|
|||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1493853548739" ID="ID_949985796" MODIFIED="1576282358137" TEXT="Project & Controller restlos entfernen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...wartet noch darauf,
|
||||
|
|
@ -6407,9 +6405,7 @@
|
|||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#a03232" CREATED="1485549049388" FOLDED="true" ID="ID_530209145" MODIFIED="1679087971773" TEXT="Problem: Aktionen binden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das ist ein gaaaanz großes Strategisches Thema; vor 2023 hatte ich schon mehrfach versucht, <i>es zu fassen</i> — <font color="#982e2e">das ist mir aber bisher nicht gelungen</font>, und deshalb wartet es.... ⌛
|
||||
|
|
@ -6423,9 +6419,7 @@
|
|||
<node CREATED="1485549810780" ID="ID_71301392" MODIFIED="1518487921060" TEXT="Pop-Ups brauchen ein Vater-Fenster"/>
|
||||
<node CREATED="1485549828450" ID="ID_1089795419" MODIFIED="1518487921060">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
eigentlich wollen wir <i>"das aktuelle"</i>
|
||||
|
|
@ -6662,9 +6656,7 @@
|
|||
<node CREATED="1488492373919" ID="ID_1898515568" MODIFIED="1518487921061" TEXT="snapshot-Kommando an Session senden"/>
|
||||
<node CREATED="1488494870418" ID="ID_1929432332" MODIFIED="1576282358133" TEXT="TODO: InvocationTrail">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Njet
|
||||
|
|
@ -6802,9 +6794,7 @@
|
|||
<node CREATED="1492461179404" ID="ID_1843144262" MODIFIED="1518487921062" TEXT="die neue Sequenz">
|
||||
<node CREATED="1492461186562" ID="ID_357158955" MODIFIED="1576282358131" TEXT="ID muß gesendet werden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
damit UNDO funktionieren kann,
|
||||
|
|
@ -7546,9 +7536,7 @@
|
|||
</node>
|
||||
<node CREATED="1507939927035" ID="ID_461225915" MODIFIED="1533608413581">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wer bestimmt,
|
||||
|
|
@ -8465,9 +8453,7 @@
|
|||
<node CREATED="1510427098600" ID="ID_576903384" MODIFIED="1510438602569" TEXT="Layering nicht Teil des Schemas"/>
|
||||
<node CREATED="1510427352926" ID="ID_805227666" MODIFIED="1510427370156">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Problem: Layer sind <i>verkoppelt</i>
|
||||
|
|
@ -9586,9 +9572,7 @@
|
|||
<node CREATED="1512439680078" ID="ID_795639412" MODIFIED="1512439682641" TEXT="geht nicht"/>
|
||||
<node CREATED="1512439683710" ID="ID_82602719" MODIFIED="1512439807833" TEXT="ohne VTable können wir niemals von Parent -> Subklasse aufrufen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...das heißt, es ist nicht möglich,
|
||||
|
|
@ -11497,9 +11481,7 @@
|
|||
<node CREATED="1513894301013" FOLDED="true" ID="ID_1705515857" MODIFIED="1525124214858" TEXT="aktuell">
|
||||
<node CREATED="1513893940206" ID="ID_1268073991" MODIFIED="1513893969869">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>bis jetzt</i> kommen wir ohne <b>Pos</b>-Abstraktion aus
|
||||
|
|
@ -14113,9 +14095,7 @@
|
|||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1518838316762" ID="ID_375483047" MODIFIED="1518838388905" TEXT="aus gutem Grund">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...denn durch overwrite kann man denormalisierte Pattern erzeugen.
|
||||
|
|
@ -18505,9 +18485,7 @@
|
|||
</node>
|
||||
<node CREATED="1654447915277" ID="ID_605454519" MODIFIED="1654448000114" TEXT="SPAN">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
repräsentiert einen benannten Zeit-Bereich:
|
||||
|
|
@ -18540,9 +18518,7 @@
|
|||
</node>
|
||||
<node CREATED="1654447921187" ID="ID_513954235" MODIFIED="1654448113829" TEXT="CONTENT">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Ein Mini-Container mit Placement, Name und einem Inhalts-Renderer
|
||||
|
|
@ -25878,9 +25854,7 @@
|
|||
<icon BUILTIN="smily_bad"/>
|
||||
<node CREATED="1611922870848" HGAP="39" ID="ID_755879883" MODIFIED="1611922978680" TEXT="naja...." VSHIFT="12">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...ich hab ja nicht umsonst in der theoretischen Analyse herausgefunden, daß dieses Schema auf ein Phasen-Modell hinausläuft; die Hoffnung wäre höchstens gewesen, daß in der Praxis der 3.Pass derart <i>degeneriert,</i>  daß man ihn in den 1.Pass einfalten kann
|
||||
|
|
@ -25919,9 +25893,7 @@
|
|||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1611959630868" ID="ID_268739743" MODIFIED="1611959702682" TEXT="Clip erscheint am oberen Rand des Track">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
berücksichtigt also nicht die Dekoration und das Padding... obwohl doch eigentlich der 2.Pass das Track-Profil aufgebaut haben sollte
|
||||
|
|
@ -25936,9 +25908,7 @@
|
|||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1612000371364" ID="ID_36603158" MODIFIED="1612000392460">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
der Test-Diff ist <i>ungeschickt geschrieben</i>
|
||||
|
|
@ -39453,9 +39423,7 @@
|
|||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1618676950908" ID="ID_69237451" MODIFIED="1618677116146" TEXT="hier deutet sich ein mehrstufiger Ansatz an">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Demnach wäre die Übersetzung von Pixel-Koordinaten in <i>irgend etwas modell-Releavantes</i> komplet in das Subject eingekapselt; der Gesten-Controller würde dann einen Screen-relativen Offset aggregieren. Aber auf der zweiten Stufe bleiben wir bei dem Ansatz, daß die Geste direkt das Modell manipuliert
|
||||
|
|
@ -39465,9 +39433,7 @@
|
|||
</node>
|
||||
<node CREATED="1618676975232" ID="ID_196334292" MODIFIED="1618677288680" TEXT="es erscheint vorläufig sinnvoll, dieser Richtung zu Folgen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...Auch wenn ich ein ungutes Bauchgefühl habe, alle Argumente sprechen im Moment dafür, diesem Hinweis zu folgen und das Design in dieser Richtung auszubauen. Im Besonderen würde nämlich ein konsequentes Umsetzen meines ursprünglichen Konzepts bedeuten, daß das Subject-Interface etwas von der Metrik im Modell, und im Besonderen von eine Zeit-Parameter wissen müßte ― es ist aber absehbar, daß in anderen Situationen gänzlich andere Parameter relevant sein könnten ... man denke bloß an die "Position im Fork"
|
||||
|
|
@ -39495,9 +39461,7 @@
|
|||
<node CREATED="1620922762073" ID="ID_878659189" MODIFIED="1620922781290" TEXT="vorläufige Dummy-Implementierung in TimelineLayout"/>
|
||||
<node CREATED="1620922782734" ID="ID_1695744984" MODIFIED="1620922815553">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
verwendet hart gedrahtete Konstante <font color="#b42e2e">TODO_px_per_second</font>
|
||||
|
|
@ -51431,9 +51395,7 @@
|
|||
<node CREATED="1613947688776" ID="ID_1133022481" MODIFIED="1613947709441" TEXT="2017 - 2/2021">
|
||||
<node CREATED="1613947717729" ID="ID_1840082890" MODIFIED="1613948142348" TEXT="es gibt eine Vision">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
|
|
@ -51454,9 +51416,7 @@
|
|||
</node>
|
||||
<node CREATED="1613947727636" ID="ID_729788594" MODIFIED="1613948283484" TEXT="ein elaboriertes Framework wurde geplant und wieder verworfen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
2017 habe ich zunächst versucht, die Analyse soweit zu treiben, daß sich daraus Strukturen ablesen lassen; die Intention war, darin die einfache Struktur eines direkt "point and shot" gegebenen Commands eingebettet zu finden. Dieses Bestreben mußte abgebrochen werden, da ich noch nicht genug über das konrete Interface weiß, um sachadäquat beurteilen zu können, was <i>notwendig ist.</i>
|
||||
|
|
@ -51466,9 +51426,7 @@
|
|||
</node>
|
||||
<node CREATED="1613947757959" ID="ID_1626123352" MODIFIED="1613948424917" TEXT="darauf aufbauend wurde der einfachste Fall bereits fertig implementiert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...stattdessen habe ich dann die schon bestehenden und definierten Teile zusammengebunden, um das direkte Absetzen von fest im Code vorgegebenen Commands zu ermöglichen. Diese gehen seither als einfache symbolische Nachrichten über den UI-Bus. Das gesamte Thema "Argument Binding" ist bereits abschließend behandelt (Marshalling via GenNode). Ebenso der asynchrone Dispatch, und die ebenso asynchron entkoppelte Rückmeldung ("push up") in das UI.
|
||||
|
|
@ -51478,9 +51436,7 @@
|
|||
</node>
|
||||
<node CREATED="1613947778476" ID="ID_1664459728" MODIFIED="1613948672376" TEXT="an der Grundidee wird festgehalten">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
2018-2019 habe ich eine dieser Vision entsprechende, offene und generische Grundstruktur des UI angelegt, und begonnen, konkret für die Timeline-Repräsentation auszuimplementieren. Auch dies ist grundsätzlich alles geregelt, wir können ein Custom-Stylesheet aufgreifen, wir können eigene Widgets mit custom-drawing realisieren, und trotzdem weitgehend auf das UI-Toolkitset mit allen seinen Zusatzfunktionen zurückgreifen. Nun (2/2021) bin ich wieder an dem Punkt, an dem die erste, einfachste »Geste« zu realisieren wäre: nämlich das Verschieben eines Clip in der Timeline. Und ich halte genau an der Einsicht fest, daß diese Interaktions-Logik nicht fest in ein Widget eingebaut werden darf.<br /><i><font color="#a33449">Da stehe ich, und mehr weiß ich noch nicht...</font></i>
|
||||
|
|
@ -51515,9 +51471,7 @@
|
|||
<icon BUILTIN="hourglass"/>
|
||||
<node CREATED="1518487921092" ID="ID_1694595239" MODIFIED="1613943616179" TEXT="vorläufig werden Commands von Hand definiert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Der Plan ist, einmal Command-Skripts (C++ basierte DSL-Notation) direkt vom Build-System verarbeiten zu lassen; der Build wird daraus passende C++-Translation-Units generieren und übersetzen. Tatsächlich ist all dies nicht besonders anspruchsvoll, denn die eigentliche Arbeit, die DSL-Notation ist bereits geschaffen. Trotzdem ist das Thema vorerst vertagt, weil zur praktischen Ausführung eine Menge zusätzlichem Wissen aus der Praxis notwendig ist, wie z.B. wie teilt man die Commands ein, wer definiert überhaupt Commands, und zu welchem Zweck. Beispielsweise ist es durchaus später einmal denkbar, daß auch eine Lumiera-Extension (Plug-in) zusätzliche Command-Scripts bereitstellt. Dann stellt sich natürlich auf das (ziemlich anspruchsvolle) Problem der Belegung von Command-IDs erneut.
|
||||
|
|
@ -71691,7 +71645,7 @@
|
|||
</node>
|
||||
<node CREATED="1720141000407" ID="ID_301474820" MODIFIED="1720141011879" TEXT="gesammelte Pläne und Skizzen">
|
||||
<node CREATED="1720141066223" ID="ID_1879448068" MODIFIED="1720141072690" TEXT="Schrittweiser Aufbau des Graphen"/>
|
||||
<node CREATED="1720141079653" ID="ID_973244167" MODIFIED="1720141084536" TEXT="Hilfsmittel">
|
||||
<node CREATED="1720141079653" ID="ID_973244167" MODIFIED="1728577268568" TEXT="Architektur-Kontext">
|
||||
<node CREATED="1720141090052" ID="ID_926335933" MODIFIED="1720141112386" TEXT="Domain-Ontology">
|
||||
<node CREATED="1720141118464" ID="ID_1346694117" MODIFIED="1720141131319" TEXT="tifft Detail-Entscheidungen"/>
|
||||
<node CREATED="1720141131811" ID="ID_1652703630" MODIFIED="1720141142065" TEXT="paßgenaue Parametrisierung"/>
|
||||
|
|
@ -71710,6 +71664,48 @@
|
|||
<node CREATED="1720141228066" ID="ID_1022058853" MODIFIED="1720141239963" TEXT="Argument: ein Level-2-Builder"/>
|
||||
<node CREATED="1720141241216" ID="ID_1290033100" MODIFIED="1720141311730" TEXT="Aufgabe: konfigurieren um korrekten Aufruf im Render-Node-Network zu ermöglichen"/>
|
||||
</node>
|
||||
<node CREATED="1728577294600" ID="ID_568567553" MODIFIED="1728577643784">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
weiteres Argument: <b>ExpectationContext</b>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#622245" DESTINATION="ID_1496504729" ENDARROW="Default" ENDINCLINATION="-784;-30;" ID="Arrow_ID_1228119456" STARTARROW="Default" STARTINCLINATION="-1608;1933;"/>
|
||||
<node CREATED="1728577689011" ID="ID_602929167" MODIFIED="1728577695335" TEXT="enthält das ProcAsset"/>
|
||||
<node CREATED="1728577696994" ID="ID_757396904" MODIFIED="1728577731655" TEXT="eine Liste zu erzeugender Stream-Types (per Port)"/>
|
||||
<node CREATED="1728577774818" ID="ID_495503111" MODIFIED="1728577893772" TEXT="weitere symbolische Attributierungen (Tags, Terme)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
essentiell wichtig diese <i>offen zu halten,</i> denn die direkten Aufrufer können diese nicht interpretieren, sondern reichen sie aus einem offen zu gestaltenden Model heraus durch; dort können Regeln gewirkt haben, die Attributierungen anbringen, welche dann wieder innerhalb der konkreten Domain-Ontology interpretierbar sind
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1728579114806" ID="ID_366571753" MODIFIED="1728579256226" TEXT="der Aufruf wird technisch sehr anspruchsvoll">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...da beide Seiten wohl einen konkreten Typ-Kontext haben, ist eine Art double-Dispatch notwendig....
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
der aufrufende Builder muß eine Policy mitgeben, in der der Allokator und weitere Dependency-Injection steckt
|
||||
</li>
|
||||
<li>
|
||||
der empfangende Library-Kontext muß dann aber auf dieser Basis selbst eine Template-Instanz machen, um seine konkreten Implementierungs-Buffer-Typen und Funktoren einzubringen
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -81340,8 +81336,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
build() generiert einen <font face="Monospaced" color="#272579">Connectivity</font>-Record <i>by-value</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1728434048508" ID="ID_1225662367" MODIFIED="1728434093984" TEXT="diesen ganzen Aufruf schiebt man in den ProcNode-Konstruktor"/>
|
||||
</node>
|
||||
|
|
@ -81365,15 +81360,32 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1720146287602" ID="ID_1218472857" MODIFIED="1720146293047" TEXT="preparePort()">
|
||||
<node CREATED="1720146294771" ID="ID_1809522763" MODIFIED="1720146303963" TEXT="nested Port builder"/>
|
||||
<node CREATED="1719971113760" ID="ID_1114865524" MODIFIED="1719971122094" TEXT="Slot-Anzahl">
|
||||
<node COLOR="#5b280f" CREATED="1719971113760" ID="ID_1114865524" MODIFIED="1728582108404" TEXT="Slot-Anzahl">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1719971123638" ID="ID_62698915" MODIFIED="1719972104567" TEXT="inSlots(s)"/>
|
||||
<node CREATED="1719971135344" ID="ID_800443773" MODIFIED="1719972017411" TEXT="outSlots(r)"/>
|
||||
<node COLOR="#5b280f" CREATED="1728582113475" ID="ID_1195057152" MODIFIED="1728582146145" TEXT="obsolet — per default nun 1:1 verdrahtet">
|
||||
<icon BUILTIN="closed"/>
|
||||
</node>
|
||||
<node CREATED="1719970368235" ID="ID_1051554068" MODIFIED="1719970374182" TEXT="Buffer definieren">
|
||||
</node>
|
||||
<node CREATED="1719970921342" ID="ID_520256497" MODIFIED="1728586526758" TEXT="invoke(fun)">
|
||||
<arrowlink COLOR="#4a43ba" DESTINATION="ID_1274882287" ENDARROW="Default" ENDINCLINATION="-987;-72;" ID="Arrow_ID_1839790581" STARTARROW="None" STARTINCLINATION="1230;281;"/>
|
||||
<node CREATED="1728587149140" ID="ID_931734758" MODIFIED="1728587166437" TEXT="bindet den Funktor für die eigentliche Render-Operation"/>
|
||||
<node CREATED="1728587167953" HGAP="69" ID="ID_581121579" MODIFIED="1728587192330" TEXT="richtet implizites default-Mapping ein" VSHIFT="-2"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1719970368235" ID="ID_1051554068" MODIFIED="1728586726004" TEXT="Buffer vorbereiten">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node CREATED="1719970886798" ID="ID_400236790" MODIFIED="1719970979999" TEXT="createBuffers<ILA>(args....)"/>
|
||||
<node CREATED="1719970921342" ID="ID_520256497" MODIFIED="1719970972558" TEXT="createBuffers(fun)"/>
|
||||
<node CREATED="1719970948270" ID="ID_1769935423" MODIFIED="1719970970119" TEXT="createInBuffers..."/>
|
||||
<node CREATED="1719970957989" ID="ID_1864258437" MODIFIED="1719970999711" TEXT="createOutBuffers...."/>
|
||||
<node CREATED="1719970948270" ID="ID_1769935423" MODIFIED="1728516052953" TEXT="provideInBuffers..."/>
|
||||
<node CREATED="1719970957989" ID="ID_1864258437" MODIFIED="1728516057144" TEXT="provideOutBuffers...."/>
|
||||
</node>
|
||||
<node CREATED="1728586883784" ID="ID_685317498" MODIFIED="1728586916322" TEXT="Verschaltung">
|
||||
<node CREATED="1728586940048" ID="ID_1188383224" MODIFIED="1728586960242" TEXT="asResultSlot(N)"/>
|
||||
<node CREATED="1728586999449" ID="ID_554391925" MODIFIED="1728587046027" TEXT="connectLead(i)"/>
|
||||
<node CREATED="1728586961755" ID="ID_1481641023" MODIFIED="1728586998668" TEXT="conectLead(ProcNode&)"/>
|
||||
<node CREATED="1728587027861" ID="ID_1629158644" MODIFIED="1728587042089" TEXT="connectLeadPort(i, p)"/>
|
||||
<node CREATED="1728587027861" ID="ID_1530575925" MODIFIED="1728587061668" TEXT="connectLeadPort(ProcNode&, p)"/>
|
||||
<node CREATED="1728587063136" ID="ID_26296441" MODIFIED="1728587070363" TEXT="useLeadPort(p)"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720146340213" ID="ID_1871545026" MODIFIED="1720230570516" TEXT="TODO: API für Mapping">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -81495,7 +81507,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<arrowlink COLOR="#cd0172" DESTINATION="ID_668512282" ENDARROW="Default" ENDINCLINATION="-522;-42;" ID="Arrow_ID_1453353099" STARTARROW="None" STARTINCLINATION="651;43;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
<node CREATED="1720178620602" ID="ID_1754473259" MODIFIED="1720178640340" TEXT="und dann mit einer Referenz auf die FeedManifold aufgerufen"/>
|
||||
<node CREATED="1728582010084" ID="ID_814015395" MODIFIED="1728582033557" TEXT="muß implizit selber eine geeignete FeedManifold enthalten"/>
|
||||
<node CREATED="1720178620602" ID="ID_1754473259" MODIFIED="1728582056854" TEXT="und wird dann per SimpleWeavingPattern 1:1 verdrahtet"/>
|
||||
<node CREATED="1720178641544" ID="ID_1400060048" MODIFIED="1720178663624">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -81609,6 +81622,12 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1720021669482" ID="ID_856272280" MODIFIED="1720050731701" TEXT="Problem: Level-3 ist ohne Kenntnis des Builders schwer zu bestimmen">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1728577385843" ID="ID_562478950" MODIFIED="1728577565595" TEXT="Vorentwurf: Übersetzung">
|
||||
<arrowlink COLOR="#75283b" DESTINATION="ID_1460004478" ENDARROW="Default" ENDINCLINATION="-406;19;" ID="Arrow_ID_1496642615" STARTARROW="None" STARTINCLINATION="-3;79;"/>
|
||||
<node CREATED="1728577399345" ID="ID_1496504729" MODIFIED="1728577635713" TEXT="vorgegeben wird eine semantisch konnotierte Erwartung">
|
||||
<linktarget COLOR="#622245" DESTINATION="ID_1496504729" ENDARROW="Default" ENDINCLINATION="-784;-30;" ID="Arrow_ID_1228119456" SOURCE="ID_568567553" STARTARROW="Default" STARTINCLINATION="-1608;1933;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1720021727803" ID="ID_1443907589" MODIFIED="1720021745383" TEXT="Mutmaßungen zur Arbeitsweise">
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -81652,7 +81671,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1720027053175" ID="ID_1948826697" MODIFIED="1720050630863" TEXT="schließlich erfolgt ein Level-3-Build-walk bottom-up">
|
||||
<node CREATED="1720027094940" ID="ID_1358037329" MODIFIED="1720027105937" TEXT="rekursiv depth-first bis zum Blatt"/>
|
||||
<node CREATED="1720052096281" ID="ID_653731910" MODIFIED="1720052252822" TEXT="dieser Walk navigiert Nodes, nicht Ports">
|
||||
<node CREATED="1720052096281" ID="ID_653731910" MODIFIED="1728577164240" TEXT="dieser Walk navigiert Nodes, nicht Ports">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -81661,6 +81680,42 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#5c3989" DESTINATION="ID_653731910" ENDARROW="Default" ENDINCLINATION="-1156;76;" ID="Arrow_ID_1500252574" SOURCE="ID_412907481" STARTARROW="None" STARTINCLINATION="-1041;-49;"/>
|
||||
<node CREATED="1728575511032" ID="ID_1726239449" MODIFIED="1728575596617">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
tatsächlich wird jeder Build-Schritt hier<i> delegiert</i> per Proc-Asset ⟶ Media-Lib (Ontology)
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1728575628232" ID="ID_1460004478" MODIFIED="1728577559259" STYLE="bubble" TEXT="das ist das wesentliche Struktur-Moment dieser Architektur">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
....denn dadurch <i>können wir eine Meta-Ontology vermeiden:</i> der entscheidende Übersetzungs-Schritt, das Ontology-Mapping aus dem Kontext der Edit-Session in das konkrete Processing <i>erfolgt direkt im Kontext einer konkreten Domain-Ontology, </i>beispielsweise FFMpeg. Vorgegeben ist eine semantische Attributierung der Syntax-Struktur im Session-Model und erwartet wird eine korrekte, konkrete Implementierung derselben.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<edge COLOR="#84314f"/>
|
||||
<arrowlink COLOR="#282d8b" DESTINATION="ID_1979697305" ENDARROW="Default" ENDINCLINATION="126;8;" ID="Arrow_ID_1136484113" STARTARROW="None" STARTINCLINATION="-24;45;"/>
|
||||
<linktarget COLOR="#75283b" DESTINATION="ID_1460004478" ENDARROW="Default" ENDINCLINATION="-406;19;" ID="Arrow_ID_1496642615" SOURCE="ID_562478950" STARTARROW="None" STARTINCLINATION="-3;79;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1728576178870" ID="ID_1979697305" MODIFIED="1728577518115">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ein Schritt: <b><font face="Monospaced" color="#3b1e47">ExpectationContext</font></b> ⟼ <font face="Monospaced" color="#1800a9">ProcNode</font>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#282d8b" DESTINATION="ID_1979697305" ENDARROW="Default" ENDINCLINATION="126;8;" ID="Arrow_ID_1136484113" SOURCE="ID_1460004478" STARTARROW="None" STARTINCLINATION="-24;45;"/>
|
||||
</node>
|
||||
<node CREATED="1720027106671" ID="ID_585872128" MODIFIED="1720027137328" TEXT="für das Blatt wird eine ProcNode emittiert (siehe unten)"/>
|
||||
<node CREATED="1720027141761" ID="ID_636601618" MODIFIED="1720050639817">
|
||||
|
|
@ -87266,8 +87321,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
will sagen: ich gehe erst mal im Prototyping von einer Test-Ontology aus, die sich aber informell bereits auf meine Kenntnis der Domäne (Video-Processing) abstützt
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1728437140586" ID="ID_316855073" MODIFIED="1728437523623" TEXT="wie der InvocationAdapter in diesem liegt">
|
||||
<arrowlink COLOR="#5d315c" DESTINATION="ID_424860567" ENDARROW="Default" ENDINCLINATION="-1137;-1326;" ID="Arrow_ID_1907915651" STARTARROW="None" STARTINCLINATION="475;34;"/>
|
||||
|
|
@ -87280,8 +87334,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
wie beide aus einer »Ontology« heraus angelegt und gesteuert werden <i>können</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1728437213059" ID="ID_1276794253" MODIFIED="1728437232311">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
|
|
@ -87291,8 +87344,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
und letztlich wie dann ein konkreter Aufruf ablaufen<i> kann</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1728437247772" HGAP="8" ID="ID_281569439" MODIFIED="1728437381915" STYLE="bubble" TEXT="beachte das „kann“ ⟹ Prototyping" VSHIFT="22">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -87302,8 +87354,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
sich nicht verrückt machen: das hier ist ein hermeneutischer Zirkel: Um ein gutes Werkzeug bauen zu können, muß ich <i>die Sache</i>  verstehen — und das mache ich, indem ich auf den Werkzeuggebrauch hin stipuliere
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<edge COLOR="#960303"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
|
|
@ -87311,6 +87362,55 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719964416438" HGAP="61" ID="ID_495934512" MODIFIED="1719967866179" TEXT="hier komme ich ohne Prototyping nicht weiter" VSHIFT="39">
|
||||
<arrowlink COLOR="#5e2f3f" DESTINATION="ID_1199569608" ENDARROW="Default" ENDINCLINATION="-1226;-72;" ID="Arrow_ID_1409703862" STARTARROW="None" STARTINCLINATION="-302;19;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728497991103" ID="ID_1877481634" MODIFIED="1728498077898" TEXT="Top-down Bottom-up">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1728498021030" ID="ID_274231525" MODIFIED="1728498309371" STYLE="bubble">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<b>Ziel</b>: Top-down Realisierung des Builder-API
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Vermöge Analyse und Architektur-Design habe ich mich schrittweise an eine Gliederung des Build-Vorganges in verschiedene Level herangearbeitet. Auf dem mittleren <b>Level-2</b> laufen alle Fäden zusammen; daher ist der Kern der Aufgabe bewältigt, wenn ein sinnvolles und adäquates Builder-API steht
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<edge COLOR="#3e22b2"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1728498038170" ID="ID_1047077795" MODIFIED="1728498397106" STYLE="bubble">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<b>Weg</b>: bottom-up überlegen wie gerendert werden soll
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Um aber auf das notwendige Builder-API schließen zu können, muß ich wissen
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
welche Struktur zum Rendern notwendig und deshalb zu bauen ist
|
||||
</li>
|
||||
<li>
|
||||
wie diese Struktur aus dem Kontext der Domain-Ontologie heraus spezifiziert wird
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<edge COLOR="#3e22b2"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719970214048" ID="ID_912277542" MODIFIED="1719970290253" TEXT="Builder-API">
|
||||
<arrowlink COLOR="#b82d72" DESTINATION="ID_1241897346" ENDARROW="Default" ENDINCLINATION="-200;386;" ID="Arrow_ID_1194515432" STARTARROW="None" STARTINCLINATION="-600;-89;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -87751,9 +87851,22 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1720546461284" ID="ID_704402784" MODIFIED="1720567304893" TEXT="Skizze ins Unreine : eine Invocation">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728498487559" ID="ID_1936996983" MODIFIED="1728498512539" TEXT="Einsicht: das muß ein bottom-up-Prototyping sein....">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1720546405862" ID="ID_1380185144" MODIFIED="1720567309445" TEXT="Grundstruktur für FeedManifold anlegen">
|
||||
<arrowlink COLOR="#3563bc" DESTINATION="ID_723925333" ENDARROW="Default" ENDINCLINATION="-1;162;" ID="Arrow_ID_1608020834" STARTARROW="None" STARTINCLINATION="627;40;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1728498677911" HGAP="36" ID="ID_1570528154" MODIFIED="1728498789076" TEXT="zweifelhaft ob es sich noch um ein »Objekt« handelt" VSHIFT="22">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
im alten Design von 2012 war die »Buffer Table« gedacht als eine Entität, die zumindest operational eine gewisse Abstraktion leistet. Im neuen Entwurf dagegen bemerke ich eine starke Tendenz, dies nur noch als eine Laufzeit-Datenstruktur zu betrachten, die durch das »WeavingPattern« bespielt wird
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1720546521352" ID="ID_1680202759" MODIFIED="1720567301713" TEXT="ein einfaches WeavingPattern für einen 1:1 Aufruf">
|
||||
<icon BUILTIN="pencil"/>
|
||||
|
|
@ -87871,6 +87984,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720573559675" ID="ID_1900172091" MODIFIED="1720573594815" TEXT="versuche mal ein direkt Objekt-gelinktes Routing-Array zu implementieren">
|
||||
<linktarget COLOR="#db4778" DESTINATION="ID_1900172091" ENDARROW="Default" ENDINCLINATION="-567;-19;" ID="Arrow_ID_1645995790" SOURCE="ID_878431324" STARTARROW="None" STARTINCLINATION="-1009;66;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1728498874741" ID="ID_1779636924" MODIFIED="1728498906825" TEXT="bedeutet: direkte Referenzen — statt interpretieren einer Meta-Spec"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720622923411" ID="ID_424860567" MODIFIED="1728437523623" TEXT="Rahmen für den InvocationAdapter abstecken">
|
||||
<linktarget COLOR="#5d315c" DESTINATION="ID_424860567" ENDARROW="Default" ENDINCLINATION="-1137;-1326;" ID="Arrow_ID_1907915651" SOURCE="ID_316855073" STARTARROW="None" STARTINCLINATION="475;34;"/>
|
||||
|
|
@ -89202,9 +89316,176 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728516089960" ID="ID_1274882287" MODIFIED="1728586526758" TEXT="Binding auf eine Funktion herstellen">
|
||||
<linktarget COLOR="#4a43ba" DESTINATION="ID_1274882287" ENDARROW="Default" ENDINCLINATION="-987;-72;" ID="Arrow_ID_1839790581" SOURCE="ID_520256497" STARTARROW="None" STARTINCLINATION="1230;281;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728516458862" ID="ID_543821007" MODIFIED="1728516484095" TEXT="Prototyp ≙ SimpleWeavingPattern">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1728516510080" ID="ID_238280414" MODIFIED="1728516513261" TEXT="Aufgabe">
|
||||
<node CREATED="1728516514596" ID="ID_378624147" MODIFIED="1728516534984" TEXT="gegeben: eine Media-Processing-Function"/>
|
||||
<node CREATED="1728516546003" ID="ID_1336878974" MODIFIED="1728516576658" TEXT="gesucht: Spec oder Pattern der Verdrahtung um diese im pull() aufzurufen"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728516623352" ID="ID_352122889" MODIFIED="1728516642591" TEXT="Lösungsweg: einen WeavingPatternBuilder konstruieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1728517219272" ID="ID_1949349210" MODIFIED="1728517230595" TEXT="Aufgaben zu lösen....">
|
||||
<node CREATED="1728517232983" ID="ID_1901356657" MODIFIED="1728517254807" TEXT="Storage: wo und wie wird er erzeugt und gehalten?">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728517853488" ID="ID_207532070" MODIFIED="1728517876717">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
muß<i> irgendwie</i> in den PortBuilder
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728581656920" ID="ID_739845793" MODIFIED="1728581671370" TEXT="denkbar wäre ein Quer-Builder-Ansatz">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1728581685771" ID="ID_1910481768" MODIFIED="1728581777685" TEXT="da der Builder per-Value/move arbeitet">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728581711706" ID="ID_133629991" MODIFIED="1728581797422" TEXT="d.h. die Funktions-Angabe schwenkt den Typ">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728581783087" ID="ID_854272919" MODIFIED="1728581797423" TEXT="brauche dann einen Bottom-Platzhalter-Builder">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1728517256203" ID="ID_480014054" MODIFIED="1728517267790" TEXT="Verdrahtung auf die eigentliche Processing-Function"/>
|
||||
<node CREATED="1728517306077" ID="ID_781615859" MODIFIED="1728517400020" TEXT="Verdrahtung Service-Context / DI für runtime-services">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
zur Laufzeit haben wir Services wie den Cache und die BufferProvider; diese sollten beser nicht dirket auf dem Builder-API sichtbar sein, sondern <i>magisch injiziert</i> werden
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1728517479781" ID="ID_1252289489" MODIFIED="1728517495890" TEXT="wer setzt dann eigentlich die »einfache Verdrahtung« um?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1728517499131" ID="ID_1437141043" MODIFIED="1728517516268" TEXT="ich habe gesagt, 1:1-Verschaltung sei der Default"/>
|
||||
<node CREATED="1728517519366" ID="ID_1357247017" MODIFIED="1728517704540">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
jetzt habe ich einen <font face="Monospaced" color="#7e01e1"><b>SimpleWeavingBuilder</b></font> geschrieben, dem man das alles explizit sagen muß
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1728517544812" ID="ID_948060527" MODIFIED="1728517603668" TEXT="aber die Idee war doch, daß das »Weaving-Pattern« schematisch festlegt, wie verdrahtet wird">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728569398198" ID="ID_1013813267" MODIFIED="1728569435495" TEXT="⟹ das fällt dann der nächst höheren Ebene zu ≙ dem PortBuilder">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1728575095471" ID="ID_807507393" MODIFIED="1728580412842" TEXT="muß aber auch API-Design bedenken">
|
||||
<arrowlink COLOR="#507ec8" DESTINATION="ID_1267841334" ENDARROW="Default" ENDINCLINATION="-66;-100;" ID="Arrow_ID_537610685" STARTARROW="None" STARTINCLINATION="-257;20;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721782550869" ID="ID_173220882" MODIFIED="1721782642416" TEXT="vereinfachtes Aufruf-API: Slots der Reihe nach belegen">
|
||||
<linktarget COLOR="#5581a2" DESTINATION="ID_173220882" ENDARROW="Default" ENDINCLINATION="-314;-501;" ID="Arrow_ID_84112739" SOURCE="ID_1583773170" STARTARROW="None" STARTINCLINATION="540;29;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1728575111581" ID="ID_1267841334" LINK="#ID_973244167" MODIFIED="1728580405766" TEXT="Nutz-Kontext">
|
||||
<linktarget COLOR="#507ec8" DESTINATION="ID_1267841334" ENDARROW="Default" ENDINCLINATION="-66;-100;" ID="Arrow_ID_537610685" SOURCE="ID_807507393" STARTARROW="None" STARTINCLINATION="-257;20;"/>
|
||||
<icon BUILTIN="edit"/>
|
||||
<node CREATED="1728575154175" ID="ID_649373795" MODIFIED="1728576988741" TEXT="liegt in der Implementierung eines Lib-Plugins">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e1d68a" COLOR="#564468" CREATED="1728576771353" ID="ID_412907481" MODIFIED="1728577164240" TEXT="im Übersetzungs-Kontext Semantik ⟼ Implementierung">
|
||||
<arrowlink COLOR="#5c3989" DESTINATION="ID_653731910" ENDARROW="Default" ENDINCLINATION="-1156;76;" ID="Arrow_ID_1500252574" STARTARROW="None" STARTINCLINATION="-1041;-49;"/>
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1728578055255" ID="ID_1427476084" MODIFIED="1728578065885" TEXT="Erwartungen werden als semantische Attributierung ausgedrückt"/>
|
||||
<node CREATED="1728578066929" ID="ID_96650446" MODIFIED="1728578075531" TEXT="als Ankerpunkt ist ein ProcAsset gegeben">
|
||||
<node CREATED="1728578079995" ID="ID_1768335138" MODIFIED="1728578170823" TEXT="dieses wiederum wurde irgendwann beim Laden einer Library eingebracht"/>
|
||||
<node CREATED="1728578176858" ID="ID_1753087316" MODIFIED="1728578207138" TEXT="und führt auch in diese zurück, mit internen Qualifikatoren"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1728578690765" ID="ID_1750370716" MODIFIED="1728578703543" TEXT="die technische Kontext-Policy wird bereits hereingereicht">
|
||||
<node CREATED="1728578705312" ID="ID_427256678" LINK="#ID_366571753" MODIFIED="1728579288476" TEXT="mutmaßlich verpackt als Generator-Funktor oder Visitor">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...technisch ist das ein kniffeliger double-Dispatch; beide Seiten der Interaktion haben jeweils einen konkreten Typkontext, den man so nicht direkt als API-Funktion ausdrücken kann, und ich kann im Moment noch nicht vorhersagen, wie das zu lösen ist — es wird darauf ankommen, die Indirektion geschickt zu drehen, so daß sie<i> auf etwas Generisches fällt.</i>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1728579363537" ID="ID_1519212817" MODIFIED="1728579393374">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
mache hier (für den Prototyp) die Anahme: <i>der Level-2-Builder kann konstruiert werden</i>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1728579413409" ID="ID_1723735578" MODIFIED="1728579429782" TEXT="die Library gibt dann ihre Implementierungs-(wrapper)-Funktion an"/>
|
||||
<node CREATED="1728579457262" ID="ID_1112406479" MODIFIED="1728579480743" TEXT="und spezifiziert — implizit darauf aufbauend — die eingangsseitige Verdrahtung"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1728579633151" ID="ID_989040018" MODIFIED="1728579846769" TEXT="hier könnte ein inhaltliches Mapping-Problem auftreten">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...insofern die Library die richtigen Eingänge wählen muß und deshalb Annahmen (oder explizite Informationen) zu den Leed-Nodes benötigt; zumindest kann unterstellt werden, daß auch die Lead-Nodes durch die gleiche Library implementiert werden, oder Adapter darstellen, welche kompatible Stromdaten für diese Library produzieren
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node CREATED="1728580006093" ID="ID_987246276" MODIFIED="1728580019671" TEXT="drei Verdrahtungs-Methoden werden bereitgestellt">
|
||||
<node CREATED="1728580024315" ID="ID_1346922494" MODIFIED="1728580033813" TEXT="einfache schematische Verdrahtung">
|
||||
<node CREATED="1728580199211" ID="ID_1788691604" MODIFIED="1728580212307" TEXT="1:1 von den Leads auf die Eingabe-Slots"/>
|
||||
<node CREATED="1728580216480" ID="ID_8759118" MODIFIED="1728580246181" TEXT="die Eingabe-Slots steuern den Verdrahtungsvorgang">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...das heißt, es kann mehr Leads als Slots geben
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1728580252241" ID="ID_1919588221" MODIFIED="1728580265878" TEXT="es wird überall die gleiche Port-Nummer unterstellt"/>
|
||||
</node>
|
||||
<node CREATED="1728580053927" ID="ID_1829298745" MODIFIED="1728580061913" TEXT="explizite Einzel-Verdrahtung">
|
||||
<node CREATED="1728580319403" ID="ID_1407313016" MODIFIED="1728580364249" TEXT="man spezifiziert explizit Lead-# und Port-#"/>
|
||||
<node CREATED="1728581568388" ID="ID_254354029" MODIFIED="1728581587661" TEXT="man könnte hier auch fill(N)-Methoden anbieten">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1728580079395" ID="ID_573399636" MODIFIED="1728580185350" TEXT="direkte Angabe eines InvocationAdapters anstelle der Funktion">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1728580156849" ID="ID_413544349" MODIFIED="1728580179825" TEXT="(geplant/optional) direkte Angabe eines WeavinPatternBuilders">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728581030897" ID="ID_1283310596" MODIFIED="1728581127193" TEXT="Angabe einer Funktion zwingend erforderlich">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
(oder eines InvocationAdapters oder Pattern Builders)
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1721782666679" ID="ID_1453585170" MODIFIED="1721782669193" TEXT="attachToLeadPort(ProcNode& lead, uint portNr)"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -89212,6 +89493,30 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720622703868" ID="ID_332813706" MODIFIED="1720622709065" TEXT="in Bausteine zerlegen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1728500237115" ID="ID_1324415480" MODIFIED="1728500255724" TEXT="unklar: wo wird die Flexibilität für WeavingPatters eingeführt?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1728500258076" ID="ID_1366737489" MODIFIED="1728500314815" TEXT="ich hab jetzt einen SimpleWeavingPatternBuilder">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...für sich genommen wäre das eine Festlegung auf das »simple weaving pattern« — das bedeutet, 1:1-Verdrahtung mit explizit anzugebenden Ausnahmen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1728500461049" ID="ID_187214045" MODIFIED="1728500587071" TEXT="die Konvention ist : Turnout baut direkt auf WeavingPattern auf">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das bedeutet: ein Builder für eine bestimmte Art Weaving-Pattern kann letztlich auch direkt einen Turnout konstruieren, sofern nur das WeavingPattern die 5 Schritte als Member-Functions bereitstellt, welche notwendig sind, um das Port-API zu implementieren
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -89224,7 +89529,16 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<arrowlink COLOR="#8c303b" DESTINATION="ID_1536301470" ENDARROW="Default" ENDINCLINATION="-653;972;" ID="Arrow_ID_1675114658" STARTARROW="None" STARTINCLINATION="373;-24;"/>
|
||||
<linktarget COLOR="#cd0172" DESTINATION="ID_668512282" ENDARROW="Default" ENDINCLINATION="-522;-42;" ID="Arrow_ID_1453353099" SOURCE="ID_1951506826" STARTARROW="None" STARTINCLINATION="651;43;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1720999894058" ID="ID_214293974" MODIFIED="1720999922585" TEXT="Instantiiert wird sie erst im Turnout::mount()"/>
|
||||
<node CREATED="1720999894058" ID="ID_214293974" MODIFIED="1728514565103" TEXT="Instantiiert wird sie erst im Turnout::weave()">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...durch Delegieren an PAT::mount()  —  wobei PAT ≡ weaving pattern
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1720999923389" ID="ID_1583842175" MODIFIED="1720999949503">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -89234,6 +89548,14 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
....und zwar durch Festlegen des konkreten Typs des Turnout, welcher dann das Weaving-Pattern als Mix-in einbindet, um auf dieser Basis das Turnout-Interface zu implementieren
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue