Invocation: rearrange MediaWeavingPattern storage layout
...to create an ''access path for diagnostics'' and further evaluations while ''bypassing the VTable.'' It is a well-known downside of specifically typed, highly optimisable template-based code to create a dangerous leverage for generating spurious, mostly identical virtual function instances added for secondary concerns. Thus it is a consequence of this design choice, either to forego some diagnostic and analytical possibilities, or to exploit ''other means'' for retrieving internal data, which is needed for tangential purposes only. The solution pursued hereby exploits similar layout of various ''weaving pattern'' template instances to create an ''access backdoor'' for use cases beyond the primary performance-critical path.
This commit is contained in:
parent
ead494e465
commit
bcdcb36615
5 changed files with 351 additions and 55 deletions
|
|
@ -175,16 +175,18 @@ namespace engine {
|
|||
*/
|
||||
template<class INVO>
|
||||
struct MediaWeavingPattern
|
||||
: INVO
|
||||
: util::NonCopyable
|
||||
{
|
||||
using Feed = typename INVO::Feed;
|
||||
|
||||
static_assert (_verify_usable_as_InvocationAdapter<Feed>());
|
||||
|
||||
Several<PortRef> leadPort;
|
||||
Several<BuffDescr> outTypes;
|
||||
Several<PortRef> leadPort_;
|
||||
Several<BuffDescr> outTypes_;
|
||||
|
||||
uint resultSlot{0};
|
||||
uint resultSlot_{0};
|
||||
|
||||
INVO prototype_;
|
||||
|
||||
/** forwarding-ctor to provide the detailed input/output connections */
|
||||
template<typename...ARGS>
|
||||
|
|
@ -192,28 +194,28 @@ namespace engine {
|
|||
,Several<BuffDescr>&& dr
|
||||
,uint resultIdx
|
||||
,ARGS&& ...args)
|
||||
: INVO{forward<ARGS>(args)...}
|
||||
, leadPort{move(pr)}
|
||||
, outTypes{move(dr)}
|
||||
, resultSlot{resultIdx}
|
||||
: leadPort_{move(pr)}
|
||||
, outTypes_{move(dr)}
|
||||
, resultSlot_{resultIdx}
|
||||
, prototype_{forward<ARGS>(args)...}
|
||||
{ }
|
||||
|
||||
|
||||
Feed
|
||||
mount (TurnoutSystem& turnoutSys)
|
||||
{
|
||||
ENSURE (leadPort.size() <= INVO::FAN_I);
|
||||
ENSURE (outTypes.size() <= INVO::FAN_O);
|
||||
return INVO::buildFeed (turnoutSys);
|
||||
ENSURE (leadPort_.size() <= INVO::FAN_I);
|
||||
ENSURE (outTypes_.size() <= INVO::FAN_O);
|
||||
return prototype_.buildFeed (turnoutSys);
|
||||
}
|
||||
|
||||
void
|
||||
pull (Feed& feed, TurnoutSystem& turnoutSys)
|
||||
{
|
||||
if constexpr (Feed::hasInput())
|
||||
for (uint i=0; i<leadPort.size(); ++i)
|
||||
for (uint i=0; i<leadPort_.size(); ++i)
|
||||
{
|
||||
BuffHandle inputData = leadPort[i].get().weave (turnoutSys);
|
||||
BuffHandle inputData = leadPort_[i].get().weave (turnoutSys);
|
||||
feed.inBuff.createAt(i, move(inputData));
|
||||
}
|
||||
}
|
||||
|
|
@ -221,11 +223,11 @@ namespace engine {
|
|||
void
|
||||
shed (Feed& feed, TurnoutSystem&, OptionalBuff outBuff)
|
||||
{
|
||||
for (uint i=0; i<outTypes.size(); ++i)
|
||||
for (uint i=0; i<outTypes_.size(); ++i)
|
||||
{
|
||||
BuffHandle resultData =
|
||||
i == resultSlot and outBuff? *outBuff
|
||||
: outTypes[i].lockBuffer();
|
||||
i == resultSlot_ and outBuff? *outBuff
|
||||
: outTypes_[i].lockBuffer();
|
||||
feed.outBuff.createAt(i, move(resultData));
|
||||
}
|
||||
feed.connect();
|
||||
|
|
@ -241,20 +243,27 @@ namespace engine {
|
|||
fix (Feed& feed, TurnoutSystem&)
|
||||
{
|
||||
if constexpr (Feed::hasInput())
|
||||
for (uint i=0; i<leadPort.size(); ++i)
|
||||
for (uint i=0; i<leadPort_.size(); ++i)
|
||||
{
|
||||
feed.inBuff[i].release();
|
||||
}
|
||||
for (uint i=0; i<outTypes.size(); ++i)
|
||||
for (uint i=0; i<outTypes_.size(); ++i)
|
||||
{
|
||||
feed.outBuff[i].emit(); // state transition: data ready
|
||||
if (i != resultSlot)
|
||||
if (i != resultSlot_)
|
||||
feed.outBuff[i].release();
|
||||
}
|
||||
ENSURE (resultSlot < INVO::FAN_O, "invalid result buffer configured.");
|
||||
return feed.outBuff[resultSlot];
|
||||
ENSURE (resultSlot_ < INVO::FAN_O, "invalid result buffer configured.");
|
||||
return feed.outBuff[resultSlot_];
|
||||
}
|
||||
|
||||
|
||||
/** @internal expose data not dependent on the template params */
|
||||
friend auto
|
||||
_accessInternal(MediaWeavingPattern& patt)
|
||||
{
|
||||
return std::tie (patt.leadPort_, patt.outTypes_);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -364,6 +364,14 @@ namespace engine {
|
|||
turnoutSys.detachChainBlock(feed.block());
|
||||
return *feed.outBuff;
|
||||
}
|
||||
|
||||
|
||||
/** @internal expose data not dependent on the template params */
|
||||
friend auto
|
||||
_accessInternal(ParamWeavingPattern& patt)
|
||||
{
|
||||
return std::tie (patt.delegatePort_);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -108,6 +108,7 @@ namespace engine {
|
|||
* combined and processed to yield the results; actually this implementation
|
||||
* is assembled from several building blocks, in accordance to the specific
|
||||
* situation as established by the _Builder_ for a given render node.
|
||||
* @warning please ensure \ref _TurnoutDiagnostic remains _layout compatible_
|
||||
*/
|
||||
template<class PAT>
|
||||
class Turnout
|
||||
|
|
@ -140,7 +141,38 @@ namespace engine {
|
|||
return PAT::fix (feed, turnoutSys);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @internal »Backdoor« for diagnostic
|
||||
* @warning must be kept **layout compatible** with Turnout
|
||||
*/
|
||||
template<class PAT>
|
||||
class _TurnoutDiagnostic
|
||||
: public Port
|
||||
, public PAT
|
||||
{
|
||||
BuffHandle
|
||||
weave (TurnoutSystem&, OptionalBuff =std::nullopt) override
|
||||
{
|
||||
throw err::Fatal{"Diagnostic class -- must not be invoked"};
|
||||
}
|
||||
|
||||
public:
|
||||
/**
|
||||
* Access to internals of the _Weaving Pattern_ bypassing the VTable.
|
||||
* @remark a huge number of different _Weaving Pattern instances_ will be created,
|
||||
* as result of implementing render functionality by delegating to some
|
||||
* external media processing library. Each time, a highly optimised and
|
||||
* tailored instance of Turnout::weave() is generated. However, by all
|
||||
* means we must avoid generating additional repetitive generic code,
|
||||
* which is only used occasionally and for unit-testing.
|
||||
* Rather, with the help of this »backdoor«, diagnostic code can exploit
|
||||
* the similar basic layout of weaving pattern templates to gain access
|
||||
* to some common infrastructure, notably the predecessor ports.
|
||||
*/
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ namespace test {
|
|||
{
|
||||
Time nomTime{rani(10'000),0}; // drive test with a random »nominal Time« <10s with ms granularity
|
||||
TurnoutSystem invoker{nomTime}; // a time spec is mandatory, all further parameters are optional
|
||||
////////////////////////////////OOO unfinished - demonstrate simple accesses to the TurnoutSystem
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -85267,7 +85267,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1735064599178" ID="ID_152831343" MODIFIED="1735064621219" TEXT="Konsequenz ⟹ Builder steuert Parameter via FeedPrototype"/>
|
||||
<node CREATED="1735064599178" ID="ID_152831343" MODIFIED="1738549832859" TEXT="Konsequenz ⟹ Builder steuert Parameter via FeedPrototype">
|
||||
<arrowlink COLOR="#476d81" DESTINATION="ID_335336619" ENDARROW="Default" ENDINCLINATION="1464;-35;" ID="Arrow_ID_1855832580" STARTARROW="None" STARTINCLINATION="417;0;"/>
|
||||
</node>
|
||||
<node CREATED="1735064622575" ID="ID_873434155" MODIFIED="1735323528683" TEXT="Ansatzpunkt auf dem Port-Builder">
|
||||
<arrowlink COLOR="#8595a8" DESTINATION="ID_1218064070" ENDARROW="Default" ENDINCLINATION="-31;-184;" ID="Arrow_ID_1907314003" STARTARROW="None" STARTINCLINATION="-219;19;"/>
|
||||
<node CREATED="1735064673697" ID="ID_1825450032" MODIFIED="1735064771303" TEXT="brauche Quer-Schwenk auf schon bestehendem (vollen) PortBuilder">
|
||||
|
|
@ -94606,10 +94608,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1720652126344" ID="ID_1079595557" MODIFIED="1720652143498" TEXT="Lösung-2 : auf dem Stack">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1720652126344" ID="ID_1079595557" MODIFIED="1738549482929" TEXT="Lösung-2 : auf dem Stack">
|
||||
<linktarget COLOR="#5698c3" DESTINATION="ID_1079595557" ENDARROW="Default" ENDINCLINATION="-7;22;" ID="Arrow_ID_163927740" SOURCE="ID_923963620" STARTARROW="None" STARTINCLINATION="-723;36;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1720652168706" ID="ID_61021108" MODIFIED="1720652178085" TEXT="dann muß er dort instantiiert werden"/>
|
||||
<node CREATED="1720652904597" ID="ID_1630555344" MODIFIED="1720652921519" TEXT="z.B. von der mount()-Funktion"/>
|
||||
<node CREATED="1720652181026" ID="ID_1177474866" MODIFIED="1720652198764" TEXT="und muß überall hin als Parameter mit durchgereicht werden"/>
|
||||
<node CREATED="1738549490982" ID="ID_1949032708" MODIFIED="1738549500649" TEXT="Vorteil: explizit, klar und flexibel"/>
|
||||
</node>
|
||||
<node CREATED="1720652297556" ID="ID_99466681" MODIFIED="1720652307387" TEXT="Lösung-3 : in einem speziellen Buffer">
|
||||
<node CREATED="1720652348450" ID="ID_1289118401" MODIFIED="1720652831377" TEXT="würde durchaus gehen (und zwar ohne Indirektion)">
|
||||
|
|
@ -94649,9 +94654,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1720657118372" ID="ID_963823658" MODIFIED="1720657177004" TEXT="sie wird aber nur voll wirksam in Turnout::weave()"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1720657178980" ID="ID_347915086" MODIFIED="1736091833353" TEXT="Lösung-5 : von FeedManifold erben">
|
||||
<linktarget COLOR="#fffddd" DESTINATION="ID_347915086" ENDARROW="Default" ENDINCLINATION="3;42;" ID="Arrow_ID_1339344530" SOURCE="ID_305379370" STARTARROW="None" STARTINCLINATION="-126;5;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1720657178980" ID="ID_347915086" MODIFIED="1738549461852" TEXT="Lösung-5 : von FeedManifold erben">
|
||||
<linktarget COLOR="#fffddd" DESTINATION="ID_347915086" ENDARROW="Default" ENDINCLINATION="4;-18;" ID="Arrow_ID_1339344530" SOURCE="ID_305379370" STARTARROW="None" STARTINCLINATION="-124;-5;"/>
|
||||
<node CREATED="1720657208504" ID="ID_1916344427" MODIFIED="1720657315474" TEXT="etwas eleganter da die Parameter-Übergabe wegfällt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
|
|
@ -94664,7 +94668,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1720657316762" ID="ID_496227174" MODIFIED="1720657331723" TEXT="macht aber die Anforderungen für den Lib-Adapter komplexer"/>
|
||||
<node CREATED="1720657350412" ID="ID_305379370" MODIFIED="1720657899136" TEXT="man könnte hier aber ggfs auch in ein Baukasten-System einsteigen">
|
||||
<arrowlink COLOR="#fffddd" DESTINATION="ID_347915086" ENDARROW="Default" ENDINCLINATION="3;42;" ID="Arrow_ID_1339344530" STARTARROW="None" STARTINCLINATION="-126;5;"/>
|
||||
<arrowlink COLOR="#fffddd" DESTINATION="ID_347915086" ENDARROW="Default" ENDINCLINATION="4;-18;" ID="Arrow_ID_1339344530" STARTARROW="None" STARTINCLINATION="-124;-5;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1720657389295" ID="ID_1877085698" MODIFIED="1720657407157" TEXT="eine gewisse Basis-Verdrahtung wird jeder Aufruf brauchen"/>
|
||||
<node CREATED="1720657414308" ID="ID_1844002789" MODIFIED="1720706651721" TEXT="man würde damit gleich auch den Standard-Fall dokumentieren">
|
||||
|
|
@ -94673,6 +94677,22 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1720657429677" ID="ID_1435197133" MODIFIED="1720657454373" TEXT="der Lib-Adapter kann aber Spezialisierungen darüber bauen"/>
|
||||
<node CREATED="1720657457921" ID="ID_903330536" MODIFIED="1720657469544" TEXT="oder letztlich doch ganz anders vorgehen (es ist ja generischer Code)"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1738549331204" ID="ID_1657309296" MODIFIED="1738549350873" TEXT="das war die Lösung ⟶ und dann doch nicht">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1738549355628" ID="ID_610852932" MODIFIED="1738549370202" TEXT="dieser Ansatz brachte den »Durchbruch«"/>
|
||||
<node CREATED="1738549371342" ID="ID_48209409" MODIFIED="1738549390368" TEXT="letztlich sind dann aber InvocationAdapter und FeedManifold verschmolzen"/>
|
||||
<node CREATED="1738549391739" ID="ID_335336619" MODIFIED="1738549799591" TEXT="und gehen nun beide zusammen aus einem FeedPrototype hervor">
|
||||
<linktarget COLOR="#476d81" DESTINATION="ID_335336619" ENDARROW="Default" ENDINCLINATION="1464;-35;" ID="Arrow_ID_1855832580" SOURCE="ID_152831343" STARTARROW="None" STARTINCLINATION="417;0;"/>
|
||||
<linktarget COLOR="#4f6988" DESTINATION="ID_335336619" ENDARROW="Default" ENDINCLINATION="1514;0;" ID="Arrow_ID_1821666531" SOURCE="ID_322789953" STARTARROW="None" STARTINCLINATION="1033;0;"/>
|
||||
<linktarget COLOR="#3f5f9a" DESTINATION="ID_335336619" ENDARROW="Default" ENDINCLINATION="493;21;" ID="Arrow_ID_1206921858" SOURCE="ID_1618027387" STARTARROW="None" STARTINCLINATION="470;0;"/>
|
||||
</node>
|
||||
<node CREATED="1738549416339" ID="ID_682224491" MODIFIED="1738550032719" TEXT="der Mix-in-Ansatz wurde dadurch letztlich überflüssig (was gut ist)">
|
||||
<linktarget COLOR="#4f5888" DESTINATION="ID_682224491" ENDARROW="Default" ENDINCLINATION="-1236;54;" ID="Arrow_ID_1568439843" SOURCE="ID_727715872" STARTARROW="None" STARTINCLINATION="760;-597;"/>
|
||||
</node>
|
||||
<node CREATED="1738549433742" ID="ID_923963620" MODIFIED="1738549488904" TEXT="und ich zog die Explizitheit eines Objekts auf dem Stack vor">
|
||||
<arrowlink COLOR="#5698c3" DESTINATION="ID_1079595557" ENDARROW="Default" ENDINCLINATION="-7;22;" ID="Arrow_ID_163927740" STARTARROW="None" STARTINCLINATION="-723;36;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#d41d27" CREATED="1720705953643" ID="ID_737601994" MODIFIED="1736091848893" TEXT="Problem: weitgehend offen und undefiniert">
|
||||
|
|
@ -100726,7 +100746,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#0299c0" DESTINATION="ID_1127056731" ENDARROW="Default" ENDINCLINATION="-1257;-48;" ID="Arrow_ID_1717201620" SOURCE="ID_1364724277" STARTARROW="None" STARTINCLINATION="-908;50;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1736038966051" ID="ID_864062784" MODIFIED="1736038996147" TEXT="haben nun einen »Feed Prototype« im MediaWeavingPattern eingebettet"/>
|
||||
<node CREATED="1736038997423" ID="ID_1618027387" MODIFIED="1736039025215" TEXT="dieser enthält die Bau-Anleitung für die Feed-Manifold"/>
|
||||
<node CREATED="1736038997423" ID="ID_1618027387" MODIFIED="1738549840837" TEXT="dieser enthält die Bau-Anleitung für die Feed-Manifold">
|
||||
<arrowlink COLOR="#3f5f9a" DESTINATION="ID_335336619" ENDARROW="Default" ENDINCLINATION="493;21;" ID="Arrow_ID_1206921858" STARTARROW="None" STARTINCLINATION="470;0;"/>
|
||||
</node>
|
||||
<node CREATED="1736039026592" ID="ID_1929400746" MODIFIED="1736039037875" TEXT="und zusätzlich / optional einen Parameter-Functor"/>
|
||||
<node CREATED="1736039039923" ID="ID_348395437" MODIFIED="1736039360054" TEXT="Außerdem wurde ein spezielles Param-Agent-Node-Schema definiert">
|
||||
<arrowlink COLOR="#87a8af" DESTINATION="ID_736958022" ENDARROW="Default" ENDINCLINATION="72;477;" ID="Arrow_ID_699899530" STARTARROW="None" STARTINCLINATION="-1970;83;"/>
|
||||
|
|
@ -100859,7 +100881,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<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="button_ok"/>
|
||||
<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="1735070078355" ID="ID_322789953" MODIFIED="1738549822027" TEXT="...der wiederum in das MediaWeavingPattern eingebettet wird">
|
||||
<arrowlink COLOR="#4f6988" DESTINATION="ID_335336619" ENDARROW="Default" ENDINCLINATION="1514;0;" ID="Arrow_ID_1821666531" STARTARROW="None" STARTINCLINATION="1033;0;"/>
|
||||
</node>
|
||||
<node CREATED="1735070096196" ID="ID_81762855" MODIFIED="1735070200862">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -102799,10 +102823,10 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<node CREATED="1736433458484" ID="ID_196820134" MODIFIED="1736433468453" TEXT="ID-Anteile">
|
||||
<node COLOR="#435e98" CREATED="1736433469774" ID="ID_1116337144" MODIFIED="1736605160936" TEXT="procName"/>
|
||||
<node COLOR="#435e98" CREATED="1736433474506" ID="ID_307816036" MODIFIED="1736605160936" TEXT="procSpec"/>
|
||||
<node CREATED="1736433553250" ID="ID_1633133909" LINK="#ID_445490716" MODIFIED="1736632861665" TEXT="durch Parsen zugänglich">
|
||||
<node CREATED="1736433561025" ID="ID_1814273505" MODIFIED="1736433564605" TEXT="Fan-in"/>
|
||||
<node CREATED="1736433566073" ID="ID_1536576559" MODIFIED="1736433570315" TEXT="Fan-out"/>
|
||||
<node CREATED="1736433573615" ID="ID_1578933185" MODIFIED="1736433580919" TEXT="Typ-Listen"/>
|
||||
<node COLOR="#338800" CREATED="1736433553250" ID="ID_1633133909" LINK="#ID_445490716" MODIFIED="1738532425737" TEXT="durch Parsen zugänglich">
|
||||
<node COLOR="#435e98" CREATED="1736433561025" ID="ID_1814273505" MODIFIED="1738532415899" TEXT="Fan-in"/>
|
||||
<node COLOR="#435e98" CREATED="1736433566073" ID="ID_1536576559" MODIFIED="1738532415899" TEXT="Fan-out"/>
|
||||
<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">
|
||||
|
|
@ -104811,7 +104835,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<arrowlink COLOR="#a5075a" DESTINATION="ID_1997478599" ENDARROW="Default" ENDINCLINATION="-1987;137;" ID="Arrow_ID_830705993" STARTARROW="None" STARTINCLINATION="118;7;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238814245" HGAP="34" ID="ID_320753034" MODIFIED="1734197120171" TEXT="Gefahr für Template-Bloat im Media-Lib-Plug-in" VSHIFT="-1">
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238814245" HGAP="34" ID="ID_320753034" MODIFIED="1738518749622" TEXT="Gefahr für Template-Bloat im Media-Lib-Plug-in" VSHIFT="-1">
|
||||
<linktarget COLOR="#f94771" DESTINATION="ID_320753034" ENDARROW="None" ENDINCLINATION="1267;-43;" ID="Arrow_ID_735039883" SOURCE="ID_1378608706" STARTARROW="None" STARTINCLINATION="-749;52;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
|
|
@ -104876,6 +104900,10 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<node CREATED="1738546791195" ID="ID_1427051818" MODIFIED="1738546843159" TEXT="hier zeigt sich eine Tendenz, Bedeutungen zu überladen"/>
|
||||
<node CREATED="1738546821502" ID="ID_1638082833" MODIFIED="1738547768337" TEXT="Node-Metadaten sollen »offene Rest-Probleme« lösen">
|
||||
<arrowlink COLOR="#e6165b" DESTINATION="ID_34946402" ENDARROW="Default" ENDINCLINATION="908;-37;" ID="Arrow_ID_1661388795" STARTARROW="None" STARTINCLINATION="590;28;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238837562" HGAP="14" ID="ID_286044031" MODIFIED="1730500771786" STYLE="bubble" TEXT="ungelöst: Fehler-Diagnose" VSHIFT="7">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -105346,7 +105374,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1736632885429" ID="ID_1285666886" MODIFIED="1738516458294" TEXT="in Input / Output-Teil zerlegen">
|
||||
<node COLOR="#338800" CREATED="1736632885429" FOLDED="true" ID="ID_1285666886" MODIFIED="1738517957788" TEXT="in Input / Output-Teil zerlegen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1736637886757" ID="ID_1642918073" MODIFIED="1736637912343" TEXT="Mist! muß Klammerung parsen"/>
|
||||
<node CREATED="1736638440539" ID="ID_764410464" MODIFIED="1736638458389" TEXT="ja dann — werden wir gliech parsen!">
|
||||
|
|
@ -105434,7 +105462,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1738332756317" ID="ID_908054156" MODIFIED="1738516455105" TEXT="Argument-Auswertung implementieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1738332766392" ID="ID_1638579640" MODIFIED="1738516477005" TEXT="Code-Anordnung">
|
||||
<node COLOR="#435e98" CREATED="1738332766392" FOLDED="true" ID="ID_1638579640" MODIFIED="1738517942203" TEXT="Code-Anordnung">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738332780351" ID="ID_1622923755" MODIFIED="1738335786356" TEXT="aus ProcNode.hpp heraushalten">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
|
|
@ -105479,7 +105507,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1738347634026" ID="ID_891035798" MODIFIED="1738449453574" TEXT="ArgumentModel anlegen">
|
||||
<node COLOR="#338800" CREATED="1738347634026" FOLDED="true" ID="ID_891035798" MODIFIED="1738517932196" TEXT="ArgumentModel anlegen">
|
||||
<linktarget COLOR="#578494" DESTINATION="ID_891035798" ENDARROW="Default" ENDINCLINATION="46;331;" ID="Arrow_ID_982442559" SOURCE="ID_1594772328" STARTARROW="None" STARTINCLINATION="13;-499;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#5b280f" CREATED="1738347643696" ID="ID_522386929" MODIFIED="1738347656236" TEXT="vector-Storage">
|
||||
|
|
@ -105667,7 +105695,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1736632908578" ID="ID_1359149203" MODIFIED="1738510154732" TEXT="Argument-Token-Sequenz bereitstellen">
|
||||
<node COLOR="#338800" CREATED="1736632908578" FOLDED="true" ID="ID_1359149203" MODIFIED="1738517955969" TEXT="Argument-Token-Sequenz bereitstellen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#5b280f" CREATED="1736633418536" FOLDED="true" ID="ID_1128683976" MODIFIED="1738280806304" TEXT="Regular-Expressions (nach Schema-F)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -105856,6 +105884,56 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736445926470" ID="ID_968052606" MODIFIED="1736453621875" 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="pencil"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1738547010493" ID="ID_15264459" MODIFIED="1738547023525" TEXT="Achtung: mit Bedeutungen überladen">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738547026427" ID="ID_1373153153" MODIFIED="1738547113961">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>Extended Attributes</i> sollen diverse anderweitige Beschränkungen auffangen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1738547056214" ID="ID_34946402" MODIFIED="1738547768337" TEXT="Sie ermöglichen eine initiale Festlegung ohne vollständige Kenntnis des Sachverhalts">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Wenn ein komplexer Sachverhalt überhaupt erst erschlossen werden soll, durch das Aufbauen einer orientierenden Struktur, so muß ein Vorgriff gemacht werden, der leider nur in den seltensten Fällen der Sache adäquat ist. Infolgedessen ist man dann an untaugliche Strukturen gebunden, deren Reparatur zu kostspielig wäre. Stattdessen hilft man sich mit darüber gelegten Layern, die Metadaten und erweiterte Attribute als Ankerpunkt verwenden
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<linktarget COLOR="#e6165b" DESTINATION="ID_34946402" ENDARROW="Default" ENDINCLINATION="908;-37;" ID="Arrow_ID_1661388795" SOURCE="ID_1638082833" STARTARROW="None" STARTINCLINATION="590;28;"/>
|
||||
</node>
|
||||
<node CREATED="1738547123718" HGAP="30" ID="ID_1111160527" MODIFIED="1738547687404" VSHIFT="-11">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<u>Design-Paradoxon</u>: das Design besonders relevanter Funktionalität ist selten adäquat
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238837562" HGAP="73" ID="ID_341926402" MODIFIED="1738548361793" STYLE="bubble" TEXT="überladen mit widersprüchlichen Bedeutungen" VSHIFT="28">
|
||||
<edge COLOR="#ff5d00" STYLE="sharp_linear"/>
|
||||
<arrowlink COLOR="#fe512a" DESTINATION="ID_1871507162" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_1710234227" STARTARROW="None" STARTINCLINATION="-877;51;"/>
|
||||
<linktarget COLOR="#de3870" DESTINATION="ID_341926402" ENDARROW="Default" ENDINCLINATION="-31;45;" ID="Arrow_ID_529164217" SOURCE="ID_423467767" STARTARROW="None" STARTINCLINATION="-865;-25;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1721239003353" ID="ID_785237092" MODIFIED="1738548255872" STYLE="fork" TEXT="Metadaten / Extended Attributes sollen Neben-Probleme auffangen">
|
||||
<font NAME="SansSerif" SIZE="8"/>
|
||||
</node>
|
||||
<node CREATED="1738548277074" ID="ID_290350772" MODIFIED="1738548315821" STYLE="fork" TEXT="damit wird Unmögliches und Widersprüchliches doch noch irgendwie ermöglicht">
|
||||
<edge COLOR="#ff5d00" STYLE="sharp_linear" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="8"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453683669" ID="ID_1311023852" MODIFIED="1736453758988" TEXT="Repräsentation für extended-attributes bereitstellen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1736455022905" ID="ID_479685703" MODIFIED="1736455026740" TEXT="Möglichkeiten">
|
||||
|
|
@ -105907,13 +105985,20 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453699380" ID="ID_809402120" MODIFIED="1736453758989" TEXT="Konfigurations-API via Builder integrieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453783056" ID="ID_186513914" MODIFIED="1736453791543" TEXT="Schema für dynamischen Dispatch">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1736453783056" ID="ID_186513914" MODIFIED="1738518068915" TEXT="Schema für dynamischen Dispatch">
|
||||
<arrowlink COLOR="#944855" DESTINATION="ID_1885873000" ENDARROW="Default" ENDINCLINATION="-553;27;" ID="Arrow_ID_1155704766" STARTARROW="None" STARTINCLINATION="-17;64;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453849801" ID="ID_708185484" MODIFIED="1736453867637" TEXT="Definition und Einbindung von Zusatz-Funktionen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1736517050324" ID="ID_962992559" MODIFIED="1736517067149" TEXT="ProcID stellt Funktions-Registry/Dispatch als Service bereit"/>
|
||||
<node CREATED="1736517117210" ID="ID_1356796355" MODIFIED="1736517129532" TEXT="außerdem gibt es Kombinatoren für Hash-IDs"/>
|
||||
<node CREATED="1736517068377" ID="ID_931826770" MODIFIED="1736517136406" TEXT="aber Aufrufer ist allein für die sinnvolle Verknüpfung verantwortlich">
|
||||
<node CREATED="1738533130534" ID="ID_333532704" MODIFIED="1738533135893" TEXT="Funktionsweise">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1738533153237" ID="ID_1429654028" MODIFIED="1738533171127" TEXT="feste Zugangs-Funktion mit fester Signatur"/>
|
||||
<node CREATED="1738533172235" ID="ID_511748278" MODIFIED="1738533190149" TEXT="Dispatcher sitzt dahinter, eingekapselt in eine Tranlation-Unit"/>
|
||||
<node CREATED="1738533207318" ID="ID_316198674" MODIFIED="1738533228277" TEXT="Argument ProcID ⟶ Hash ⟶ hinten rum Funktion aufrufen"/>
|
||||
</node>
|
||||
<node CREATED="1736517068377" ID="ID_931826770" MODIFIED="1738533127365" TEXT="Aufrufer ist allein für die sinnvolle Verknüpfung verantwortlich">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1736517164778" ID="ID_1005387710" MODIFIED="1736517549085" TEXT="zwangsläufig — Interface-Mechanismen umgangen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -105965,31 +106050,179 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<node CREATED="1736519225707" ID="ID_956380809" MODIFIED="1736519256762" TEXT="also ist die ProcID direkt mit den Informationsfunktionen involviert"/>
|
||||
<node CREATED="1736519265390" ID="ID_1749861706" MODIFIED="1736519291830" TEXT="es können Abkürzungs-Möglichkeiten im Einzelfall ausgenutzt werden"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1738518563804" ID="ID_1982167930" MODIFIED="1738518580106" TEXT="schaffe vorerst mal direkte Storage für einige Flags">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453873367" ID="ID_393745699" MODIFIED="1736453888482" TEXT="Dispatcher-Tables einrichten und bereitstellen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736564846036" ID="ID_991521203" MODIFIED="1736604103097" TEXT="Storage und Anordnung">
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1736564846036" ID="ID_991521203" MODIFIED="1738518012255" TEXT="Storage und Anordnung">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node COLOR="#5b280f" CREATED="1736564861858" ID="ID_966735363" MODIFIED="1736564872849" TEXT="erste Idee: statisch per Typ">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1736564888749" ID="ID_791051561" MODIFIED="1736564893537" TEXT="ist zwar pfiffig"/>
|
||||
<node CREATED="1736564894477" ID="ID_1331364315" MODIFIED="1736564906159" TEXT="aber später schwer zu handhaben"/>
|
||||
<node CREATED="1736564907586" ID="ID_1394350344" MODIFIED="1736564919405" TEXT="irgendwie vermische ich jetzt die Ebenen"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736564923289" ID="ID_1370096372" MODIFIED="1736604034106" TEXT="besser eine dedizierte HIlfskomponente verwenden">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1736564923289" ID="ID_1370096372" MODIFIED="1738518107442" TEXT="besser eine dedizierte HIlfskomponente verwenden">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node COLOR="#5011eb" CREATED="1736604040268" ID="ID_1751891794" MODIFIED="1736604075748" TEXT="lib::FunHashDispatch<SIG>">
|
||||
<font NAME="Monospaced" SIZE="12"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1738518095187" ID="ID_545320723" MODIFIED="1738518101136" TEXT="einfacher FunHashDispatch_test läuft">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1738518021661" ID="ID_1885873000" MODIFIED="1738532696438" TEXT="Thema liegen lassen bis es tatsächlich relevant wird">
|
||||
<linktarget COLOR="#944855" DESTINATION="ID_1885873000" ENDARROW="Default" ENDINCLINATION="-553;27;" ID="Arrow_ID_1155704766" SOURCE="ID_186513914" STARTARROW="None" STARTINCLINATION="-17;64;"/>
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736453901281" ID="ID_646916289" MODIFIED="1736453920374" TEXT="hierarchische Hash-Keys generieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<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">
|
||||
<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"/>
|
||||
<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"/>
|
||||
</node>
|
||||
<node CREATED="1738518676774" ID="ID_1028179362" LINK="#ID_699338745" MODIFIED="1738518775488" TEXT="Zweck: vermeiden eines VTable-Eintrages für sekundäre Belange">
|
||||
<icon BUILTIN="info"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738547390230" HGAP="25" ID="ID_423467767" MODIFIED="1738548370680" STYLE="bubble" VSHIFT="-2">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das ist ein gradezu absurdes Unterfangen,
|
||||
</p>
|
||||
<p>
|
||||
den Konsequenzen des gewählten Designs
|
||||
</p>
|
||||
<p>
|
||||
zu entgehen....
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<arrowlink COLOR="#de3870" DESTINATION="ID_341926402" ENDARROW="Default" ENDINCLINATION="-31;45;" ID="Arrow_ID_529164217" STARTARROW="None" STARTINCLINATION="-865;-25;"/>
|
||||
<icon BUILTIN="smiley-oh"/>
|
||||
</node>
|
||||
<node CREATED="1738547473366" ID="ID_1980568582" MODIFIED="1738547485577" TEXT="ich will ein leichtgewichtiges und optimiertes Design"/>
|
||||
<node CREATED="1738547486679" ID="ID_1236589550" MODIFIED="1738547518511">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
aber all die damit ausgeschlossenen Möglichkeiten
|
||||
</p>
|
||||
<p>
|
||||
will ich dann doch auch noch haben...
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738518837927" ID="ID_119086007" MODIFIED="1738533250362" TEXT="Dispatch auf Basis der Flags ermöglichen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<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 ⟹ Zugang via ProcID"/>
|
||||
<node CREATED="1738535524778" ID="ID_2361548" MODIFIED="1738535531249" TEXT="Dispatch hinter dem Zugang">
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1738535532721" ID="ID_230267714" MODIFIED="1738535546182" TEXT="Problem: habe dennoch eine Differenzierung zu überwinden">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1738535562285" ID="ID_1118497200" MODIFIED="1738535589454" TEXT="ich weiß zwar jetzt z.B. daß das Pattern »Manifold« ist"/>
|
||||
<node CREATED="1738535590806" ID="ID_1231646271" MODIFIED="1738535609458" TEXT="aber dennoch gibt es zig verschiedene Storage-Layouts">
|
||||
<node CREATED="1738535610984" ID="ID_1726140591" MODIFIED="1738535619473" TEXT="leider liegt die FeedManifold vorne">
|
||||
<node CREATED="1738548655151" ID="ID_1737977570" MODIFIED="1738550074388" TEXT="⟹ Konsequenz: das ist zu ändern!">
|
||||
<arrowlink COLOR="#535274" DESTINATION="ID_879823577" ENDARROW="Default" ENDINCLINATION="172;0;" ID="Arrow_ID_1583847739" STARTARROW="Default" STARTINCLINATION="172;0;"/>
|
||||
<arrowlink COLOR="#65537a" DESTINATION="ID_727715872" ENDARROW="Default" ENDINCLINATION="191;-8;" ID="Arrow_ID_503466505" STARTARROW="None" STARTINCLINATION="-157;-252;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1738535630923" ID="ID_225612311" MODIFIED="1738535640350" TEXT="und die hat flexibles Storage-Layout"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1738535758756" ID="ID_1713030298" MODIFIED="1738535786660" TEXT="also doch noch eine Art virtueller Dispatch notwendig?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1738535795741" ID="ID_1328646607" MODIFIED="1738535825859" TEXT="z.B. ein Offset zur lib::Several-Storage im Objekt"/>
|
||||
<node CREATED="1738535844527" ID="ID_1795314602" MODIFIED="1738535867860">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
oder ein Trampolin? aber auf Basis welcher <i>Laufzeit-Information?</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1738535887977" ID="ID_1858101323" MODIFIED="1738535910201" TEXT="RTTI? das wäre dann eine VTable »durch die HIntertür«"/>
|
||||
<node COLOR="#5b280f" CREATED="1738548443595" ID="ID_1995564775" MODIFIED="1738548460221" TEXT="Aufpassen! das Unterfangen ist absurd">
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1738548487461" ID="ID_1252661720" MODIFIED="1738548545033" TEXT="Auf Stuktur-Kongruenz von Templates zurückführen">
|
||||
<node CREATED="1738548546868" ID="ID_879823577" MODIFIED="1738548679951" TEXT="zusätzliche Einschränkung: der konkruente Teil muß vorne liegen">
|
||||
<linktarget COLOR="#535274" DESTINATION="ID_879823577" ENDARROW="Default" ENDINCLINATION="172;0;" ID="Arrow_ID_1583847739" SOURCE="ID_1737977570" STARTARROW="Default" STARTINCLINATION="172;0;"/>
|
||||
</node>
|
||||
<node CREATED="1738548590215" ID="ID_116345812" MODIFIED="1738548633404" TEXT="Abgestützt auf low-Level memory-Layout"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1738549919523" ID="ID_727715872" MODIFIED="1738550065466" TEXT="Feed-Manifold muß als Sub-Komponente hinten liegen">
|
||||
<arrowlink COLOR="#4f5888" DESTINATION="ID_682224491" ENDARROW="Default" ENDINCLINATION="-1236;54;" ID="Arrow_ID_1568439843" STARTARROW="None" STARTINCLINATION="760;-597;"/>
|
||||
<linktarget COLOR="#65537a" DESTINATION="ID_727715872" ENDARROW="Default" ENDINCLINATION="191;-8;" ID="Arrow_ID_503466505" SOURCE="ID_1737977570" STARTARROW="None" STARTINCLINATION="-157;-252;"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1738550080458" ID="ID_747266264" MODIFIED="1738550094964" TEXT="der Code wird dadurch sogar klarer">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1738552709748" ID="ID_751195601" MODIFIED="1738552716264" TEXT="Fragen der Code-Anordnung">
|
||||
<node CREATED="1738552717851" ID="ID_908526926" MODIFIED="1738552724655" TEXT="brauche einen Low-Level-Accessor">
|
||||
<node CREATED="1738552736209" ID="ID_1882145435" MODIFIED="1738552743647" TEXT="dieser muß eine ProcID auswerten"/>
|
||||
<node CREATED="1738552744901" ID="ID_1314938956" MODIFIED="1738552763205" TEXT="und sich außerdem Zugang verschaffen zu Internas der Weaving-Pattern"/>
|
||||
<node CREATED="1738552764381" ID="ID_1858078710" MODIFIED="1738552782990" TEXT="letztere müssen diesen Zugang per friend-Klausel gestatten"/>
|
||||
<node CREATED="1738553451159" ID="ID_1113348900" MODIFIED="1738553459220" TEXT="sehr einfach möglich per std::tie()"/>
|
||||
</node>
|
||||
<node CREATED="1738552789850" ID="ID_644134927" MODIFIED="1738552809755" TEXT="die Implementierung muß in eine zentrale Translation-Unit">
|
||||
<node CREATED="1738552837650" ID="ID_752093610" MODIFIED="1738552856045" TEXT="dort müssen die relevanten Weaving-Pattern-Templates includiert werden">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node CREATED="1738552858806" ID="ID_499744765" MODIFIED="1738552870057" TEXT="sie werden dann aber pseudo-instantiiert">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1738552872971" ID="ID_256800788" MODIFIED="1738552881315" TEXT="mit minimalen Dummy-TemplateParametern"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738552882437" ID="ID_771316935" MODIFIED="1738552911482" TEXT="und nur für den Zweck eines Zugriffs per force-cast">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1738552811335" ID="ID_368510579" MODIFIED="1738554265379" TEXT="naheliegend ⟹ proc-node.cpp"/>
|
||||
</node>
|
||||
<node CREATED="1738554274264" ID="ID_1338521694" MODIFIED="1738554285164" TEXT="brauche Zugang analog zum Turnout">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1738554286652" ID="ID_1902684381" MODIFIED="1738554316908" TEXT="aber keine Turnout-Instanz">
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
<node CREATED="1738554325674" ID="ID_767810587" MODIFIED="1738554361577" TEXT="Emittieren der Turnout::weave()-Implementierung verhindern"/>
|
||||
<node CREATED="1738554362767" ID="ID_611361455" MODIFIED="1738554377327" TEXT="brauche aber eine Layout-Kompatible Klasse"/>
|
||||
</node>
|
||||
<node CREATED="1738554382342" ID="ID_101038988" MODIFIED="1738554399656" TEXT="Wartbarkeit ⟹ muß direkt neben Turnout stehen">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1738554409011" ID="ID_905079961" MODIFIED="1738554415618" TEXT="class TurnoutDiagnostic"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738518799268" ID="ID_1696634308" MODIFIED="1738518818558" TEXT="Möglichkeit zum Setzen der Flags schaffen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1738518819705" ID="ID_1851563907" MODIFIED="1738518836777" TEXT="Flags automatisch aus dem Node-Builder setzen für passende Pattern">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1736454444496" ID="ID_1712779274" MODIFIED="1736454493950" TEXT="Korrektheit">
|
||||
<arrowlink COLOR="#ce3644" DESTINATION="ID_1160836625" ENDARROW="Default" ENDINCLINATION="75;-69;" ID="Arrow_ID_298743045" STARTARROW="None" STARTINCLINATION="-76;15;"/>
|
||||
|
|
@ -106005,15 +106238,19 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</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 »verdeckten Dispatch«">
|
||||
<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>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1736454082544" ID="ID_1160836625" MODIFIED="1736454493950" TEXT="Test für Metadaten-Verwaltung">
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736454082544" ID="ID_1160836625" MODIFIED="1738518258829" TEXT="Test für Metadaten-Verwaltung">
|
||||
<arrowlink COLOR="#5387dc" DESTINATION="ID_15277358" ENDARROW="Default" ENDINCLINATION="-1313;202;" ID="Arrow_ID_1843979731" STARTARROW="None" STARTINCLINATION="-1286;110;"/>
|
||||
<linktarget COLOR="#ce3644" DESTINATION="ID_1160836625" ENDARROW="Default" ENDINCLINATION="75;-69;" ID="Arrow_ID_298743045" SOURCE="ID_1712779274" STARTARROW="None" STARTINCLINATION="-76;15;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736610754727" ID="ID_575487435" LINK="#ID_25381362" MODIFIED="1736629437629" TEXT="Grobstruktur zerlegen">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1736610754727" ID="ID_575487435" LINK="#ID_25381362" MODIFIED="1738518268810" TEXT="Grobstruktur zerlegen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1736629324669" ID="ID_127221331" MODIFIED="1736629345486" TEXT="führe noch Trennund in Node-Domain und Symbol ein">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
|
|
@ -106026,15 +106263,20 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1738518284585" ID="ID_87127284" MODIFIED="1738518301786" TEXT="Fehlt noch: Qualifier aufgreifen">
|
||||
<icon BUILTIN="bell"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736610781361" ID="ID_1231919908" LINK="#ID_25381362" MODIFIED="1736611024747" TEXT="Argument-Listen parsen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1736629449423" ID="ID_1820450120" MODIFIED="1736629456341" TEXT="werden grundsätzlich abgespalten">
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1736610781361" ID="ID_1231919908" LINK="#ID_25381362" MODIFIED="1738518231270" TEXT="Argument-Listen parsen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1736629449423" ID="ID_1820450120" MODIFIED="1738518251174" TEXT="werden grundsätzlich abgespalten">
|
||||
<node CREATED="1738289004062" ID="ID_126365125" LINK="#ID_1594772328" MODIFIED="1738289050186" TEXT="Hinweis zur Anlage der Implementierung beachten">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1736632585878" ID="ID_919502124" MODIFIED="1736632594880" TEXT="zerlegen in Input und Output"/>
|
||||
<node COLOR="#435e98" CREATED="1736632585878" ID="ID_919502124" MODIFIED="1738518251177" TEXT="zerlegen in Input und Output"/>
|
||||
<node COLOR="#435e98" CREATED="1738518236792" ID="ID_856942777" MODIFIED="1738518251177" TEXT="Repetitionen ausfalten"/>
|
||||
<node COLOR="#435e98" CREATED="1738518243986" ID="ID_246682675" MODIFIED="1738518251177" TEXT="Arität ermitteln"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736610789680" ID="ID_466994748" LINK="#ID_25381362" MODIFIED="1736611024747" TEXT="extended Attributes auswerten">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -106637,6 +106879,10 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
<linktarget COLOR="#fe512a" DESTINATION="ID_863330262" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_1306547654" SOURCE="ID_1021077233" STARTARROW="None" STARTINCLINATION="-816;65;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238814245" ID="ID_1871507162" MODIFIED="1738547694083" TEXT="Feststellung: Metadaten werden mit Bedeutungen überladen">
|
||||
<linktarget COLOR="#fe512a" DESTINATION="ID_1871507162" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_1710234227" SOURCE="ID_341926402" STARTARROW="None" STARTINCLINATION="-877;51;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e2caa2" COLOR="#990000" CREATED="1729956600896" ID="ID_988254887" MODIFIED="1729956915005" STYLE="fork" TEXT="Probleme">
|
||||
<edge COLOR="#b14253" STYLE="sharp_linear"/>
|
||||
|
|
@ -106754,11 +107000,11 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736610744078" ID="ID_25381362" MODIFIED="1736629424535" TEXT="verify_ID_specification">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736610824003" ID="ID_1668456426" LINK="#ID_575487435" MODIFIED="1736611020835" TEXT="Definition einer ProcID">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1736610824003" ID="ID_1668456426" LINK="#ID_575487435" MODIFIED="1738518218666" TEXT="Definition einer ProcID">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736610838882" ID="ID_1153713265" LINK="#ID_1231919908" MODIFIED="1736611020837" TEXT="Argument-Listen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1736610838882" ID="ID_1153713265" LINK="#ID_1231919908" MODIFIED="1738518221120" TEXT="Argument-Listen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736610845136" ID="ID_1268032350" LINK="#ID_466994748" MODIFIED="1736611020836" TEXT="Qualifier / Attribute">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue