Invocation: able to build and invoke a simple Render Node (see: #1367)
**This is a Milestone for the Render Engine integration effort** After various rounds of prototyping and refactoring, the Render Node builder and invocation code is now able to * bind a simple function * handle arbitrary input / output and parameter types * invoke a Render Node configured with this function
This commit is contained in:
parent
9484ea0b71
commit
9f348e6944
4 changed files with 110 additions and 62 deletions
|
|
@ -239,25 +239,25 @@ namespace engine {
|
|||
return wiring_.ports[portIdx];
|
||||
}
|
||||
|
||||
/** Engine Core operation: render and pull output from this node.
|
||||
* On return, currentProcess will hold onto output buffer(s)
|
||||
* containing the calculated result frames. In case this node
|
||||
* calculates a multichannel output, only one channel can be
|
||||
* retrieved by such a \c pull() call, but you can expect data
|
||||
* of the other channels to be processed and fed to cache.
|
||||
* @param currentProcess the current processing state for
|
||||
* managing buffers and accessing current parameter values
|
||||
* @param requestedOutputNr the output channel requested
|
||||
* (in case this node delivers more than one output channel)
|
||||
* @return handle to the buffer containing the calculated result.
|
||||
|
||||
/*************************************************************//**
|
||||
* Engine Core operation: render and pull output from this node.
|
||||
* Activate the indicated Port, which may recursively pull from
|
||||
* »Lead Nodes« (predecessors) and invoke the operation embodied
|
||||
* by this node. The stack frame of this call acts as anchor
|
||||
* to hold the TurnoutSystem for parameter access and coordination.
|
||||
* @param portIdx the port (≙flavour) to activate
|
||||
* @param output a BuffHandle configured suitably to hold results
|
||||
* @param nomTime _absolute nominal Time_ to key this invocation
|
||||
* @param procKey additional process key for context parameters
|
||||
* @return handle to the buffer containing the calculated result.
|
||||
*/
|
||||
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
|
||||
BuffHandle
|
||||
pull (StateClosure_OBSOLETE& currentProcess, uint requestedOutputNr=0) const
|
||||
pull (uint portIdx, BuffHandle output, Time nomTime, ProcessKey procKey)
|
||||
{
|
||||
return this->wiringConfig_.callDown (currentProcess, requestedOutputNr);
|
||||
TurnoutSystem turnoutSystem{nomTime, procKey};
|
||||
return getPort(portIdx).weave (turnoutSystem, output);
|
||||
}
|
||||
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Rebuild the Node Invocation
|
||||
|
||||
/// „backdoor“ to watch internals from tests
|
||||
|
|
|
|||
|
|
@ -41,11 +41,14 @@
|
|||
#include "lib/time/timevalue.hpp"
|
||||
#include "lib/hetero-data.hpp"
|
||||
|
||||
#include <optional>
|
||||
|
||||
|
||||
namespace steam {
|
||||
namespace engine {
|
||||
|
||||
using lib::time::Time;
|
||||
using ProcessKey = uint64_t;
|
||||
|
||||
template<typename VAL>
|
||||
class ParamStorageFrame
|
||||
|
|
@ -65,7 +68,7 @@ namespace engine {
|
|||
{
|
||||
/////////////////////////////////////////////////////////OOO Storage: ich brauche Overflow-Buckets. KISS ==> erst mal intrusive linked List
|
||||
public:
|
||||
TurnoutSystem (Time absoluteNominalTime)
|
||||
TurnoutSystem (Time absoluteNominalTime, ProcessKey procKey =0)
|
||||
{ }
|
||||
// this is a copyable front-end object
|
||||
};
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include "lib/test/run.hpp"
|
||||
#include "steam/engine/node-builder.hpp"
|
||||
#include "steam/engine/diagnostic-buffer-provider.hpp"
|
||||
#include "lib/test/diagnostic-output.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
|
||||
|
|
@ -48,8 +49,8 @@ namespace test {
|
|||
}
|
||||
|
||||
|
||||
/** @test TODO build a simple output-only Render Node
|
||||
* @todo WIP 12/24 🔁 define ⟶ implement
|
||||
/** @test build a simple output-only Render Node
|
||||
* @todo 12/24 ✔ define ⟶ ✔ implement
|
||||
*/
|
||||
void
|
||||
build_simpleNode()
|
||||
|
|
@ -66,10 +67,18 @@ namespace test {
|
|||
CHECK (watch(node).ports().size() == 1);
|
||||
|
||||
// Prepare setup to invoke such a Render Node...
|
||||
using Buffer = long;
|
||||
BufferProvider& provider = DiagnosticBufferProvider::build();
|
||||
BuffHandle buff = provider.lockBufferFor<Buffer> (-55);
|
||||
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);
|
||||
|
||||
CHECK (LIFE_AND_UNIVERSE_4EVER == buff.accessAs<uint>());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -88751,14 +88751,14 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733525831136" ID="ID_1553180375" MODIFIED="1733527489987" TEXT="NodeBuilder_test">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1733525831136" ID="ID_1553180375" MODIFIED="1735016487972" TEXT="NodeBuilder_test">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1733525872194" ID="ID_1854723929" MODIFIED="1734881716076" TEXT="Erzeugen einzelner Nodes durch den Node-Builder">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734881717690" ID="ID_1429578563" MODIFIED="1734881733411" TEXT="Basis-Fall: einfachst mögliche Source-Node">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1734881734984" ID="ID_328505582" MODIFIED="1734881786333" TEXT="Dez.2024 : sollte mit dem inzwischen gebauten Code realisierbar sein">
|
||||
<node COLOR="#338800" CREATED="1734881717690" ID="ID_1429578563" MODIFIED="1735016485596" TEXT="Basis-Fall: einfachst mögliche Source-Node">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1734881734984" ID="ID_328505582" MODIFIED="1735016481308" TEXT="Dez.2024 : sollte mit dem inzwischen gebauten Code realisierbar sein">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1734881799312" ID="ID_657288363" MODIFIED="1734881836527" TEXT="nur eine Funktion die 42 zurückliefert">
|
||||
|
|
@ -88767,9 +88767,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1734881815740" ID="ID_162927427" MODIFIED="1734881825221" TEXT="baue eine Node">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1734893681253" ID="ID_22640844" MODIFIED="1734894128783" TEXT="der letzte Schrit bis zur Invocation...">
|
||||
<arrowlink COLOR="#462fca" DESTINATION="ID_1390040531" ENDARROW="Default" ENDINCLINATION="-1708;-131;" ID="Arrow_ID_25129790" STARTARROW="None" STARTINCLINATION="339;26;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node COLOR="#338800" CREATED="1734893681253" ID="ID_22640844" MODIFIED="1735016474202" TEXT="der letzte Schrit bis zur Invocation...">
|
||||
<arrowlink COLOR="#462fca" DESTINATION="ID_1390040531" ENDARROW="Default" ENDINCLINATION="-1708;-131;" ID="Arrow_ID_25129790" STARTARROW="None" STARTINCLINATION="353;26;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734877552951" ID="ID_1383452569" MODIFIED="1734879501751" TEXT="Parameter: fest und funktionsgeneriert">
|
||||
|
|
@ -95206,8 +95206,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238814245" ID="ID_1476280091" MODIFIED="1735004940722" TEXT="Schwierigkeit: BufferProvider im OutputSlot Protokoll">
|
||||
<linktarget COLOR="#fe512a" DESTINATION="ID_1476280091" ENDARROW="Default" ENDINCLINATION="-997;55;" ID="Arrow_ID_4728843" SOURCE="ID_1160117239" STARTARROW="None" STARTINCLINATION="-865;41;"/>
|
||||
<linktarget COLOR="#e0092c" DESTINATION="ID_1476280091" ENDARROW="Default" ENDINCLINATION="60;-97;" ID="Arrow_ID_602010804" SOURCE="ID_1319945622" STARTARROW="None" STARTINCLINATION="-541;28;"/>
|
||||
<linktarget COLOR="#fe512a" DESTINATION="ID_1476280091" ENDARROW="Default" ENDINCLINATION="-997;55;" ID="Arrow_ID_4728843" SOURCE="ID_1160117239" STARTARROW="None" STARTINCLINATION="-865;41;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1735004955001" ID="ID_393137872" MODIFIED="1735005013973" TEXT="DataSink soll ein BuffHandle liefern">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
|
|
@ -97883,17 +97883,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#fde0ca" DESTINATION="ID_1747509213" ENDARROW="Default" ENDINCLINATION="-965;-57;" ID="Arrow_ID_1729225053" SOURCE="ID_1832590841" STARTARROW="None" STARTINCLINATION="-1804;99;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1735005083801" ID="ID_1501030777" MODIFIED="1735005667664" TEXT="Weaving Pattern kann nicht mit Output-Buffern umgehen">
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1735005083801" ID="ID_1501030777" MODIFIED="1735007155303" TEXT="Weaving Pattern kann nicht mit Output-Buffern umgehen">
|
||||
<arrowlink COLOR="#cc0a6d" DESTINATION="ID_1580601333" ENDARROW="Default" ENDINCLINATION="-290;14;" ID="Arrow_ID_972000949" STARTARROW="None" STARTINCLINATION="579;-32;"/>
|
||||
<linktarget COLOR="#e3073a" DESTINATION="ID_1501030777" ENDARROW="Default" ENDINCLINATION="49;113;" ID="Arrow_ID_969824036" SOURCE="ID_1911052508" STARTARROW="None" STARTINCLINATION="-147;10;"/>
|
||||
<linktarget COLOR="#fecea8" DESTINATION="ID_1501030777" ENDARROW="Default" ENDINCLINATION="192;835;" ID="Arrow_ID_978869219" SOURCE="ID_1527577597" STARTARROW="None" STARTINCLINATION="-278;34;"/>
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734893714728" ID="ID_1390040531" MODIFIED="1734894128783" TEXT="Invocation auf Node-Level">
|
||||
<linktarget COLOR="#462fca" DESTINATION="ID_1390040531" ENDARROW="Default" ENDINCLINATION="-1708;-131;" ID="Arrow_ID_25129790" SOURCE="ID_22640844" STARTARROW="None" STARTINCLINATION="339;26;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1734894131592" ID="ID_728588148" MODIFIED="1734894183196">
|
||||
<node COLOR="#338800" CREATED="1734893714728" ID="ID_1390040531" MODIFIED="1735016474202" TEXT="Invocation auf Node-Level">
|
||||
<linktarget COLOR="#462fca" DESTINATION="ID_1390040531" ENDARROW="Default" ENDINCLINATION="-1708;-131;" ID="Arrow_ID_25129790" SOURCE="ID_22640844" STARTARROW="None" STARTINCLINATION="353;26;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#514398" CREATED="1734894131592" ID="ID_728588148" MODIFIED="1735015772507">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -97903,17 +97904,16 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734894162356" ID="ID_954098109" MODIFIED="1734894176570" TEXT="Lücke zwischen Port-API und Node-API schließen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1734894196608" ID="ID_1878550252" MODIFIED="1734894248208" TEXT="Port::weave (TurnoutSystem&, OptionalBuff)">
|
||||
<node COLOR="#338800" CREATED="1734894162356" ID="ID_954098109" MODIFIED="1735016456306" TEXT="Lücke zwischen Port-API und Node-API schließen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1734894196608" ID="ID_1878550252" MODIFIED="1735015843597" TEXT="Port::weave (TurnoutSystem&, OptionalBuff)">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1734894255065" ID="ID_13856620" MODIFIED="1734894266745" TEXT="using OptionalBuff = std::optional<BuffHandle>;"/>
|
||||
<node CREATED="1734894268221" ID="ID_678148622" MODIFIED="1734894274280" TEXT="scheee...">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734894277732" ID="ID_1911052508" MODIFIED="1735005215586">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734894277732" ID="ID_1911052508" MODIFIED="1735015801112">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -97923,10 +97923,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#e3073a" DESTINATION="ID_1501030777" ENDARROW="Default" ENDINCLINATION="49;113;" ID="Arrow_ID_969824036" STARTARROW="None" STARTINCLINATION="-147;10;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#338800" CREATED="1735015812576" HGAP="29" ID="ID_258555732" MODIFIED="1735015840806" TEXT="kann man aber für einen ersten Test direkt bereitstellen" VSHIFT="19">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734894315658" ID="ID_213775772" MODIFIED="1734894332521" TEXT="sinnvolles API für Node-Aufruf definieren">
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734894315658" ID="ID_213775772" MODIFIED="1735015312819" TEXT="sinnvolles API für Node-Aufruf definieren">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1734894367096" ID="ID_1018556500" MODIFIED="1734894382762" TEXT="use-Case...?">
|
||||
<node CREATED="1734894384363" ID="ID_337355001" MODIFIED="1734894406042" TEXT="in der RenderInvocation">
|
||||
|
|
@ -97935,12 +97938,17 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="smiley-angry"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1734894476529" ID="ID_57148001" MODIFIED="1734894492144" TEXT="ist »Testen« ein use-Case?">
|
||||
<node COLOR="#435e98" CREATED="1734894476529" ID="ID_57148001" MODIFIED="1735016082058" TEXT="ist »Testen« ein use-Case?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1734894495021" ID="ID_497362096" MODIFIED="1734894516120" TEXT="wenn ja ⟹ dann wird das ein Durchreiche-API"/>
|
||||
<node CREATED="1734894519908" ID="ID_265577496" MODIFIED="1734894532206" TEXT="wenn nein ⟹ dann wird das ein point-and-shot-API"/>
|
||||
<node CREATED="1734894558814" ID="ID_1672280670" MODIFIED="1734894571771" TEXT="in letzterem Fall würde die ProcNode das Turnout-System erzeugen"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1734894584179" ID="ID_1551226114" MODIFIED="1734894628682">
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1734894558814" ID="ID_1672280670" MODIFIED="1735016077666" TEXT="in letzterem Fall würde die ProcNode das Turnout-System erzeugen">
|
||||
<arrowlink COLOR="#2276d8" DESTINATION="ID_1551226114" ENDARROW="Default" ENDINCLINATION="11;-80;" ID="Arrow_ID_946750148" STARTARROW="None" STARTINCLINATION="-38;89;"/>
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734894584179" ID="ID_1551226114" MODIFIED="1735016066961">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -97949,9 +97957,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#2276d8" DESTINATION="ID_1551226114" ENDARROW="Default" ENDINCLINATION="11;-80;" ID="Arrow_ID_946750148" SOURCE="ID_1672280670" STARTARROW="None" STARTINCLINATION="-38;89;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1734895218741" ID="ID_1995663657" MODIFIED="1734895230611" TEXT="ich glaube daß "Ja""/>
|
||||
<node CREATED="1734895343709" ID="ID_352184052" MODIFIED="1734895434823" TEXT="Parameter: nur Zeit + Key sind unabdingbar">
|
||||
<node COLOR="#435e98" CREATED="1734895343709" ID="ID_352184052" MODIFIED="1735015866049" TEXT="Parameter: nur Zeit + Key sind unabdingbar">
|
||||
<node CREATED="1734895453486" ID="ID_1190790048" MODIFIED="1734895471874">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -97964,7 +97973,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1734895496032" ID="ID_401532717" MODIFIED="1734895505187" TEXT="vielleicht kann man den Key optional machen..."/>
|
||||
</node>
|
||||
<node CREATED="1734895543066" ID="ID_471384214" MODIFIED="1734895561164" TEXT="Bezüglich Adressierung der Exit-Node...">
|
||||
<node COLOR="#435e98" CREATED="1734895543066" ID="ID_471384214" MODIFIED="1735016004020" TEXT="Bezüglich Adressierung der Exit-Node...">
|
||||
<node CREATED="1734895566335" ID="ID_1202439993" MODIFIED="1734895589747">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -97975,8 +97984,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1734895608473" ID="ID_1542458027" MODIFIED="1734895628786" TEXT="daraus könnte man zwei Schlüsse ziehen...">
|
||||
<node CREATED="1734895631938" ID="ID_1556981026" MODIFIED="1734895648411" TEXT="Ansatz-1 : Port wird per Pointer adressierbar">
|
||||
<node COLOR="#435e98" CREATED="1734895608473" FOLDED="true" ID="ID_1542458027" MODIFIED="1735015975013" TEXT="daraus könnte man zwei Schlüsse ziehen...">
|
||||
<arrowlink COLOR="#2b44d6" DESTINATION="ID_1498059151" ENDARROW="Default" ENDINCLINATION="-121;5;" ID="Arrow_ID_735436700" STARTARROW="None" STARTINCLINATION="42;54;"/>
|
||||
<node COLOR="#5b280f" CREATED="1734895631938" ID="ID_1556981026" MODIFIED="1735015949436" TEXT="Ansatz-1 : Port wird per Pointer adressierbar">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1734895676448" ID="ID_338727472" MODIFIED="1734895687017" TEXT="damit wäre dann die ProcNode tot">
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
|
|
@ -97987,7 +97998,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="smiley-angry"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1734895649895" ID="ID_1498059151" MODIFIED="1734895669349" TEXT="Ansatz-2 : ExitNode bietet einen per Pointer aufrufbaren Closure-Funktor">
|
||||
<node CREATED="1734895649895" ID="ID_1498059151" MODIFIED="1735015954413" TEXT="Ansatz-2 : ExitNode bietet einen per Pointer aufrufbaren Closure-Funktor">
|
||||
<linktarget COLOR="#2b44d6" DESTINATION="ID_1498059151" ENDARROW="Default" ENDINCLINATION="-121;5;" ID="Arrow_ID_735436700" SOURCE="ID_1542458027" STARTARROW="None" STARTINCLINATION="42;54;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1734895815949" ID="ID_887465024" MODIFIED="1734895828440" TEXT="das wäre dann eine Art »Transport-Encoding«"/>
|
||||
<node CREATED="1734895829903" ID="ID_811772218" MODIFIED="1734895846922" TEXT="dieser Funktor würde an das Node-API delegieren"/>
|
||||
<node CREATED="1734895848158" ID="ID_370726446" MODIFIED="1734896963284" TEXT="klingt machbar aber grenzwertig...">
|
||||
|
|
@ -98088,8 +98101,11 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1735015984094" ID="ID_1828186644" MODIFIED="1735016000797" TEXT="gehe von einer Pointer-Darstellung aus">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1734900499900" ID="ID_1840118668" MODIFIED="1734900509479" TEXT="bleibt noch die Frage nach dem Output-Buffer">
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734900499900" ID="ID_1840118668" MODIFIED="1735016028777" TEXT="bleibt noch die Frage nach dem Output-Buffer">
|
||||
<node CREATED="1734900513819" ID="ID_1165605489" MODIFIED="1734900581843" TEXT="sinnvoll ist nur ein bereits geöffnetes BuffHandle">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
|
|
@ -98100,7 +98116,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node COLOR="#5b280f" CREATED="1734901125292" ID="ID_741480483" MODIFIED="1734920752327" TEXT="es braucht dann doch einen Proxy-Buffer-Provider">
|
||||
<node COLOR="#5b280f" CREATED="1734901125292" FOLDED="true" ID="ID_741480483" MODIFIED="1735016018317" TEXT="es braucht dann doch einen Proxy-Buffer-Provider">
|
||||
<arrowlink COLOR="#7b6890" DESTINATION="ID_204443476" ENDARROW="Default" ENDINCLINATION="-19;547;" ID="Arrow_ID_594871915" STARTARROW="None" STARTINCLINATION="138;-806;"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1734901329053" ID="ID_890459099" MODIFIED="1734901340477" TEXT="war mal als generischer OutputBufferProvider geplant"/>
|
||||
|
|
@ -98116,7 +98132,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1734907068755" ID="ID_1965236379" MODIFIED="1734907086890" TEXT="nein — es ist gar nichts mehr zu tun hier...">
|
||||
<node COLOR="#338800" CREATED="1734907068755" FOLDED="true" ID="ID_1965236379" MODIFIED="1735016024043" TEXT="nein — es ist gar nichts mehr zu tun hier...">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1734907088846" ID="ID_115625291" MODIFIED="1734907104411" TEXT="es gibt zwar bisher noch keine OutputSlot-Implementierung"/>
|
||||
<node CREATED="1734907109228" ID="ID_1459547775" MODIFIED="1734907155922" TEXT="nur den DiagnosticOutputSlot ⟹ DiagnosticBufferProvider"/>
|
||||
<node CREATED="1734907740525" ID="ID_98128013" MODIFIED="1734907768212" TEXT="später mal.... wird ein realer Output so einen Proxy-Provider implementieren müssen">
|
||||
|
|
@ -98124,13 +98141,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<arrowlink COLOR="#30ff00" DESTINATION="ID_579607510" ENDARROW="Default" ENDINCLINATION="35;-65;" ID="Arrow_ID_660020375" STARTARROW="None" STARTINCLINATION="-185;13;"/>
|
||||
<icon BUILTIN="smiley-oh"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d4da90" COLOR="#675d34" CREATED="1735007074581" HGAP="41" ID="ID_1527577597" MODIFIED="1735007204888" TEXT="verdammter Riecher" VSHIFT="7">
|
||||
<arrowlink COLOR="#fecea8" DESTINATION="ID_1501030777" ENDARROW="Default" ENDINCLINATION="192;835;" ID="Arrow_ID_978869219" STARTARROW="None" STARTINCLINATION="-278;34;"/>
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734903075113" ID="ID_579607510" MODIFIED="1734917024943" TEXT="Design-Übung: ProxyProvider implementieren">
|
||||
</node>
|
||||
<node COLOR="#5b280f" CREATED="1734903075113" FOLDED="true" ID="ID_579607510" MODIFIED="1735007024903" TEXT="Design-Übung: ProxyProvider implementieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Ich hatte schon angefangen, über der mögilchen Implementierung zu »brüten« und mich wieder in BufferProvider + OutputSlot eingelesen. Erst nach etwa einer Stunde ist mir aufgefallen, daß OutputSlot ja eine DataSink erzeugt, und daß diese bereits eine <font face="Monospaced" color="#572d2d">lockBufferFor(FrameID)</font>-Funktion hat, die ein (TADAA!) BuffHandle liefert. Nicht wirklich überraschend, da ich ja beide Protokolle (Buffer Provider und Output Slot) kurze Zeit nacheinander entworfen habe. Daher konnte ich wohl damals auch einen Proof-of-Concept-Test ziemlich einfach „aus dem Ärmel schütteln“...
|
||||
Ich hatte schon angefangen, über der mögilchen Implementierung zu »brüten« und mich wieder in BufferProvider + OutputSlot eingelesen. Erst nach etwa einer Stunde ist mir aufgefallen, daß OutputSlot ja eine DataSink erzeugt, und daß diese bereits eine <font color="#572d2d" face="Monospaced">lockBufferFor(FrameID)</font>-Funktion hat, die ein (TADAA!) BuffHandle liefert. Nicht wirklich überraschend, da ich ja beide Protokolle (Buffer Provider und Output Slot) kurze Zeit nacheinander entworfen habe. Daher konnte ich wohl damals auch einen Proof-of-Concept-Test ziemlich einfach „aus dem Ärmel schütteln“...
|
||||
</p>
|
||||
<p>
|
||||
|
||||
|
|
@ -98147,7 +98169,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#30ff00" DESTINATION="ID_579607510" ENDARROW="Default" ENDINCLINATION="35;-65;" ID="Arrow_ID_660020375" SOURCE="ID_1073109637" STARTARROW="None" STARTINCLINATION="-185;13;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node CREATED="1734903143791" ID="ID_1525724764" MODIFIED="1734903173828" TEXT="ein limitierter Proxy Buffer-Provider">
|
||||
<node CREATED="1734903175564" ID="ID_369683017" MODIFIED="1734903197145" TEXT="er unterstützt nicht den Registrierungs-Teil des Protokolls">
|
||||
<node CREATED="1734903949643" ID="ID_1663712950" MODIFIED="1734903975613" TEXT="das geht so nicht">
|
||||
|
|
@ -98175,8 +98198,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1734903258151" ID="ID_1229050082" MODIFIED="1734903631292" TEXT="er kann nur ein BuffHandle für eine schon vorhandene Allokation erstellen"/>
|
||||
<node CREATED="1734903289469" ID="ID_337010287" MODIFIED="1734903321330" TEXT="dieses delegiert an die Lebenszyklus-Methoden der OutputSink"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734908596668" ID="ID_1041510960" MODIFIED="1734915750510" TEXT="aufbauen per ProxyProvider_test">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1734908596668" ID="ID_1041510960" MODIFIED="1735007001606" TEXT="aufbauen per ProxyProvider_test">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1734908629671" ID="ID_1663582925" MODIFIED="1734908653800" TEXT="das ist ein Prototyping um das Design zu prüfen">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
|
|
@ -98290,8 +98313,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
allerdings war das Design nie etwas anderes als <i>vorläufig</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -98299,8 +98321,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
...denn in all honesty, die Prämisse war und ist, daß man auf dieser Basis einen echten BufferProvider implementieren können dürfen sollte
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#650099" CREATED="1734922183448" ID="ID_410220659" MODIFIED="1734963807037" TEXT="also durch die Hintertür gehen?">
|
||||
<icon BUILTIN="help"/>
|
||||
|
|
@ -98372,7 +98393,6 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1734902914418" ID="ID_848538618" MODIFIED="1734902920919" TEXT="Beschluß">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -98386,6 +98406,22 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1735015329636" ID="ID_1731327904" MODIFIED="1735015338459" TEXT="ProcNode::pull() implementieren">
|
||||
<node CREATED="1735015342958" ID="ID_1587386585" MODIFIED="1735015357287" TEXT="ProcessKey vorerst als int64_t typedef"/>
|
||||
<node CREATED="1735015361411" ID="ID_1747930116" MODIFIED="1735015378224" TEXT="Turnout-System konstruieren (macht noch nichts)"/>
|
||||
<node CREATED="1735015379901" ID="ID_1117706052" MODIFIED="1735015388020" TEXT="Port #0 aufrufen"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1735015413980" ID="ID_1103664878" LINK="#ID_657288363" MODIFIED="1735015749718" TEXT="NodeBuilder_test::build_simpleNode() mit einfachst möglicher Funktion">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1735015725930" ID="ID_1973845541" MODIFIED="1735015732805" TEXT="hat nur einen Ausgabebuffer"/>
|
||||
<node CREATED="1735015734333" ID="ID_1151070146" MODIFIED="1735015745991" TEXT="Ergebnis: 42 liegt nachher im Buffer">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#174956" COLOR="#8dfd49" CREATED="1735016105632" HGAP="19" ID="ID_1022413835" MODIFIED="1735016451205" STYLE="bubble" TEXT="Erster Durchstich" VSHIFT="14">
|
||||
<edge COLOR="#61fe5b"/>
|
||||
<font NAME="SansSerif" SIZE="22"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue