Invocation: integrate passing a parameter-functor into the NodeBuilder
This required some ''type massaging'' to construct the proper follow-up builder type; other than that, all components work together as expected. This can be demonstrated both in a direct setup and using the builder.
This commit is contained in:
parent
b46e21e24d
commit
52d2c47439
5 changed files with 294 additions and 100 deletions
|
|
@ -350,6 +350,25 @@ namespace engine {
|
|||
return move(*this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Embed the explicitly given parameter-functor into the FeedPrototype,
|
||||
* so that it will be called on each Node invocation to generate parameters
|
||||
* to be passed into the actual processing function. The TurnoutSystem acts
|
||||
* as source for the base coordinates, typically the _absolute nominal Time._
|
||||
* @return adapted PortBuilder marked with the `FeedPrototype` holding \a PFX
|
||||
*/
|
||||
template<class PFX>
|
||||
auto
|
||||
attachParamFun (PFX paramFunctor)
|
||||
{
|
||||
using AdaptedWeavingBuilder = typename WAB::template Adapted<PFX>;
|
||||
using AdaptedPortBuilder = PortBuilder<POL,DAT,AdaptedWeavingBuilder>;
|
||||
//
|
||||
return AdaptedPortBuilder{move(*this)
|
||||
,weavingBuilder_.adaptParam (move (paramFunctor))
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************//**
|
||||
* Terminal: complete the Port wiring and return to the node level.
|
||||
|
|
|
|||
|
|
@ -286,6 +286,28 @@ namespace engine {
|
|||
, prototype_{move (adaptedPrototype)}
|
||||
{ }
|
||||
|
||||
|
||||
/** type builder for FeedPrototype adapted to another parameter-fun */
|
||||
template<class PFX>
|
||||
using AdaptedPrototype = typename PROT::template Adapted<PFX>;
|
||||
template<class PFX>
|
||||
using Adapted = WeavingBuilder<POL, AdaptedPrototype<PFX>>;
|
||||
|
||||
/** Adapt a parameter-functor into the _Feed Prototype,_
|
||||
* so that it is invoked whenever a new `FeedManifold` is built.
|
||||
* @return adapted WeavingBuilder marked with changed `FeedManifold` type.
|
||||
*/
|
||||
template<class PFX>
|
||||
auto
|
||||
adaptParam (PFX paramFunctor)
|
||||
{
|
||||
using AdaptedWeavingBuilder = Adapted<PFX>;
|
||||
//
|
||||
return AdaptedWeavingBuilder{move(*this)
|
||||
,prototype_.moveAdapted (move (paramFunctor))
|
||||
};
|
||||
}
|
||||
|
||||
WeavingBuilder&&
|
||||
attachToLeadPort (ProcNode& lead, uint portNr)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -66,19 +66,32 @@ namespace test {
|
|||
CHECK (watch(node).isSrc());
|
||||
CHECK (watch(node).ports().size() == 1);
|
||||
|
||||
// Prepare setup to invoke such a Render Node...
|
||||
CHECK (LIFE_AND_UNIVERSE_4EVER == invokeRenderNode (node));
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal Helper for Render Node invocation
|
||||
* - use a DiagnosticBufferProvider to allocate a result buffer
|
||||
* - assuming that the Node internally does not allocate further buffers
|
||||
* - pull from Port #0 of the given node, passing the \a nomTime as argument
|
||||
* - expect the buffer to hold a single `uint` value after invocation
|
||||
*/
|
||||
uint
|
||||
invokeRenderNode (ProcNode& theNode, Time nomTime =Time::ZERO)
|
||||
{
|
||||
BufferProvider& provider = DiagnosticBufferProvider::build();
|
||||
BuffHandle buff = provider.lockBufferFor<long> (-55);
|
||||
Time nomTime = Time::ZERO;
|
||||
ProcessKey key{0};
|
||||
uint port{0};
|
||||
|
||||
CHECK (-55 == buff.accessAs<long>());
|
||||
|
||||
// Trigger Node invocation...
|
||||
buff = node.pull (port, buff, nomTime, key);
|
||||
buff = theNode.pull (port, buff, nomTime, key);
|
||||
|
||||
CHECK (LIFE_AND_UNIVERSE_4EVER == buff.accessAs<uint>());
|
||||
uint result = buff.accessAs<uint>();
|
||||
buff.release();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -88,6 +101,18 @@ namespace test {
|
|||
void
|
||||
build_Node_fixedParam()
|
||||
{
|
||||
auto procFun = [](ushort param, uint* buff){ *buff = param; };
|
||||
auto paramFun = [](TurnoutSystem&){ return LIFE_AND_UNIVERSE_4EVER; };
|
||||
|
||||
ProcNode node{prepareNode("Test")
|
||||
.preparePort()
|
||||
.invoke("fun()",procFun)
|
||||
.attachParamFun(paramFun)
|
||||
.completePort()
|
||||
.build()};
|
||||
|
||||
CHECK (LIFE_AND_UNIVERSE_4EVER == invokeRenderNode (node));
|
||||
|
||||
UNIMPLEMENTED ("build node with fixed param");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,10 +17,20 @@
|
|||
|
||||
|
||||
#include "lib/test/run.hpp"
|
||||
#include "steam/engine/proc-node.hpp"
|
||||
#include "steam/engine/node-builder.hpp"
|
||||
#include "steam/engine/weaving-pattern.hpp"
|
||||
#include "steam/engine/turnout-system.hpp"
|
||||
#include "steam/engine/turnout.hpp"
|
||||
#include "steam/engine/diagnostic-buffer-provider.hpp"
|
||||
#include "lib/several-builder.hpp"
|
||||
#include "lib/test/diagnostic-output.hpp"/////////////////////TODO
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
|
||||
//using std::string;
|
||||
using lib::Several;
|
||||
using lib::makeSeveral;
|
||||
|
||||
|
||||
namespace steam {
|
||||
|
|
@ -42,9 +52,56 @@ namespace test {
|
|||
UNIMPLEMENTED ("render node pulling source data from vault");
|
||||
}
|
||||
|
||||
/** @test feed parameter data to nodes */
|
||||
|
||||
/** @test demonstrate internal setup to invoke a simple output-only function,
|
||||
* passing an additional invocation parameter generated from a parameter-functor
|
||||
* - embed the processing-functor and parameter-functor into a FeedPrototype
|
||||
* - construct the type of the »Weaving Pattern« to use for invocation
|
||||
* - setup an empty wiring (output-only, thus no predecessor ports)
|
||||
* - setup a single BuffDesrc for a result puffer to pass to the processing-functor
|
||||
* - create a Turnout, which implements the Port interface, using the Weaving-Pattern
|
||||
* - for the actual invocation, setup a TurnoutSystem, initialised with a nominal time
|
||||
* - invoke the Port::weave() function and retrieve the result from the buffer.
|
||||
* @remark this is a semi-integrated setup to demonstrate the interplay of the
|
||||
* internal components within a Render Node, without the _outer shell_
|
||||
* provided by the NodeBuilder and the ProcNode itself
|
||||
*/
|
||||
void
|
||||
feedParam()
|
||||
{
|
||||
auto procFun = [](ushort param, uint* buff){ *buff = param; };
|
||||
auto paramFun = [](TurnoutSystem&){ return LIFE_AND_UNIVERSE_4EVER; };
|
||||
|
||||
auto feedPrototype = FeedPrototype{move(procFun), move(paramFun)};
|
||||
using Prototype = decltype(feedPrototype);
|
||||
using WeavingPattern = MediaWeavingPattern<Prototype>;
|
||||
using TurnoutWeaving = Turnout<WeavingPattern>;
|
||||
|
||||
BufferProvider& provider = DiagnosticBufferProvider::build();
|
||||
|
||||
Several<PortRef> noLeadPorts; // ◁————————— empty predecessor-port-sequence
|
||||
Several<BuffDescr> outBuffDescr = makeSeveral({provider.getDescriptor<uint>()})
|
||||
.build(); // ◁————————— a single output buffer to hold an `uint`
|
||||
uint resultSlot{0};
|
||||
|
||||
TurnoutWeaving port{ProcID::describe ("SimpleNode","procFun()")
|
||||
, move (noLeadPorts)
|
||||
, move (outBuffDescr)
|
||||
, resultSlot
|
||||
, move (feedPrototype)
|
||||
};
|
||||
|
||||
// setup for invocation...
|
||||
Time nomTime =Time::ZERO;
|
||||
TurnoutSystem turnoutSys{nomTime};
|
||||
BuffHandle result = port.weave (turnoutSys); // ◁————————— paramFun invoked here, then procFun
|
||||
CHECK (LIFE_AND_UNIVERSE_4EVER == result.accessAs<uint>());// and procFun wrote param-value into result buffer
|
||||
result.release();
|
||||
}
|
||||
|
||||
/** @test create extended parameter data for use in recursive Node invocation */
|
||||
void
|
||||
feedParamNode()
|
||||
{
|
||||
TODO ("implement the logic for the TurnoutSystem --> node-base-test.cpp");
|
||||
TODO ("implement a simple Builder for ParamAgent-Node");
|
||||
|
|
|
|||
|
|
@ -29011,9 +29011,7 @@
|
|||
</node>
|
||||
<node CREATED="1555807962932" ID="ID_378229584" MODIFIED="1557498707229" TEXT="bisher hat meine Lösung aber grade den einen Vorteil, komplet "ad hoc" zu sein">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
d.h. man erzeugt in einem einzigen Aufruf den VerbPack für eine Zielfunktion
|
||||
|
|
@ -29382,9 +29380,7 @@
|
|||
</node>
|
||||
<node CREATED="1560612743655" ID="ID_926510331" MODIFIED="1576282358058" TEXT="andererseits ist die Storage schon da....">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
und bleibt anderweitig ungenutzt
|
||||
|
|
@ -29708,9 +29704,7 @@
|
|||
</node>
|
||||
<node CREATED="1674247332612" ID="ID_421176912" MODIFIED="1674247406408" TEXT="14+12+82 = 108 sieht viel realistischer aus....">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und das würde auch erklären, warum trotzdem die Zelle mit der Glühbirne (=die direkten Controls) <i>überhaupt nicht aufgespreitzt </i>wird
|
||||
|
|
@ -29945,9 +29939,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
hier können wir nicht exakt rechnen, weil aufsteigende Slopes kombiniert werden — und die Info dazu kennen wir nur beim Konstruieren des Profils. Daher überschätzt diese Höhenangabe die Track-Höhe — bleibt zu sehen, ob das relevant wird
|
||||
|
|
@ -30665,9 +30657,7 @@
|
|||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1553911581890" ID="ID_1856936034" MODIFIED="1557498707229">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das wäre der <i>logisch richtige</i> Ort
|
||||
|
|
@ -30956,9 +30946,7 @@
|
|||
<node CREATED="1566394596499" ID="ID_1873797848" MODIFIED="1566394621437" TEXT="Fortschritts-Prozeß vs. Erfassen einer Idee"/>
|
||||
<node CREATED="1566394624791" ID="ID_328891828" MODIFIED="1576282358052" TEXT="das gilt auch für graphische Oberflächen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
die Idee einer graphischen Benutzeroberfläche hat sich über die 60er / 70er-Jahre herausgebildet.
|
||||
|
|
@ -31880,9 +31868,7 @@
|
|||
</node>
|
||||
<node COLOR="#435e98" CREATED="1561737065424" ID="ID_840108079" MODIFIED="1562843694504">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Nein. Es ist ein G<b>D</b>K-Wrapper/Adapter
|
||||
|
|
@ -32285,9 +32271,7 @@
|
|||
<node CREATED="1564496645266" ID="ID_1195524517" MODIFIED="1564496648014" TEXT="aber">
|
||||
<node CREATED="1564496671939" ID="ID_447845332" MODIFIED="1564496677574">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
g {
|
||||
|
|
@ -82221,8 +82205,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
...also vor allem die Frage: wirft das jetzt alles über den Haufen, kann man es außen anbauen, oder gar in bestehende Strukturen lediglich hinein-codieren?
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735056823011" ID="ID_256116626" LINK="#ID_1150277906" MODIFIED="1735058896369" TEXT="habe dann aber »Parametrisierbarkeit« als Anforderung nochmal grundsätzlich durchdacht">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -82287,8 +82270,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
denn nun wird in der Regel erst mal aus dem PortBuilderRoot das Binding für die Processing-Function angelegt ⟹ PortBuilder — und erst von dort gibt man dann Parameter an ⟹ modifizierter PortBuilder
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735064779481" ID="ID_1880332085" MODIFIED="1735064805874" TEXT="muß Parametrisierung des eingebetteten WeavingBuilders heben / ergänzen"/>
|
||||
</node>
|
||||
|
|
@ -82353,9 +82335,51 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<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 CREATED="1735068628307" ID="ID_1218064070" MODIFIED="1735070937224" TEXT="Konfiguration für Parameter">
|
||||
<arrowlink COLOR="#3d55ca" DESTINATION="ID_470723577" ENDARROW="Default" ENDINCLINATION="-1255;-52;" ID="Arrow_ID_767774106" STARTARROW="None" STARTINCLINATION="464;45;"/>
|
||||
<node CREATED="1735068628307" ID="ID_1218064070" MODIFIED="1735234502189" TEXT="Konfiguration für Parameter">
|
||||
<arrowlink COLOR="#3d55ca" DESTINATION="ID_470723577" ENDARROW="Default" ENDINCLINATION="-1255;-52;" ID="Arrow_ID_767774106" STARTARROW="None" STARTINCLINATION="289;1826;"/>
|
||||
<linktarget COLOR="#8595a8" DESTINATION="ID_1218064070" ENDARROW="Default" ENDINCLINATION="-31;-184;" ID="Arrow_ID_1907314003" SOURCE="ID_873434155" STARTARROW="None" STARTINCLINATION="-201;17;"/>
|
||||
<node CREATED="1735181285893" ID="ID_598324724" MODIFIED="1735234161386" TEXT="setParam(PAR)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>»dropper-Funktion«</i> verwenden, die einen fest hinterlegten Parameter-Wert für jede Invocation in die FeedManifold setzt
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1735181310482" ID="ID_222695945" MODIFIED="1735234327441" TEXT="retrieveParam(Accessor)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Parameter aus TurnoutSystem per Accessor abholen; ein solcher typ-sicherer Accessor kann über das HeteroData-Framework generiert werden, welches als Storage mit verketteten, getypten Datenblöcken direkt in das TurnoutSystem eingebaut ist. In der Standard-Konfiguration enthält so ein TurnoutSystem nur einen ersten Block mit den Invocation-Parameter (absoluteNominalTime und ein processKey). Daher ist diese API-Variante nur interessant, falls vorher schon per Parameter-Node ein erweiterter Datenblock mit zusätzlichen Parametern irgendwo auf den Stack gelegt wurde
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735181577102" ID="ID_1506571746" MODIFIED="1735234397711" TEXT="attachAutomation(AUTO)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>zeitbasierte Funktion</i> adaptieren, für klassische Parameter-Automation. Der Zeit-Parameter ist dabei die <i>absolute-nominal-Time,</i>  welche aus dem Render-Job stammt und im TurnoutSystem abgelegt ist
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735181611673" ID="ID_553777161" MODIFIED="1735234478556" TEXT="attachParamFun(FUN)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
beliebiger Parameter-Funktor, der auf dem TurnoutSystem arbeitet und einen passenden Parameter-Wert produziert; Typisierung wird zur compile-Zeit geprüft.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720146340213" ID="ID_1871545026" MODIFIED="1720230570516" TEXT="TODO: API für Mapping">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -88993,7 +89017,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1733577283965" ID="ID_1305712041" MODIFIED="1734879309061" TEXT="feedParamNode">
|
||||
<linktarget COLOR="#406cd3" DESTINATION="ID_1305712041" ENDARROW="Default" ENDINCLINATION="-218;836;" ID="Arrow_ID_1532472151" SOURCE="ID_1564169805" STARTARROW="None" STARTINCLINATION="-781;65;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1733577319137" ID="ID_767292434" MODIFIED="1733577338773" TEXT="direkt-verknüpftes Test-Setup ohne Infrastruktur"/>
|
||||
<node CREATED="1733577319137" ID="ID_767292434" MODIFIED="1735236539768" TEXT="halb-integriertes Test-Setup mit Node-Builder"/>
|
||||
<node CREATED="1733577444940" ID="ID_494911945" MODIFIED="1733577551783" TEXT="Turnout-System für den Parameter-Austausch">
|
||||
<arrowlink COLOR="#406cd3" DESTINATION="ID_932666491" ENDARROW="Default" ENDINCLINATION="-128;9;" ID="Arrow_ID_983808840" STARTARROW="None" STARTINCLINATION="-353;-26;"/>
|
||||
</node>
|
||||
|
|
@ -91202,7 +91226,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1720572417472" ID="ID_1892978300" MODIFIED="1720572435945" TEXT="wenn das wirklich nötig wird (YAGNI)..."/>
|
||||
<node CREATED="1720572436630" ID="ID_60200424" MODIFIED="1720572460182" TEXT="dann kann man immer noch ein spezielles Weaving-Pattern dafür aufbauen"/>
|
||||
<node COLOR="#435e98" CREATED="1720572464914" ID="ID_1119846327" MODIFIED="1720737130419">
|
||||
<node COLOR="#435e98" CREATED="1720572464914" ID="ID_1119846327" MODIFIED="1720572464914">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -91955,9 +91979,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734133384146" ID="ID_250842155" MODIFIED="1734755876291" TEXT="Typ-Steuerung im Builder überarbeiten">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1734190947370" ID="ID_765080280" MODIFIED="1734725144619" TEXT="FeedManifold umstellen: std::array ⟼ tuple">
|
||||
<node COLOR="#338800" CREATED="1734133384146" ID="ID_250842155" MODIFIED="1735245057838" TEXT="Typ-Steuerung im Builder überarbeiten">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1734190947370" FOLDED="true" ID="ID_765080280" MODIFIED="1735245088625" TEXT="FeedManifold umstellen: std::array ⟼ tuple">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734191532632" FOLDED="true" ID="ID_503276878" MODIFIED="1734661895753" TEXT="damit fällt eine starke strukturelle Einschränkung weg">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
|
|
@ -92290,7 +92314,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734276259404" ID="ID_814254927" MODIFIED="1734727667932" TEXT="Typ-Steuerung geht in die FeedManifold">
|
||||
<node COLOR="#338800" CREATED="1734276259404" FOLDED="true" ID="ID_814254927" MODIFIED="1735245064779" TEXT="Typ-Steuerung geht in die FeedManifold">
|
||||
<linktarget COLOR="#3f4fb7" DESTINATION="ID_814254927" ENDARROW="Default" ENDINCLINATION="48;-164;" ID="Arrow_ID_584314736" SOURCE="ID_1748820043" STARTARROW="None" STARTINCLINATION="-244;14;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#5b280f" CREATED="1734726665995" ID="ID_1538692458" MODIFIED="1734726948476" TEXT="(Zustand vorher: Steuerung über Weaving-Pattern ⟹ inkonsistent)">
|
||||
|
|
@ -92904,9 +92928,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734739984644" HGAP="-128" ID="ID_366268182" MODIFIED="1734755313572" TEXT="Typ-Anpassungen aus dem Umbau der FeedManifold" VSHIFT="6">
|
||||
<linktarget COLOR="#fe1573" DESTINATION="ID_366268182" ENDARROW="Default" ENDINCLINATION="-1176;63;" ID="Arrow_ID_39556747" SOURCE="ID_86160844" STARTARROW="None" STARTINCLINATION="-122;6;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1734739984644" HGAP="-128" ID="ID_366268182" MODIFIED="1735244961503" TEXT="Typ-Anpassungen aus dem Umbau der FeedManifold" VSHIFT="6">
|
||||
<linktarget COLOR="#42c177" DESTINATION="ID_366268182" ENDARROW="Default" ENDINCLINATION="-1176;63;" ID="Arrow_ID_39556747" SOURCE="ID_86160844" STARTARROW="None" STARTINCLINATION="-122;6;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#ecdbc7" CREATED="1734740397311" ID="ID_1507739045" MODIFIED="1734740758439" STYLE="fork">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -92931,10 +92955,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1734740640102" ID="ID_1102101096" MODIFIED="1734755323681" TEXT="kein direkter Zugriff auf FunSpec / _ProcFun oder sonstige Typ-Logik">
|
||||
<node COLOR="#435e98" CREATED="1734740640102" ID="ID_1102101096" MODIFIED="1735244953990" TEXT="kein direkter Zugriff auf FunSpec / _ProcFun oder sonstige Typ-Logik">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734740686846" ID="ID_1300454170" MODIFIED="1734755332494" TEXT="es gibt keinen einheitlichen Buffer-Typ mehr">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734740686846" FOLDED="true" ID="ID_1300454170" MODIFIED="1735244991308" TEXT="es gibt keinen einheitlichen Buffer-Typ mehr">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node COLOR="#338800" CREATED="1734743815124" ID="ID_712364667" MODIFIED="1734755025852">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
|
|
@ -93126,19 +93150,19 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734738688196" ID="ID_1867270027" MODIFIED="1734739657681" TEXT="Port/Weaving-Builder muß nun Prototype-cross-Builder unterstützen">
|
||||
<linktarget COLOR="#f12245" DESTINATION="ID_1867270027" ENDARROW="Default" ENDINCLINATION="-744;28;" ID="Arrow_ID_569480662" SOURCE="ID_156789117" STARTARROW="None" STARTINCLINATION="-707;32;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1734738688196" FOLDED="true" ID="ID_1867270027" MODIFIED="1735245081623" TEXT="Port/Weaving-Builder muß nun Prototype-cross-Builder unterstützen">
|
||||
<linktarget COLOR="#2297f1" DESTINATION="ID_1867270027" ENDARROW="Default" ENDINCLINATION="-744;28;" ID="Arrow_ID_569480662" SOURCE="ID_156789117" STARTARROW="None" STARTINCLINATION="-707;32;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1734738803365" ID="ID_764351741" MODIFIED="1734738888811" TEXT="das realisiert dann die Einbindung von Parameter-Funktoren">
|
||||
<arrowlink COLOR="#4546d4" DESTINATION="ID_1166367446" ENDARROW="Default" ENDINCLINATION="-4;229;" ID="Arrow_ID_698609212" STARTARROW="None" STARTINCLINATION="62;-202;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734739489040" ID="ID_1376996024" MODIFIED="1734739503822" TEXT="Änderung: Prototype halten anstelle der Processing-Function">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1734739489040" ID="ID_1376996024" MODIFIED="1735245006078" TEXT="Änderung: Prototype halten anstelle der Processing-Function">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734877435220" ID="ID_600115804" MODIFIED="1734879501751" TEXT="Test im NodeBuilder_test">
|
||||
<node COLOR="#338800" CREATED="1734877435220" ID="ID_600115804" MODIFIED="1735245069488" TEXT="Test im NodeBuilder_test">
|
||||
<arrowlink COLOR="#406cd3" DESTINATION="ID_1383452569" ENDARROW="Default" ENDINCLINATION="-1339;91;" ID="Arrow_ID_1946653398" STARTARROW="None" STARTINCLINATION="-1035;100;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -93821,7 +93845,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734731121493" FOLDED="true" ID="ID_620770826" MODIFIED="1734754350499" TEXT="Konstruktor DirectFunctionInvocation ⟶ neues Builder-API">
|
||||
<node COLOR="#435e98" CREATED="1734731121493" FOLDED="true" ID="ID_620770826" MODIFIED="1735245036477" TEXT="Konstruktor DirectFunctionInvocation ⟶ neues Builder-API">
|
||||
<icon BUILTIN="full-2"/>
|
||||
<node BACKGROUND_COLOR="#ddd0b6" CREATED="1734731288131" HGAP="24" ID="ID_533282289" MODIFIED="1734739666626" TEXT="das ist ein Argument Pass-through im MediaWeavingPattern" VSHIFT="1">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -93845,8 +93869,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734738550502" ID="ID_156789117" MODIFIED="1734739657681" TEXT="Schritt-2 : cross-Builder-API in de Weaving-Builder hineinnehmen">
|
||||
<arrowlink COLOR="#f12245" DESTINATION="ID_1867270027" ENDARROW="Default" ENDINCLINATION="-744;28;" ID="Arrow_ID_569480662" STARTARROW="None" STARTINCLINATION="-707;32;"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734738550502" ID="ID_156789117" MODIFIED="1735245032397" TEXT="Schritt-2 : cross-Builder-API in de Weaving-Builder hineinnehmen">
|
||||
<arrowlink COLOR="#2297f1" DESTINATION="ID_1867270027" ENDARROW="Default" ENDINCLINATION="-744;28;" ID="Arrow_ID_569480662" STARTARROW="None" STARTINCLINATION="-707;32;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -93872,8 +93896,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="full-5"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734739954996" ID="ID_86160844" MODIFIED="1734831186623" TEXT="Typ-Anpassungen in den Weaving-Builder übernehmen">
|
||||
<arrowlink COLOR="#fe1573" DESTINATION="ID_366268182" ENDARROW="Default" ENDINCLINATION="-1176;63;" ID="Arrow_ID_39556747" STARTARROW="None" STARTINCLINATION="-122;6;"/>
|
||||
<node COLOR="#338800" CREATED="1734739954996" ID="ID_86160844" MODIFIED="1735244977781" TEXT="Typ-Anpassungen in den Weaving-Builder übernehmen">
|
||||
<arrowlink COLOR="#42c177" DESTINATION="ID_366268182" ENDARROW="Default" ENDINCLINATION="-1176;63;" ID="Arrow_ID_39556747" STARTARROW="None" STARTINCLINATION="-122;6;"/>
|
||||
<linktarget COLOR="#46476c" DESTINATION="ID_86160844" ENDARROW="Default" ENDINCLINATION="-72;-50;" ID="Arrow_ID_245251166" SOURCE="ID_62712804" STARTARROW="None" STARTINCLINATION="-128;6;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1734740175883" ID="ID_1540451" MODIFIED="1734754608354" TEXT="FeedPrototype explizit als Einstiegspunkt in das WeavingPattern">
|
||||
|
|
@ -96941,8 +96965,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1735069829251" ID="ID_162016103" MODIFIED="1735069891462" TEXT="jetzt mehr oder weniger festgelegt auf das vereinfachte API-Schema">
|
||||
<arrowlink COLOR="#596573" DESTINATION="ID_173220882" ENDARROW="Default" ENDINCLINATION="-96;5;" ID="Arrow_ID_940636281" STARTARROW="None" STARTINCLINATION="-238;-12;"/>
|
||||
</node>
|
||||
<node CREATED="1735069924196" ID="ID_470723577" MODIFIED="1735070937224" TEXT="Ergänzung: Parameter-Functor einführen">
|
||||
<linktarget COLOR="#3d55ca" DESTINATION="ID_470723577" ENDARROW="Default" ENDINCLINATION="-1255;-52;" ID="Arrow_ID_767774106" SOURCE="ID_1218064070" STARTARROW="None" STARTINCLINATION="464;45;"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1735069924196" ID="ID_470723577" MODIFIED="1735234502190" TEXT="Ergänzung: Parameter-Functor einführen">
|
||||
<linktarget COLOR="#3d55ca" DESTINATION="ID_470723577" ENDARROW="Default" ENDINCLINATION="-1255;-52;" ID="Arrow_ID_767774106" SOURCE="ID_1218064070" STARTARROW="None" STARTINCLINATION="289;1826;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1735070066380" ID="ID_924587023" MODIFIED="1735070076918" TEXT="Dieser liegt im FeedPrototype"/>
|
||||
<node CREATED="1735070078355" ID="ID_322789953" MODIFIED="1735070093472" TEXT="...der wiederum in das MediaWeavingPattern eingebettet wird"/>
|
||||
<node CREATED="1735070096196" ID="ID_81762855" MODIFIED="1735070200862">
|
||||
|
|
@ -96953,8 +96978,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
⟹ also muß der WeavingBuilder <i>seine Typ-Parameter schwenken </i>können
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735070296999" ID="ID_1127764055" MODIFIED="1735070342009">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
|
|
@ -96964,10 +96988,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
⟹ und der ihn umschließende PortBuilder muß <i>diesen Schwenk mitgehen</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1735071406908" ID="ID_41228375" MODIFIED="1735071452254" TEXT="komplexes Manöver — wirklich notwendig?">
|
||||
<node BACKGROUND_COLOR="#c8bcb6" COLOR="#6e0099" CREATED="1735071406908" ID="ID_41228375" MODIFIED="1735233422802" TEXT="komplexes Manöver — wirklich notwendig?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1735071458244" ID="ID_122075212" MODIFIED="1735071466991" TEXT="es liegt an dem Typ-basierten Ansatz">
|
||||
<node CREATED="1735070983365" ID="ID_449846433" MODIFIED="1735071487956" TEXT="WeavingBuilder ist direkt auf FUN (processing-functor) typisiert"/>
|
||||
|
|
@ -96987,8 +97010,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
schon das Ding mit <font face="Monospaced">PatternData</font> ist <i>grauenhaft</i> — und s'werd ois no fui schmlimma
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
<node COLOR="#b80165" CREATED="1735074049579" ID="ID_915001534" MODIFIED="1735074428091" TEXT="einfach fressen — geht doch...">
|
||||
|
|
@ -97009,7 +97031,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="smiley-angry"/>
|
||||
</node>
|
||||
<node CREATED="1735073143945" ID="ID_1381147591" MODIFIED="1735073159419" TEXT="einen Paradigmen-Wechsel gäbe es aber nicht umsonst....">
|
||||
<node COLOR="#5b280f" CREATED="1735073143945" FOLDED="true" ID="ID_1381147591" MODIFIED="1735232744666" TEXT="einen Paradigmen-Wechsel gäbe es aber nicht umsonst....">
|
||||
<icon BUILTIN="clanbomber"/>
|
||||
<node CREATED="1735073161567" ID="ID_230609721" MODIFIED="1735073219920" TEXT="Alternative wäre: auf virtuellen heap-basiertes Detail-Build umstellen"/>
|
||||
<node CREATED="1735073232645" ID="ID_1626158697" MODIFIED="1735073245555" TEXT="der Weaving-Builder würde dadurch opaque">
|
||||
<node CREATED="1735073257882" ID="ID_550679913" MODIFIED="1735073284442" TEXT="Port-Builder würde nur noch ein klassisches OO-Interface benutzen"/>
|
||||
|
|
@ -97050,7 +97073,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735074010716" ID="ID_497894747" MODIFIED="1735074029461" TEXT="⟹ bereits die delayed-build-λ stellen eine partielle Type-Erasure dar"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1735076701058" ID="ID_1594497500" MODIFIED="1735076753244" TEXT="aber diese selbst müßten dann im voll expandierten Typ-Kontext liegen">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1735076701058" FOLDED="true" ID="ID_1594497500" MODIFIED="1735232740551" TEXT="aber diese selbst müßten dann im voll expandierten Typ-Kontext liegen">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1735076808467" ID="ID_1987141221" MODIFIED="1735076827931" TEXT="das ist nur ein ganz schmales »Fenster«"/>
|
||||
<node CREATED="1735076958492" ID="ID_1923985971" MODIFIED="1735076984471" TEXT="bedeutet: der Builder-Funktor selber wäre nochmal zu virtualisieren"/>
|
||||
|
|
@ -97070,11 +97093,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="smiley-neutral"/>
|
||||
</node>
|
||||
<node CREATED="1735077551417" ID="ID_702667838" MODIFIED="1735077575560" TEXT="wäre dann in jedem Fall ein extern extrahiertes Konzept">
|
||||
<node CREATED="1735077582283" ID="ID_1419937742" MODIFIED="1735077594733" TEXT="Idee: PatternPrototype">
|
||||
<node COLOR="#5b280f" CREATED="1735077582283" ID="ID_1419937742" MODIFIED="1735232678111" TEXT="Idee: PatternPrototype">
|
||||
<icon BUILTIN="idea"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1735077668360" ID="ID_1572740856" MODIFIED="1735077684410" TEXT="ein Prototype trägt verdeckt den Zieltyp"/>
|
||||
<node CREATED="1735077702715" ID="ID_106957283" MODIFIED="1735077739698" TEXT="auf dieses lassen sich »monadische« Operationen anwenden"/>
|
||||
<node CREATED="1735077817175" ID="ID_1781671844" MODIFIED="1735077828703" TEXT="am Ende erstellt man einen »Dropper«"/>
|
||||
<node COLOR="#5b280f" CREATED="1735077629430" ID="ID_1074716100" MODIFIED="1735087947887" TEXT="Implementiert als Monaden-PImpl-Closure">
|
||||
<node COLOR="#5b280f" CREATED="1735077629430" FOLDED="true" ID="ID_1074716100" MODIFIED="1735232655233" TEXT="Implementiert als Monaden-PImpl-Closure">
|
||||
<arrowlink COLOR="#8f0248" DESTINATION="ID_617959831" ENDARROW="Default" ENDINCLINATION="-297;13;" ID="Arrow_ID_1098066299" STARTARROW="None" STARTINCLINATION="-44;189;"/>
|
||||
<icon BUILTIN="smiley-oh"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
|
|
@ -97208,8 +97233,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
aber das wäre das <b>eigentliche Problem</b>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#e60333" DESTINATION="ID_241035152" ENDARROW="Default" ENDINCLINATION="10;109;" ID="Arrow_ID_933810453" SOURCE="ID_1041065646" STARTARROW="None" STARTINCLINATION="185;0;"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -97258,8 +97282,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
insofern hier nämlich bereits akzidentelle Komplexität generiert wird
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735088698388" ID="ID_83306944" MODIFIED="1735088798351" TEXT="sie gründet nicht in einer unterliegenden Natur der Sache">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -97269,8 +97292,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
Man kann die Struktur zwar extrahieren, aber die extrahierte Version läßt sich nicht sinnvoll in einfachereren Begriffen darstellen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735088715306" ID="ID_263857744" MODIFIED="1735088861764" TEXT="sie ist nur im speziellen Fall anwendbar und erhöht dessen Komplexität">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -97280,8 +97302,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
...insofern hier Komplexität nicht durch eine Abstraktion reduziert wurde, sondern nur durch Modularisierbarkeit und Zwischenschritte beherrschbarer gemacht wird; aber dies wird durch Generieren zusätzlicher Komplexität erkauft, was den Ansatz insgesamt in Frage stellt
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -97289,7 +97310,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1735088890536" ID="ID_1912509930" MODIFIED="1735088910847">
|
||||
<node COLOR="#435e98" CREATED="1735088890536" ID="ID_1912509930" MODIFIED="1735232777352">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -97297,19 +97318,24 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<u>Fazit</u>: <i>bite the bullet...</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<node CREATED="1735088938963" ID="ID_526104668" MODIFIED="1735088951323" TEXT="im Grunde haben wir hier ein N x M - Kontext-Problem"/>
|
||||
<node CREATED="1735088953058" ID="ID_214266111" MODIFIED="1735089069119" TEXT="so etwas läßt sich nicht durch Virtualisierung einkapseln">
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="forward"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#99006e" CREATED="1735088938963" ID="ID_526104668" MODIFIED="1735232794532" TEXT="im Grunde haben wir hier ein N x M - Kontext-Problem"/>
|
||||
<node COLOR="#5b280f" CREATED="1735088953058" ID="ID_214266111" MODIFIED="1735232812123" TEXT="so etwas läßt sich nicht durch Virtualisierung einkapseln">
|
||||
<arrowlink COLOR="#808b95" DESTINATION="ID_598416611" ENDARROW="Default" ENDINCLINATION="-413;31;" ID="Arrow_ID_278502135" STARTARROW="None" STARTINCLINATION="193;10;"/>
|
||||
<icon BUILTIN="closed"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1735088975232" ID="ID_679771852" MODIFIED="1735232966980" TEXT="Erweiterung des getypten Schemas erscheint dem gegenüber als das kleinere Übel">
|
||||
<arrowlink COLOR="#2f4dc3" DESTINATION="ID_1895704384" ENDARROW="Default" ENDINCLINATION="3;-33;" ID="Arrow_ID_768321284" STARTARROW="None" STARTINCLINATION="-86;3;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1735088975232" ID="ID_679771852" MODIFIED="1735177124298" TEXT="Erweiterung des getypten Schemas erscheint dem gegenüber als das kleinere Übel"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1735179976719" ID="ID_322289273" MODIFIED="1735186473122" TEXT="akzeptiert: das kleinste Übel realisieren">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1735180082021" ID="ID_1895704384" MODIFIED="1735186470454" TEXT="Umstellung im WeavingBuilder">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1735180082021" ID="ID_1895704384" MODIFIED="1735244906941" TEXT="Umstellung im WeavingBuilder">
|
||||
<linktarget COLOR="#2f4dc3" DESTINATION="ID_1895704384" ENDARROW="Default" ENDINCLINATION="3;-33;" ID="Arrow_ID_768321284" SOURCE="ID_679771852" STARTARROW="None" STARTINCLINATION="-86;3;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1735180095165" ID="ID_365437797" MODIFIED="1735186464181" TEXT="Funktion auf Prototype heben">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
|
|
@ -97319,17 +97345,18 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<node COLOR="#338800" CREATED="1735180141362" ID="ID_267016965" MODIFIED="1735187728844" TEXT="cross-ctor zum Wechsel des Prototype coden">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1735180184969" ID="ID_1122594888" MODIFIED="1735180355412" TEXT="builder-API: adaptParam (FUN)">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1735180184969" ID="ID_1122594888" MODIFIED="1735233392749" TEXT="builder-API: adaptParam (FUN)">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1735180359089" ID="ID_1172912698" MODIFIED="1735187755366" TEXT="Umstellung im PortBuilder">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1735180359089" ID="ID_1172912698" MODIFIED="1735244903164" TEXT="Umstellung im PortBuilder">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1735181212051" ID="ID_125700986" MODIFIED="1735188770190" TEXT="cross-ctor zum Wechsel des WeavingBuilder">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1735181233629" ID="ID_1985191791" MODIFIED="1735181641405" TEXT="builder-API">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1735181233629" ID="ID_1985191791" MODIFIED="1735236214569" TEXT="builder-API">
|
||||
<linktarget COLOR="#3c90e2" DESTINATION="ID_1985191791" ENDARROW="Default" ENDINCLINATION="-235;385;" ID="Arrow_ID_1852952623" SOURCE="ID_1227470787" STARTARROW="None" STARTINCLINATION="512;27;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1735181285893" ID="ID_922294490" MODIFIED="1735181304690" TEXT="setParam(PAR)">
|
||||
<node CREATED="1735181646685" HGAP="92" ID="ID_537303944" MODIFIED="1735181686682" TEXT="feste dropper-Funktion verwenden" VSHIFT="-1">
|
||||
<font NAME="SansSerif" SIZE="10"/>
|
||||
|
|
@ -97345,7 +97372,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<font NAME="SansSerif" SIZE="10"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1735181611673" ID="ID_55961674" MODIFIED="1735181622980" TEXT="attachParamFun(FUN)">
|
||||
<node COLOR="#435e98" CREATED="1735181611673" ID="ID_55961674" MODIFIED="1735234025195" TEXT="attachParamFun(FUN)">
|
||||
<node CREATED="1735181646685" HGAP="47" ID="ID_1130785304" MODIFIED="1735181798380" TEXT="beliebige Funktion auf TurnoutSystem" VSHIFT="-1">
|
||||
<font NAME="SansSerif" SIZE="10"/>
|
||||
</node>
|
||||
|
|
@ -97353,6 +97380,23 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1735235825819" ID="ID_340685726" MODIFIED="1735235829758" TEXT="Testfälle">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1735235055662" ID="ID_895934657" LINK="#ID_1383452569" MODIFIED="1735235856739" TEXT="Parameterbehandlung im Node-Builder">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1735245149850" ID="ID_1185930169" MODIFIED="1735245179039" TEXT="»Dropper« für fest konfigurierte Parameter-Werte">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1735245164581" ID="ID_1648154346" MODIFIED="1735245175431" TEXT="Automations-Funktion über die nominalTime">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1735235242744" ID="ID_387030013" LINK="#ID_1817704532" MODIFIED="1735244888823" TEXT="Node-Feed: Parameter Data">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1735244535909" ID="ID_1449241849" MODIFIED="1735244566899" TEXT="hier einmal ein Turnout explizit „zu Fuß“ gebaut..."/>
|
||||
<node CREATED="1735244568320" ID="ID_1640313609" MODIFIED="1735244582210" TEXT="...und auch direkt aufgerufen, ohne umschlißene ProcNode"/>
|
||||
</node>
|
||||
<node CREATED="1735235299769" ID="ID_1559115287" LINK="#ID_1305712041" MODIFIED="1735235841042" TEXT="Node-Feed: ParamNode ⟶ extraParams"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -97379,8 +97423,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
Das Pattern heißt jetzt auch MediaWeavingPattern und ist zum Standard geworden; der Build-Mechanismus im Port-Builder könnte jedes <i>dazu kompatible Pattern</i>  ebenfalls handhaben
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1728500461049" ID="ID_187214045" MODIFIED="1728500587071" TEXT="die Konvention ist : Turnout baut direkt auf WeavingPattern auf">
|
||||
|
|
@ -97420,11 +97463,36 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734139914450" ID="ID_284201304" MODIFIED="1734141541281" TEXT="Steuerung der Parameter-Verarbeitung">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734139914450" ID="ID_284201304" MODIFIED="1735245128858" TEXT="Steuerung der Parameter-Verarbeitung">
|
||||
<linktarget COLOR="#d90755" DESTINATION="ID_284201304" ENDARROW="Default" ENDINCLINATION="428;-33;" ID="Arrow_ID_1685749535" SOURCE="ID_1127056731" STARTARROW="None" STARTINCLINATION="-2201;158;"/>
|
||||
<linktarget COLOR="#a71e73" DESTINATION="ID_284201304" ENDARROW="Default" ENDINCLINATION="-170;12;" ID="Arrow_ID_170732865" SOURCE="ID_616768316" STARTARROW="None" STARTINCLINATION="150;11;"/>
|
||||
<linktarget COLOR="#c33786" DESTINATION="ID_284201304" ENDARROW="Default" ENDINCLINATION="-149;10;" ID="Arrow_ID_1396373869" SOURCE="ID_1184999563" STARTARROW="None" STARTINCLINATION="335;-34;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1735236115714" ID="ID_536087493" MODIFIED="1735236180383">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
erfolgt <i>als Teil der Konfiguration</i> eines Ports
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1735236128667" ID="ID_1783311284" MODIFIED="1735236188426">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
also <i>nachdem</i> man den Processing-Functor gegeben hat
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1735236141057" ID="ID_1227470787" MODIFIED="1735236224224" TEXT="feste oder dynamische Parameter werden unterstützt">
|
||||
<arrowlink COLOR="#3c90e2" DESTINATION="ID_1985191791" ENDARROW="Default" ENDINCLINATION="-235;385;" ID="Arrow_ID_1852952623" STARTARROW="None" STARTINCLINATION="512;27;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1734139929944" ID="ID_1156222347" MODIFIED="1734140153468" TEXT="Steuerung von In/Out-Buffer Varianten">
|
||||
<linktarget COLOR="#8f3ed0" DESTINATION="ID_1156222347" ENDARROW="Default" ENDINCLINATION="-157;11;" ID="Arrow_ID_143800943" SOURCE="ID_473579786" STARTARROW="None" STARTINCLINATION="326;-28;"/>
|
||||
|
|
@ -97476,8 +97544,11 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<font NAME="SansSerif" SIZE="11"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733428913753" ID="ID_1660514427" MODIFIED="1734877053789" TEXT="FeedPrototype mit Param-Funktor">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1733428913753" ID="ID_1660514427" MODIFIED="1735245118188" TEXT="FeedPrototype mit Param-Funktor">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1735236037343" ID="ID_232252857" LINK="#ID_1507739045" MODIFIED="1735236098239" TEXT="ermöglicht durch Umbau der FeedManifold">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733428924098" ID="ID_616768316" MODIFIED="1734140026717" TEXT="diese per Builder erzeugen können">
|
||||
<arrowlink COLOR="#a71e73" DESTINATION="ID_284201304" ENDARROW="Default" ENDINCLINATION="-170;12;" ID="Arrow_ID_170732865" STARTARROW="None" STARTINCLINATION="150;11;"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue