Invocation: for now only set flags by builder

Handling of extended attributes in conjunction with the hash
turns out to be a rather complicated topic, with some tricky fine details.
And, most important, at the moment I am lacking the proper perspective
to address it and find adequate solutions. Luckily, the cache-key is
not required at the moment, ''and so this topic will be postponed''

As a minimum to complete the diagnostics functions, it is sufficient to set
the appropriate flags in the `ProcID` directly -- and to add some convenience wrappers.
This commit is contained in:
Fischlurch 2025-02-04 00:22:55 +01:00
parent 72543a8b34
commit fa720ae975
5 changed files with 220 additions and 73 deletions

View file

@ -656,6 +656,9 @@ namespace engine {
"to perform within the scope with extended parameters"
,LERR_(BOTTOM_VALUE)};
string portSpec = "Par+"+delegatePort_->procID.genProcSpec();
ProcAttrib flags;
flags.isProxy = true;
flags.manifold = false;
using WeavingPattern = ParamWeavingPattern<SPEC>;
using TurnoutWeaving = Turnout<WeavingPattern>;
@ -664,7 +667,7 @@ namespace engine {
return NodeBuilder ( static_cast<NodeBuilder<POL,DAT>&&> (*this) // slice away PortBulder subclass data
, SizMark<sizeof(TurnoutWeaving)>{}
,// prepare a builder-λ to construct the actual Turnout-object
[procID = ProcID::describe(_Par::symbol_,portSpec)
[procID = ProcID::describe(_Par::symbol_,portSpec,flags)
,builder = move(blockBuilder_)
,postProc = move(postProcessor_)
,delegate = delegatePort_

View file

@ -364,6 +364,13 @@ namespace engine {
return ports().front().procID.genNodeSpec (leads());
}
string
ProcNodeDiagnostic::getNodeName()
{
REQUIRE (not isnil(ports()));
return ports().front().procID.genNodeName();
}
HashVal
ProcNodeDiagnostic::getNodeHash() ///< @todo not clear yet if this has to include predecessor info
{
@ -445,6 +452,12 @@ namespace engine {
return p_.procID.genProcSpec();
}
string
PortDiagnostic::getProcName()
{
return p_.procID.genProcName();
}
HashVal
PortDiagnostic::getProcHash() ///< @return as [calculated by Node-identification](\ref ProcID)
{
@ -452,4 +465,35 @@ namespace engine {
}
/* === cross-navigation === */
ProcNodeDiagnostic
ProcNodeDiagnostic::watchLead (uint leadIdx)
{
if (leadIdx >= leads().size())
throw err::Invalid{_Fmt{"Lead-# %d >= %d (available lead-nodes)."}
% leadIdx % leads().size()};
return watch (leads()[leadIdx]);
}
PortDiagnostic
ProcNodeDiagnostic::watchPort (uint portIdx)
{
if (portIdx >= ports().size())
throw err::Invalid{_Fmt{"Port-idx %d >= %d (available Ports)."}
% portIdx % ports().size()};
return watch (ports()[portIdx]);
}
PortDiagnostic
PortDiagnostic::watchLead (uint leadIdx)
{
auto& leadPorts = srcPorts();
if (leadIdx >= leadPorts.size())
throw err::Invalid{_Fmt{"Lead-Port# %d >= %d (available src-ports)."}
% leadIdx % leadPorts.size()};
return watch (leadPorts[leadIdx]);
}
}} // namespace steam::engine

View file

@ -259,6 +259,8 @@ namespace engine {
/* ========== Diagnostic and Testing ========== */
class PortDiagnostic;
class ProcNodeDiagnostic
: util::MoveOnly
{
@ -281,11 +283,15 @@ namespace engine {
///////////////////////////////////////////////////TODO 10/2024 more to verify here
}
string getNodeName(); ///< show the node's descriptive name
string getNodeSpec(); ///< generate a descriptive Spec of this ProcNode for diagnostics
HashVal getNodeHash(); ///< calculate an unique hash-key to designate this node
string getPortSpec (uint portIdx); ///< generate a descriptive diagnostic Spec for the designated Turnout
HashVal getPortHash (uint portIdx); ///< calculate an unique, stable and reproducible hash-key to identify the Turnout
ProcNodeDiagnostic watchLead(uint leadIdx);
PortDiagnostic watchPort(uint portIdx);
};
inline ProcNodeDiagnostic
@ -310,8 +316,11 @@ namespace engine {
bool isSrc() { return srcPorts().empty(); }
string getProcName(); ///< generate a combined name for the node and the qualification of the port
string getProcSpec(); ///< generate a descriptive diagnostic Spec for the Turnout sitting behind this Port
HashVal getProcHash(); ///< calculate an unique, stable and reproducible hash-key to identify the associated operation
PortDiagnostic watchLead(uint leadIdx);
};
inline PortDiagnostic

View file

@ -20,6 +20,7 @@
#include "steam/engine/proc-node.hpp"
#include "steam/engine/node-builder.hpp"
#include "lib/format-util.hpp"
#include "lib/test/test-helper.hpp"
//#include "steam/engine/test-rand-ontology.hpp" ///////////TODO
#include "lib/test/diagnostic-output.hpp"/////////////////TODO
//#include "lib/util.hpp"
@ -176,13 +177,42 @@ namespace test {
.build()};
///////////////////////////////////////////////////////TODO WIP
Port& p1 = watch(nM).ports()[0];
SHOW_EXPR(p1.procID.genProcSpec())
auto& p1src = watch(p1).srcPorts();
Port& p1s1 = p1src[0];
Port& p1s2 = p1src[1];
SHOW_EXPR(p1s1.procID.genProcSpec())
SHOW_EXPR(p1s2.procID.genProcSpec())
SHOW_EXPR(watch(nA).getNodeName())
SHOW_EXPR(watch(nA).getNodeSpec())
SHOW_EXPR(watch(nA).isSrc())
SHOW_EXPR(watch(nA).ports().size())
SHOW_EXPR(watch(nA).watchPort(0).getProcName())
SHOW_EXPR(watch(nA).watchPort(0).getProcSpec())
SHOW_EXPR(watch(nA).watchPort(1).getProcSpec())
VERIFY_FAIL ("Port-idx 2 >= 2 (available Ports)"
,watch(nA).watchPort(2));
SHOW_EXPR(watch(nB).getNodeSpec())
SHOW_EXPR(watch(nB).isSrc())
SHOW_EXPR(watch(nB).ports().size())
SHOW_EXPR(watch(nB).watchPort(0).getProcSpec())
SHOW_EXPR(watch(nB).watchPort(1).getProcSpec())
SHOW_EXPR(watch(nB).watchPort(2).getProcSpec())
SHOW_EXPR(watch(nM).getNodeName())
SHOW_EXPR(watch(nM).getNodeSpec())
SHOW_EXPR(watch(nM).ports().size())
SHOW_EXPR(watch(nM).watchPort(0).getProcName())
SHOW_EXPR(watch(nM).watchPort(1).getProcName())
SHOW_EXPR(watch(nM).watchPort(2).getProcName())
SHOW_EXPR(watch(nM).watchPort(2).getProcSpec())
SHOW_EXPR(watch(nM).watchPort(0).srcPorts().size())
SHOW_EXPR(watch(nM).watchPort(0).watchLead(0).getProcName())
SHOW_EXPR(watch(nM).watchPort(0).watchLead(1).getProcName())
SHOW_EXPR(watch(nM).watchPort(1).srcPorts().size())
SHOW_EXPR(watch(nM).watchPort(1).watchLead(0).getProcName())
SHOW_EXPR(watch(nM).watchPort(1).watchLead(1).getProcName())
SHOW_EXPR(watch(nM).watchPort(2).srcPorts().size())
SHOW_EXPR(watch(nM).watchPort(2).watchLead(0).getProcName())
SHOW_EXPR(watch(nM).watchPort(2).watchLead(1).getProcName())
SHOW_EXPR(watch(nM).watchPort(2).watchLead(1).getProcSpec())
SHOW_EXPR(watch(nM).watchPort(2).watchLead(1).isSrc())
SHOW_EXPR(watch(nM).watchPort(2).watchLead(1).srcPorts().size())
///////////////////////////////////////////////////////TODO WIP
UNIMPLEMENTED ("verify connectivity");
}

View file

@ -101948,11 +101948,15 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
<node CREATED="1728769243429" ID="ID_1535113263" MODIFIED="1728769249651" TEXT="f&#xfc;r einen Port...">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728769266173" ID="ID_664281474" MODIFIED="1728769290143" TEXT="die Identit&#xe4;t der gebundenen Funktion feststellen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1728769266173" ID="ID_664281474" MODIFIED="1738645454119" TEXT="die Identit&#xe4;t der gebundenen Funktion feststellen">
<icon BUILTIN="button_ok"/>
<node CREATED="1730425962531" ID="ID_162351868" LINK="#ID_1465368594" MODIFIED="1730426145795" TEXT="dies ist eine semantische Identit&#xe4;t">
<arrowlink COLOR="#4e40b0" DESTINATION="ID_1347337581" ENDARROW="Default" ENDINCLINATION="-14;74;" ID="Arrow_ID_507591051" STARTARROW="None" STARTINCLINATION="-4;-31;"/>
</node>
<node COLOR="#534398" CREATED="1738645368589" ID="ID_1124183685" MODIFIED="1738645445662" TEXT="man kann also nur einen Spec-String wieder zur&#xfc;ckliefern">
<font NAME="SansSerif" SIZE="11"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#338800" CREATED="1728769319538" ID="ID_1257287659" MODIFIED="1730681979010" TEXT="eine reproduzierbare symbolische Aufruf-Spec erheben">
<arrowlink COLOR="#34417f" DESTINATION="ID_786613770" ENDARROW="Default" ENDINCLINATION="-278;-1402;" ID="Arrow_ID_1689861408" STARTARROW="None" STARTINCLINATION="-284;14;"/>
@ -102707,26 +102711,26 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<arrowlink COLOR="#fdf9be" DESTINATION="ID_1514661165" ENDARROW="Default" ENDINCLINATION="-451;40;" ID="Arrow_ID_1746815334" STARTARROW="None" STARTINCLINATION="-358;-43;"/>
<icon BUILTIN="idea"/>
<node CREATED="1736266601561" ID="ID_1764393519" MODIFIED="1736266615731" TEXT="sollte als ein Test-Tool bereitgestellt werden"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736266726272" ID="ID_1019914793" MODIFIED="1736266743347" TEXT="brauche daf&#xfc;r eine Erweiterung des Port-API">
<node COLOR="#435e98" CREATED="1736266726272" ID="ID_1019914793" MODIFIED="1738645109330" TEXT="brauche daf&#xfc;r eine Erweiterung des Port-API">
<arrowlink COLOR="#4431d1" DESTINATION="ID_817734322" ENDARROW="Default" ENDINCLINATION="-13;-173;" ID="Arrow_ID_507508399" STARTARROW="None" STARTINCLINATION="33;335;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736266763928" ID="ID_1486436213" MODIFIED="1736605288823" TEXT="getInput(n) &#x27fc; optional&lt;PortRef&gt;">
<linktarget COLOR="#e5296f" DESTINATION="ID_1486436213" ENDARROW="Default" ENDINCLINATION="-752;56;" ID="Arrow_ID_351949496" SOURCE="ID_1002392068" STARTARROW="None" STARTINCLINATION="-733;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736266878204" ID="ID_767157537" MODIFIED="1736266983110" TEXT="k&#xf6;nnte aber auch ein watch(Port)-API sein">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736266900665" ID="ID_1491413287" MODIFIED="1736266980547" TEXT="dann m&#xfc;&#xdf;te es aber einen entspr. Extension-Point geben">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736266932532" ID="ID_1169427751" MODIFIED="1736266973255" TEXT="das ist einfach: partielle Spezialisierung">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1736266763928" ID="ID_1486436213" MODIFIED="1738644857327" TEXT="getInput(n) &#x27fc; optional&lt;PortRef&gt;">
<linktarget COLOR="#294fe5" DESTINATION="ID_1486436213" ENDARROW="None" ENDINCLINATION="-752;56;" ID="Arrow_ID_351949496" SOURCE="ID_1002392068" STARTARROW="None" STARTINCLINATION="-733;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736266946435" ID="ID_480998861" MODIFIED="1736266973256" TEXT="die generische Variante liefert stets NOOPT">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1736266878204" ID="ID_767157537" MODIFIED="1738644819733" TEXT="bietet auch ein watch(Port)-API">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#435e98" CREATED="1736266900665" ID="ID_1491413287" MODIFIED="1738645063436" TEXT="dann m&#xfc;&#xdf;te es aber einen entspr. Extension-Point geben">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1736266932532" ID="ID_1169427751" LINK="#ID_265360833" MODIFIED="1738644933149" TEXT="das stellt sich als ziemlich trickreiches Problem heraus....">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1736266946435" ID="ID_480998861" LINK="#ID_1858078710" MODIFIED="1738645053721" TEXT="L&#xf6;sung per low-Level-&#xbb;Backdoor&#xab; an der VTable vorbei">
<icon BUILTIN="idea"/>
</node>
</node>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1736368270752" ID="ID_246809408" MODIFIED="1736388048827">
<node BACKGROUND_COLOR="#e8d897" COLOR="#740734" CREATED="1736368270752" ID="ID_246809408" MODIFIED="1738645095327">
<richcontent TYPE="NODE"><html>
<head/>
<body>
@ -102824,7 +102828,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736391341912" ID="ID_817734322" MODIFIED="1736453634394" TEXT="Analyse: was f&#xfc;r Varianten w&#xfc;rden denn gebraucht">
<node BACKGROUND_COLOR="#d9e098" COLOR="#000699" CREATED="1736391341912" ID="ID_817734322" MODIFIED="1738645182607" TEXT="Analyse: was f&#xfc;r Varianten w&#xfc;rden denn gebraucht">
<linktarget COLOR="#4431d1" DESTINATION="ID_817734322" ENDARROW="Default" ENDINCLINATION="-13;-173;" ID="Arrow_ID_507508399" SOURCE="ID_1019914793" STARTARROW="None" STARTINCLINATION="33;335;"/>
<icon BUILTIN="info"/>
<node CREATED="1736433458484" ID="ID_196820134" MODIFIED="1736433468453" TEXT="ID-Anteile">
@ -102836,10 +102840,10 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node COLOR="#435e98" CREATED="1736433573615" ID="ID_1578933185" MODIFIED="1738532415899" TEXT="Typ-Listen"/>
</node>
</node>
<node CREATED="1736433714372" ID="ID_1214545070" MODIFIED="1736433730012" TEXT="konkrete Konfig">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736433731553" ID="ID_451988722" MODIFIED="1736433763220" TEXT="Liste der Quell-Ports">
<node CREATED="1736433714372" ID="ID_1214545070" MODIFIED="1738645160333" TEXT="konkrete Konfig">
<node BACKGROUND_COLOR="#dce5b0" COLOR="#004499" CREATED="1736433731553" ID="ID_451988722" MODIFIED="1738645160333" TEXT="Liste der Quell-Ports">
<icon BUILTIN="forward"/>
<node CREATED="1736433926440" ID="ID_823357133" MODIFIED="1736434645813" TEXT="mit reduzierter Differenzierung zug&#xe4;nglich">
<node CREATED="1736433926440" ID="ID_823357133" MODIFIED="1738645160334" TEXT="mit reduzierter Differenzierung zug&#xe4;nglich">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
@ -102974,9 +102978,21 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736445851042" ID="ID_338610694" MODIFIED="1736453621875" TEXT="Implementierung">
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1736445851042" ID="ID_338610694" MODIFIED="1738645211452" TEXT="Implementierung">
<arrowlink COLOR="#a90b08" DESTINATION="ID_968052606" ENDARROW="Default" ENDINCLINATION="-139;-705;" ID="Arrow_ID_1420066310" STARTARROW="None" STARTINCLINATION="-1107;159;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="hourglass"/>
<node COLOR="#338800" CREATED="1738645213947" ID="ID_222416249" MODIFIED="1738645268817" TEXT="Strukturen angelegt">
<font NAME="SansSerif" SIZE="10"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1738645223066" ID="ID_1655921248" MODIFIED="1738645268817" TEXT="direkten low-Level-Zugang zu den Quell-Ports geschaffen">
<font NAME="SansSerif" SIZE="10"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#d2b5af" COLOR="#5c4d6e" CREATED="1738645243679" ID="ID_1416185894" MODIFIED="1738645282537" TEXT="allgemeine Funktions-Registrierung auf sp&#xe4;ter verschoben">
<font NAME="SansSerif" SIZE="10"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
@ -105114,8 +105130,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
...braucht einen aktuellen Port-Hash, berechnet aber auf dieser Basis direkt den Beitrag der aktuell erzeugten Parameter-Werte
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#ece6a4" COLOR="#690f14" CREATED="1738620081716" ID="ID_1555844568" MODIFIED="1738620127887" TEXT="Design">
@ -105924,10 +105939,12 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736445926470" ID="ID_968052606" MODIFIED="1736453621875" TEXT="Extended-Attributes / Zusatz-Qualifikator">
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1736445926470" ID="ID_968052606" MODIFIED="1738641825863" TEXT="Extended-Attributes / Zusatz-Qualifikator">
<linktarget COLOR="#a90b08" DESTINATION="ID_968052606" ENDARROW="Default" ENDINCLINATION="-139;-705;" ID="Arrow_ID_1420066310" SOURCE="ID_338610694" STARTARROW="None" STARTINCLINATION="-1107;159;"/>
<icon BUILTIN="hourglass"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1738547010493" ID="ID_15264459" MODIFIED="1738547023525" TEXT="Achtung: mit Bedeutungen &#xfc;berladen">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738547010493" ID="ID_15264459" MODIFIED="1738641786651" TEXT="Achtung: mit Bedeutungen &#xfc;berladen">
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738547026427" ID="ID_1373153153" MODIFIED="1738547113961">
<richcontent TYPE="NODE"><html>
@ -105974,8 +105991,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453683669" ID="ID_1311023852" MODIFIED="1736453758988" TEXT="Repr&#xe4;sentation f&#xfc;r extended-attributes bereitstellen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1736453683669" FOLDED="true" ID="ID_1311023852" MODIFIED="1738641786651" TEXT="Repr&#xe4;sentation f&#xfc;r extended-attributes bereitstellen">
<icon BUILTIN="button_ok"/>
<node CREATED="1736455022905" ID="ID_479685703" MODIFIED="1736455026740" TEXT="M&#xf6;glichkeiten">
<node COLOR="#5b280f" CREATED="1736455028561" ID="ID_1453874344" MODIFIED="1736518935157" TEXT="String in key=value - Syntax">
<icon BUILTIN="button_cancel"/>
@ -106022,8 +106039,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453699380" ID="ID_809402120" MODIFIED="1736453758989" TEXT="Konfigurations-API via Builder integrieren">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1736453699380" ID="ID_809402120" MODIFIED="1738641786651" TEXT="Konfigurations-API via Builder integrieren">
<icon BUILTIN="hourglass"/>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1736453783056" ID="ID_186513914" MODIFIED="1738518068915" TEXT="Schema f&#xfc;r dynamischen Dispatch">
<arrowlink COLOR="#944855" DESTINATION="ID_1885873000" ENDARROW="Default" ENDINCLINATION="-553;27;" ID="Arrow_ID_1155704766" STARTARROW="None" STARTINCLINATION="-17;64;"/>
@ -106127,9 +106144,9 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453954937" ID="ID_1108446670" MODIFIED="1736453966483" TEXT="Diagnostik und Zusatz-Qualifikator">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738518616069" ID="ID_1917274705" MODIFIED="1738518901249" TEXT="direkter verdeckter Dispatch">
<node COLOR="#338800" CREATED="1738518616069" FOLDED="true" ID="ID_1917274705" MODIFIED="1738641723726" TEXT="direkter verdeckter Dispatch">
<linktarget COLOR="#3144ba" DESTINATION="ID_1917274705" ENDARROW="Default" ENDINCLINATION="8;62;" ID="Arrow_ID_342324675" SOURCE="ID_1349914035" STARTARROW="None" STARTINCLINATION="-34;-45;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1738518633504" ID="ID_727347425" MODIFIED="1738518645548" TEXT="zur Kollaboration mit bekannten Implementierungs-Schemata">
<node CREATED="1738518646872" ID="ID_1922816356" MODIFIED="1738518652944" TEXT="MediaWeavngPattern"/>
<node CREATED="1738518667054" ID="ID_41394617" MODIFIED="1738518672705" TEXT="ParamWeavingPattern"/>
@ -106169,13 +106186,13 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1738518837927" ID="ID_119086007" MODIFIED="1738560869556" TEXT="Dispatch auf Basis der Flags erm&#xf6;glichen">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1738518837927" ID="ID_119086007" MODIFIED="1738641653740" TEXT="Dispatch auf Basis der Flags erm&#xf6;glichen">
<icon BUILTIN="button_ok"/>
<node CREATED="1738533252216" ID="ID_395771530" MODIFIED="1738533271606" TEXT="funktioniert wie die generischen Dispatcher-Tables, nur fest-verdrahtet"/>
<node CREATED="1738533418442" ID="ID_1905552895" MODIFIED="1738533443165" TEXT="Es handelt sich um Informations-Funktionen &#x27f9; Zugang via ProcID"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1738535524778" ID="ID_2361548" MODIFIED="1738560882286" TEXT="Dispatch hinter dem Zugang">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738535532721" ID="ID_230267714" MODIFIED="1738560911866" TEXT="Problem: habe dennoch eine Differenzierung zu &#xfc;berwinden">
<node COLOR="#338800" CREATED="1738535524778" ID="ID_2361548" MODIFIED="1738641655834" TEXT="Dispatch hinter dem Zugang">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738535532721" FOLDED="true" ID="ID_230267714" MODIFIED="1738560911866" TEXT="Problem: habe dennoch eine Differenzierung zu &#xfc;berwinden">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1738535562285" ID="ID_1118497200" MODIFIED="1738535589454" TEXT="ich wei&#xdf; zwar jetzt z.B. da&#xdf; das Pattern &#xbb;Manifold&#xab; ist"/>
<node CREATED="1738535590806" ID="ID_1231646271" MODIFIED="1738535609458" TEXT="aber dennoch gibt es zig verschiedene Storage-Layouts">
@ -106233,7 +106250,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
<node COLOR="#338800" CREATED="1738552709748" ID="ID_751195601" MODIFIED="1738560950089" TEXT="Fragen der Code-Anordnung">
<icon BUILTIN="yes"/>
<node COLOR="#435e98" CREATED="1738552717851" ID="ID_908526926" MODIFIED="1738560939158" TEXT="brauche einen Low-Level-Accessor">
<node COLOR="#435e98" CREATED="1738552717851" FOLDED="true" ID="ID_908526926" MODIFIED="1738560939158" TEXT="brauche einen Low-Level-Accessor">
<node CREATED="1738552736209" ID="ID_1882145435" MODIFIED="1738552743647" TEXT="dieser mu&#xdf; eine ProcID auswerten"/>
<node CREATED="1738552744901" ID="ID_1314938956" MODIFIED="1738552763205" TEXT="und sich au&#xdf;erdem Zugang verschaffen zu Internas der Weaving-Pattern"/>
<node CREATED="1738552764381" ID="ID_1858078710" MODIFIED="1738552782990" TEXT="letztere m&#xfc;ssen diesen Zugang per friend-Klausel gestatten"/>
@ -106241,7 +106258,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<linktarget COLOR="#406f7e" DESTINATION="ID_1113348900" ENDARROW="Default" ENDINCLINATION="257;0;" ID="Arrow_ID_1008150861" SOURCE="ID_1723382198" STARTARROW="None" STARTINCLINATION="41;-120;"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1738552789850" ID="ID_644134927" MODIFIED="1738560942998" TEXT="die Implementierung mu&#xdf; in eine zentrale Translation-Unit">
<node COLOR="#435e98" CREATED="1738552789850" FOLDED="true" ID="ID_644134927" MODIFIED="1738560942998" TEXT="die Implementierung mu&#xdf; in eine zentrale Translation-Unit">
<node CREATED="1738552837650" ID="ID_752093610" MODIFIED="1738552856045" TEXT="dort m&#xfc;ssen die relevanten Weaving-Pattern-Templates includiert werden">
<icon BUILTIN="messagebox_warning"/>
</node>
@ -106306,9 +106323,10 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738518799268" ID="ID_1696634308" MODIFIED="1738518818558" TEXT="M&#xf6;glichkeit zum Setzen der Flags schaffen">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738626351341" ID="ID_176066207" MODIFIED="1738626501531" TEXT="Design schwierig zu entscheiden">
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1738518799268" ID="ID_1696634308" MODIFIED="1738641636590" TEXT="M&#xf6;glichkeit zum Setzen der Flags schaffen">
<icon BUILTIN="hourglass"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738626351341" ID="ID_176066207" MODIFIED="1738639582304" TEXT="Design schwierig zu entscheiden">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
@ -106317,6 +106335,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#a8727c" DESTINATION="ID_1338309884" ENDARROW="Default" ENDINCLINATION="-194;-52;" ID="Arrow_ID_1314857580" STARTARROW="None" STARTINCLINATION="629;0;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1738626503188" ID="ID_386805431" MODIFIED="1738626642210" TEXT="aktuell zwei zus&#xe4;tzliche Quellen absehbar">
@ -106325,28 +106344,69 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node CREATED="1738626518770" ID="ID_330079599" MODIFIED="1738626536298" TEXT="Flags &#x27f5; direkt aus dem Builder"/>
<node CREATED="1738626537536" ID="ID_1716610517" MODIFIED="1738626552618" TEXT="Qualifier &#x27f5; vom Lib-Plug-in beigesteuert"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738626650395" ID="ID_1480395867" MODIFIED="1738626735361" TEXT="&#x27f9; demnach w&#xe4;ren zwei getrennte Mechanismen vorteilhaft">
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1738626650395" FOLDED="true" ID="ID_1480395867" MODIFIED="1738641717720" TEXT="&#x27f9; demnach w&#xe4;ren zwei getrennte Mechanismen vorteilhaft">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738626672933" ID="ID_1696020609" MODIFIED="1738626725951" TEXT="zus&#xe4;tzliche Spec parsen (aus der Domain)">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#d3bfb3" COLOR="#990033" CREATED="1738626672933" ID="ID_1696020609" MODIFIED="1738639507217" TEXT="zus&#xe4;tzliche Spec parsen (aus der Domain)">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node COLOR="#5b280f" CREATED="1738627888840" ID="ID_936417255" MODIFIED="1738639431518" TEXT="Tokeniser k&#xf6;nnte jetzt schon implementiert werden">
<icon BUILTIN="hourglass"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1738628226732" ID="ID_965951615" MODIFIED="1738628233731" TEXT="Key=value, ....">
<node COLOR="#4f4398" CREATED="1738628235208" ID="ID_920693388" MODIFIED="1738628249527" TEXT="was denn sonst??">
<font NAME="SansSerif" SIZE="10"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738626687475" ID="ID_319591544" MODIFIED="1738626814756" TEXT="direkter bin&#xe4;rer) Parameter f&#xfc;r den NodeBuilder">
</node>
<node COLOR="#5b280f" CREATED="1738639311657" ID="ID_1338309884" MODIFIED="1738639573728" TEXT="Vorsicht">
<linktarget COLOR="#a8727c" DESTINATION="ID_1338309884" ENDARROW="Default" ENDINCLINATION="-194;-52;" ID="Arrow_ID_1314857580" SOURCE="ID_176066207" STARTARROW="None" STARTINCLINATION="629;0;"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1738639324038" ID="ID_748107152" MODIFIED="1738639341593" TEXT="der &#xbb;value&#xab; k&#xf6;nnte gequoted sein"/>
<node CREATED="1738639342693" ID="ID_201012931" MODIFIED="1738639353407" TEXT="oder dann aus Konsistenzgr&#xfc;nden gleich ein Spec-Term"/>
<node CREATED="1738639355727" ID="ID_1495614350" MODIFIED="1738639382147" TEXT="und: wir m&#xfc;ssen die Argumente parsen"/>
<node CREATED="1738639383358" ID="ID_1310121961" MODIFIED="1738639394608" TEXT="oder doch noch einen 3. Spec-String zulassen"/>
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1738627908039" ID="ID_1533700442" MODIFIED="1738627921268" TEXT="aber Storage und Verarbeitung auf sp&#xe4;ter verschoben">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738627923123" ID="ID_1835478170" MODIFIED="1738628215694" TEXT="dadurch w&#xfc;rde sich n&#xe4;mlich die Attribut-Storage &#xe4;ndern">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1738627937171" ID="ID_1252593350" MODIFIED="1738628206140" TEXT="und das wird dann ziemlich ekelhaft">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ich glaube nicht, da&#223; es sinnvoll ist, eine Attribut-Map als Ganzes zu de-duplizieren. Empirisch entscheiden k&#246;nnen wir das aber leider erst viel sp&#228;ter. Ja aber, was machen wir dann blo&#223;? Wenn-w&#228;re-h&#228;tte?? Die Node-Storage <b>mu&#223; unbedingt</b>&#160;klein gehalten werden. Kann aber derzeit &#252;berhaupt nicht entscheiden, ob die Vorraussetzungen f&#252;r eine <i>persistente Datenstruktur</i>&#160;(im Sinne der funktionalen Programmierung) gegeben sind....
</p>
<p>
<i><font color="#7a486c">Daher ziehe ich es vor, den Kopf in den Sand zu stecken....</font></i>
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1738626687475" ID="ID_319591544" MODIFIED="1738641589246" TEXT="direkter bin&#xe4;rer) Parameter f&#xfc;r den NodeBuilder">
<linktarget COLOR="#604c99" DESTINATION="ID_319591544" ENDARROW="Default" ENDINCLINATION="-161;8;" ID="Arrow_ID_1130885628" SOURCE="ID_1851563907" STARTARROW="None" STARTINCLINATION="157;6;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738518819705" ID="ID_1851563907" MODIFIED="1738626814756" TEXT="Flags automatisch aus dem Node-Builder setzen f&#xfc;r passende Pattern">
<node COLOR="#338800" CREATED="1738518819705" ID="ID_1851563907" MODIFIED="1738641643451" TEXT="Flags automatisch aus dem Node-Builder setzen f&#xfc;r passende Pattern">
<arrowlink COLOR="#604c99" DESTINATION="ID_319591544" ENDARROW="Default" ENDINCLINATION="-161;8;" ID="Arrow_ID_1130885628" STARTARROW="None" STARTINCLINATION="157;6;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1738641594861" HGAP="44" ID="ID_1731696681" MODIFIED="1738641616453" TEXT="mu&#xdf; erst mal nur f&#xfc;r ParamAgent anders setzen" VSHIFT="33"/>
</node>
</node>
</node>
<node CREATED="1736454444496" ID="ID_1712779274" MODIFIED="1736454493950" TEXT="Korrektheit">
<node CREATED="1736454444496" ID="ID_1712779274" MODIFIED="1738641786651" TEXT="Korrektheit">
<arrowlink COLOR="#ce3644" DESTINATION="ID_1160836625" ENDARROW="Default" ENDINCLINATION="75;-69;" ID="Arrow_ID_298743045" STARTARROW="None" STARTINCLINATION="-76;15;"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1736454504668" ID="ID_1002392068" MODIFIED="1736605288823">
<node CREATED="1736454504668" ID="ID_1002392068" MODIFIED="1738644857327">
<richcontent TYPE="NODE"><html>
<head/>
<body>
@ -106355,27 +106415,27 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#e5296f" DESTINATION="ID_1486436213" ENDARROW="Default" ENDINCLINATION="-752;56;" ID="Arrow_ID_351949496" STARTARROW="None" STARTINCLINATION="-733;0;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738518865571" ID="ID_1349914035" MODIFIED="1738518908673" TEXT="Zugriff realisiert durch &#xbb;verdeckten Dispatch&#xab;">
<arrowlink COLOR="#294fe5" DESTINATION="ID_1486436213" ENDARROW="Default" ENDINCLINATION="-752;56;" ID="Arrow_ID_351949496" STARTARROW="None" STARTINCLINATION="-733;0;"/>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1738518865571" ID="ID_1349914035" MODIFIED="1738641786652" TEXT="Zugriff realisiert durch &#xbb;verdeckten Dispatch&#xab;">
<arrowlink COLOR="#3144ba" DESTINATION="ID_1917274705" ENDARROW="Default" ENDINCLINATION="8;62;" ID="Arrow_ID_342324675" STARTARROW="None" STARTINCLINATION="-34;-45;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1738560859721" ID="ID_866197683" MODIFIED="1738609817332" TEXT="PortDiagnostic::srcPorts()">
<icon BUILTIN="idea"/>
<node COLOR="#338800" CREATED="1738560859721" ID="ID_866197683" MODIFIED="1738641786652" TEXT="PortDiagnostic::srcPorts()">
<linktarget COLOR="#587793" DESTINATION="ID_866197683" ENDARROW="Default" ENDINCLINATION="140;240;" ID="Arrow_ID_1588669375" SOURCE="ID_480573349" STARTARROW="None" STARTINCLINATION="462;-13;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1738560976256" ID="ID_1862733256" MODIFIED="1738609435877" TEXT="&#xbb;Fall-1&#xab; : Manifold-Pattern">
<node COLOR="#338800" CREATED="1738560976256" ID="ID_1862733256" MODIFIED="1738641786652" TEXT="&#xbb;Fall-1&#xab; : Manifold-Pattern">
<arrowlink COLOR="#176f59" DESTINATION="ID_1546561363" ENDARROW="Default" ENDINCLINATION="-212;0;" ID="Arrow_ID_1862669471" STARTARROW="None" STARTINCLINATION="30;3;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#3f7382" CREATED="1738561150769" HGAP="31" ID="ID_180923844" MODIFIED="1738561170969" TEXT="einfach durchgreifen..." VSHIFT="9">
<font NAME="SansSerif" SIZE="10"/>
</node>
</node>
<node COLOR="#338800" CREATED="1738560976256" ID="ID_1453988552" MODIFIED="1738609470705" TEXT="&#xbb;Fall-2&#xab; : Proxy &#x27f6; Delegate">
<node COLOR="#338800" CREATED="1738560976256" ID="ID_1453988552" MODIFIED="1738641786652" TEXT="&#xbb;Fall-2&#xab; : Proxy &#x27f6; Delegate">
<arrowlink COLOR="#176f59" DESTINATION="ID_452167360" ENDARROW="Default" ENDINCLINATION="-212;0;" ID="Arrow_ID_1149659296" STARTARROW="None" STARTINCLINATION="30;3;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#3f7382" CREATED="1738561150769" HGAP="31" ID="ID_1054469736" MODIFIED="1738609501222" TEXT="rekursiv auf dem delegate-Port aufrufen" VSHIFT="9">
<node COLOR="#3f7382" CREATED="1738561150769" HGAP="31" ID="ID_1054469736" MODIFIED="1738641786652" TEXT="rekursiv auf dem delegate-Port aufrufen" VSHIFT="9">
<font NAME="SansSerif" SIZE="10"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#692b0f" CREATED="1738609535308" HGAP="30" ID="ID_115295692" MODIFIED="1738609783150" TEXT="(geht nicht besser wegen Interface)">
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#692b0f" CREATED="1738609535308" HGAP="30" ID="ID_115295692" MODIFIED="1738641786652" TEXT="(geht nicht besser wegen Interface)">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
@ -106389,12 +106449,13 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node CREATED="1738561278208" ID="ID_1119065009" MODIFIED="1738561290442" TEXT="Adapter / Bequemer Zugang">
<node CREATED="1738561292661" ID="ID_763639641" MODIFIED="1738561316255" TEXT="von PortDiagnostic &#x27fc; PortDiagnostic"/>
<node CREATED="1738561572212" ID="ID_533015904" MODIFIED="1738561581287" TEXT="von NodeDiagnostic &#x27fc; PortDiagnostic"/>
<node COLOR="#338800" CREATED="1738561278208" ID="ID_1119065009" MODIFIED="1738643016266" TEXT="Adapter / Bequemer Zugang">
<icon BUILTIN="idea"/>
<node COLOR="#435e98" CREATED="1738561292661" ID="ID_763639641" MODIFIED="1738643004112" TEXT="von PortDiagnostic &#x27fc; PortDiagnostic"/>
<node COLOR="#435e98" CREATED="1738561572212" ID="ID_533015904" MODIFIED="1738643005811" TEXT="von NodeDiagnostic &#x27fc; PortDiagnostic"/>
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1738618417752" ID="ID_951843735" MODIFIED="1738618616535" TEXT="wohl auch f&#xfc;r Cache-Key ein &#xbb;Seiten-Zugang&#xab; notwendig">
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1738618417752" ID="ID_951843735" MODIFIED="1738641786652" TEXT="wohl auch f&#xfc;r Cache-Key ein &#xbb;Seiten-Zugang&#xab; notwendig">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
@ -148361,8 +148422,8 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738617745890" ID="ID_633737306" MODIFIED="1738618119546" TEXT="#1392 Cache-Key Datenversorgung">
<linktarget COLOR="#d04039" DESTINATION="ID_633737306" ENDARROW="Default" ENDINCLINATION="-1569;-1487;" ID="Arrow_ID_128618199" SOURCE="ID_1411259351" STARTARROW="None" STARTINCLINATION="-580;25;"/>
<linktarget COLOR="#783a55" DESTINATION="ID_633737306" ENDARROW="Default" ENDINCLINATION="-1160;-50;" ID="Arrow_ID_1295433861" SOURCE="ID_18160045" STARTARROW="None" STARTINCLINATION="-616;23;"/>
<linktarget COLOR="#d04039" DESTINATION="ID_633737306" ENDARROW="Default" ENDINCLINATION="-1569;-1487;" ID="Arrow_ID_128618199" SOURCE="ID_1411259351" STARTARROW="None" STARTINCLINATION="-580;25;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>