Invocation: decision logic for invoking a ''parameter functor''
Based on the usage concept developed thus far, we rely on a `FeedPrototype` to generate the actual `FeedManifold` for each invocation — and this is the extension point where a ''parameter functor'' can be attached. Notably, such a parameter functor will be configured from a different part of the builder logic than the underlying processing function, which is adapted by a Library Plug-in. Parameters on the other hand will be controlled mostly by configuration within the Session, because the user chooses to use specific settings, e.g. for an effect. An important extension to this scheme is **Parameter Automation** — which will be also attached over the extension point designed here. Since Parameter can be defined in various flavours, there is some concern that we'll end up with an excessive number of template instantiations. Thus, we'll explicitly create a »loop hole« by allowing to define the ''parameter functor'' to be a `std::function`. This would open a secondary possibility: configuring such a function, but leaving it empty, which would be a further control switch usable by the builder.
This commit is contained in:
parent
07410e14f1
commit
479ab8cb15
2 changed files with 153 additions and 56 deletions
|
|
@ -117,11 +117,13 @@ namespace engine {
|
|||
using lib::meta::ElmTypes;
|
||||
using lib::meta::Tagged;
|
||||
using lib::meta::TySeq;
|
||||
using std::declval;
|
||||
using std::is_pointer;
|
||||
using std::is_reference;
|
||||
using std::remove_reference_t;
|
||||
using std::remove_pointer_t;
|
||||
using std::tuple_element_t;
|
||||
using std::void_t;
|
||||
using std::__and_;
|
||||
using std::__not_;
|
||||
|
||||
|
|
@ -244,6 +246,44 @@ namespace engine {
|
|||
using BuffI = typename std::conditional<hasInput(), typename ArgI::List::Head, BuffO>::type; /////////////////////////TODO obsolete ... remove after switch
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Trait template to handle an _associated parameter functor._
|
||||
* In those cases, where the basic processing function is classified such
|
||||
* as to accept parameter(s), it may be desirable to _generate_ those parameters
|
||||
* at invocation — be it as a fixed parametrisation chosen for this usage, or even
|
||||
* by evaluation of an _Automation function_ for some parameters.
|
||||
* @tparam FUN type of the underlying _processing function_
|
||||
*/
|
||||
template<class FUN>
|
||||
struct _ParamFun
|
||||
{
|
||||
using _Proc = _ProcFun<FUN>;
|
||||
|
||||
static constexpr bool hasParam() { return _Proc::hasParam(); }
|
||||
|
||||
using Param = std::conditional_t<hasParam(), typename _Proc::ArgP, std::tuple<>>;
|
||||
|
||||
template<class PF>
|
||||
using isSuitable = std::is_constructible<Param, decltype(std::declval<PF> (std::declval<TurnoutSystem&>()))>;
|
||||
|
||||
template<class PF>
|
||||
using isConfigurable = std::is_constructible<bool, PF&>;
|
||||
|
||||
template<class PF>
|
||||
static bool
|
||||
isActivated (PF const& paramFun)
|
||||
{
|
||||
if constexpr (isSuitable<PF>())
|
||||
{ if constexpr (isConfigurable<PF>())
|
||||
return bool(paramFun);
|
||||
else
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
}//(End)Introspection helpers.
|
||||
|
||||
|
||||
|
|
@ -485,9 +525,20 @@ namespace engine {
|
|||
class FeedPrototype
|
||||
: util::MoveOnly
|
||||
{
|
||||
using _Trait = _ParamFun<FUN>;
|
||||
using Feed = FeedManifold<FUN>;
|
||||
|
||||
FUN procFun_;
|
||||
PAM paramFun_;
|
||||
|
||||
Feed
|
||||
createFeed (TurnoutSystem& turnoutSys)
|
||||
{
|
||||
if constexpr (_Trait::hasParam())
|
||||
if (_Trait::isActivated(paramFun_))
|
||||
return Feed{paramFun_(turnoutSys), procFun_};
|
||||
return Feed{procFun_};
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1386 : elaborate setup / binding for parameter-creation
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26380,9 +26380,7 @@
|
|||
</node>
|
||||
<node CREATED="1611478373512" ID="ID_1982297015" MODIFIED="1611478399631">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
es ist auf <i>nein</i> hinausgelaufen....
|
||||
|
|
@ -26987,9 +26985,7 @@
|
|||
<node CREATED="1677241733629" ID="ID_71114216" MODIFIED="1677241738194" TEXT="Grade, Strecke, Winkel"/>
|
||||
<node CREATED="1677241738953" ID="ID_1098408302" MODIFIED="1677241773986" TEXT=""point and shot"-Interface">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Anweisungen in der Statuszeile: wähle ersten Punkt, setze zweiten Punkt....
|
||||
|
|
@ -27692,9 +27688,7 @@
|
|||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1678049589007" ID="ID_114677730" MODIFIED="1678049717907" TEXT="damit die Verbindung am Nullpunkt der Kind-Klammer ansetzt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
mache hier die vereinfachtende Annahme, daß alle Brackets die gleiche Metrik haben
|
||||
|
|
@ -28409,9 +28403,7 @@
|
|||
<node CREATED="1563456762562" ID="ID_968633527" MODIFIED="1563456775217" TEXT="Leaf: häufig verborgen"/>
|
||||
<node CREATED="1563456781637" ID="ID_1656158229" MODIFIED="1576282358066" TEXT="Fork: kommt darauf an....">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
....ob es was sinnvolles in einem Overview-Ruler anzuzeigen gibt
|
||||
|
|
@ -29332,9 +29324,7 @@
|
|||
</node>
|
||||
<node COLOR="#435e98" CREATED="1560303951038" ID="ID_353953611" MODIFIED="1576282358059" TEXT="Frage: wirklich zweistufig konstruieren??">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<ol>
|
||||
<li>
|
||||
|
|
@ -29615,9 +29605,7 @@
|
|||
</node>
|
||||
<node CREATED="1678840039597" ID="ID_1655268668" MODIFIED="1678840689222" TEXT="wird festelegt durch �� bodyCanvas_.signal_size_allocate()">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px">
|
||||
Empfänger(»Slot«): <font face="Monospaced" color="#552694">TimelineLayout::sizeZoomWindow (Gtk::Allocation&)</font>
|
||||
|
|
@ -31856,9 +31844,7 @@
|
|||
</node>
|
||||
<node CREATED="1563145010348" ID="ID_1404407551" MODIFIED="1576282358047">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>rein gefühlsmäßig</i> wäre aber vorher wohl geschickter
|
||||
|
|
@ -32230,9 +32216,7 @@
|
|||
<node CREATED="1566401134943" ID="ID_432602619" MODIFIED="1566401141050" TEXT="box-shadow ist nutzbar">
|
||||
<node CREATED="1566401142268" ID="ID_1379290604" MODIFIED="1576282358045" TEXT="outset nur im Rahmen des Margin">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
weil über alles andere darübergezeichnet wird
|
||||
|
|
@ -33732,9 +33716,7 @@
|
|||
</node>
|
||||
<node CREATED="1678063198596" ID="ID_1800094446" MODIFIED="1679073586554" TEXT="wenn man den Splitter zieht, springt die vertikale Platzverteilung">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
sichtbar an der Höhe der Sub-Scope-Verbindungen auf den StaveBrackets
|
||||
|
|
@ -34652,9 +34634,7 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1611124813478" ID="ID_107886915" MODIFIED="1611124859455">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Aufgabe: wie geht man mit einem Anzeigestil um, der den Effkt<i> gar nicht</i>  darstellt
|
||||
|
|
@ -35031,9 +35011,7 @@
|
|||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node COLOR="#435e98" CREATED="1612471205161" ID="ID_544296566" MODIFIED="1665962213180" TEXT="GTK erlaubt keine explizite Größe">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...das ist eine grundlegende Design-Enscheidung (und zwar eine Gute), aber in der Praxis muß es natürlich trotzdem einen Weg geben, nur ist der dann relativ indirekt und auch nicht wirklich dokumentiert
|
||||
|
|
@ -35538,9 +35516,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...anstatt eine auf den konkreten Typ getemplatete Subklasse zu verwenden,
|
||||
|
|
@ -88388,8 +88364,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734310118603" ID="ID_1954508996" MODIFIED="1734631398113" TEXT="Feed-Manifold: Eigenschaften demonstrieren">
|
||||
<linktarget COLOR="#406cd3" DESTINATION="ID_1954508996" ENDARROW="Default" ENDINCLINATION="-484;30;" ID="Arrow_ID_640616380" SOURCE="ID_1710382999" STARTARROW="None" STARTINCLINATION="-2974;268;"/>
|
||||
<node COLOR="#338800" CREATED="1734310118603" ID="ID_1954508996" MODIFIED="1734634792828" TEXT="Feed-Manifold: Eigenschaften demonstrieren">
|
||||
<linktarget COLOR="#406cd3" DESTINATION="ID_1954508996" ENDARROW="Default" ENDINCLINATION="-552;35;" ID="Arrow_ID_640616380" SOURCE="ID_1710382999" STARTARROW="None" STARTINCLINATION="-2974;268;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1734310213994" ID="ID_691754137" MODIFIED="1734631391185" TEXT="mehrere Varianten von Funktions-Signaturen vorstellen">
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -88777,7 +88753,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734631471232" ID="ID_1048829589" MODIFIED="1734631527235" TEXT="Feed-Prototype: Parameter-Behandlung zeigen">
|
||||
<linktarget DESTINATION="ID_1048829589" ENDARROW="Default" ID="Arrow_ID_58841322" SOURCE="ID_1416331336" STARTARROW="None" STARTINCLINATION="-90;-5;" COLOR="#406cd3" ENDINCLINATION="-484;30;"/>
|
||||
<linktarget COLOR="#406cd3" DESTINATION="ID_1048829589" ENDARROW="Default" ENDINCLINATION="-675;40;" ID="Arrow_ID_58841322" SOURCE="ID_1416331336" STARTARROW="None" STARTINCLINATION="-3038;178;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -92053,8 +92029,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1734226511062" ID="ID_1899717504" MODIFIED="1734226537968" TEXT="ProcFunctor (mandatory)"/>
|
||||
<node CREATED="1734226564932" ID="ID_696691756" MODIFIED="1734226570322" TEXT="Constructor (static)"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734582866744" ID="ID_1616386454" MODIFIED="1734583016228" TEXT="nochmal restrukturieren: muß nun Param-Tupel durchreichen">
|
||||
<linktarget COLOR="#c1428c" DESTINATION="ID_1616386454" ENDARROW="Default" ENDINCLINATION="-1351;60;" ID="Arrow_ID_676623897" SOURCE="ID_1465521206" STARTARROW="None" STARTINCLINATION="-527;29;"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734582866744" ID="ID_1616386454" MODIFIED="1734634929289" TEXT="nochmal restrukturieren: muß nun Param-Tupel durchreichen">
|
||||
<linktarget COLOR="#427ec1" DESTINATION="ID_1616386454" ENDARROW="Default" ENDINCLINATION="-1351;60;" ID="Arrow_ID_676623897" SOURCE="ID_1465521206" STARTARROW="None" STARTINCLINATION="-531;27;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#5b280f" CREATED="1734583035971" ID="ID_662389818" MODIFIED="1734583156432" TEXT="ich möchte nicht das Param-Tupel nachträglich zuweisen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -92069,7 +92045,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1734583026544" ID="ID_1494983661" MODIFIED="1734583167914" TEXT="bedeutet: Konstrkutor-Kette und in Basis-Klasse durchreichen"/>
|
||||
<node CREATED="1734583169204" ID="ID_960536834" MODIFIED="1734583185511" TEXT="das ist schwierig ... weil die Basis-Klasse komplex aufgebaut wird"/>
|
||||
<node CREATED="1734583186883" ID="ID_445121292" MODIFIED="1734583380956" TEXT="Idee: eine Basis-Klasse »Storage« in einer Konfigurations-Klasse definieren">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1734583186883" ID="ID_445121292" MODIFIED="1734634891132" TEXT="Idee: eine Basis-Klasse »Storage« in einer Konfigurations-Klasse definieren">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1734583221142" ID="ID_49260434" MODIFIED="1734583235671" TEXT="also _StorageSetup<FUN> als äußerer Container"/>
|
||||
<node CREATED="1734583236900" ID="ID_63905696" MODIFIED="1734583247122" TEXT="da kann dann alles Metaprogramming rein..."/>
|
||||
|
|
@ -92087,7 +92063,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1734583343988" ID="ID_430940225" MODIFIED="1734583360386" TEXT="und definiert dann erst die nested struct Storage"/>
|
||||
<node CREATED="1734583361711" ID="ID_568129151" MODIFIED="1734583372909" TEXT="FeedManifold erbt dann von dieser"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734583395510" ID="ID_1700565848" MODIFIED="1734625568156" TEXT="muß dann einen weiteren Ctor auf dieser Basisklasse conditional sichtbar machen">
|
||||
<node COLOR="#338800" CREATED="1734583395510" FOLDED="true" ID="ID_1700565848" MODIFIED="1734625568156" TEXT="muß dann einen weiteren Ctor auf dieser Basisklasse conditional sichtbar machen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#e8d88a" COLOR="#d5017d" CREATED="1734583422523" ID="ID_907955668" MODIFIED="1734625367025" TEXT="puh .... FEHLER FEHLER FEHLER FEHLER">
|
||||
<arrowlink COLOR="#fee7c1" DESTINATION="ID_1031755621" ENDARROW="Default" ENDINCLINATION="367;-22;" ID="Arrow_ID_988126033" STARTARROW="None" STARTINCLINATION="377;26;"/>
|
||||
|
|
@ -92123,8 +92099,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
enable_if_hasParam : verwendet statt <font face="Monospaced" color="#ac0909">Type</font> statt <font face="Monospaced" color="#ac0909">type</font>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
<node COLOR="#ff00ca" CREATED="1734624978674" ID="ID_514782434" MODIFIED="1734625013697" TEXT="ja dann KANNs ja gar nicht funktionieren...">
|
||||
|
|
@ -92328,12 +92303,83 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734572424754" ID="ID_1186353623" MODIFIED="1734582798770" TEXT="Typ anlegen mit zwei Funktor-Parametern">
|
||||
<icon BUILTIN="pencil"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734572571310" ID="ID_762884176" MODIFIED="1734572593981" TEXT="Traits-Template für Parmeter-Funktor vorsehen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734572571310" ID="ID_762884176" MODIFIED="1734642685926" TEXT="Traits-Template für Parmeter-Funktor vorsehen">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#435e98" CREATED="1734642562758" ID="ID_124741811" MODIFIED="1734642577949" TEXT="_ParamFun<FUN>">
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1734642580172" ID="ID_1594598889" MODIFIED="1734642601285" TEXT="FUN ≡ Typ der zugehörigen Processing-Function"/>
|
||||
<node COLOR="#338800" CREATED="1734642607512" ID="ID_225155388" MODIFIED="1734642679519" TEXT="Trait soll jedoch direkt einsetzbar sein">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
....das heißt, alle wichtigen Eigenschaften aus _ProcFun<FUN> müssen delegiert bereitgestellt werden...
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734572439920" ID="ID_955026014" MODIFIED="1734573339521" TEXT="createFeed (TurnoutSystem&) implementieren">
|
||||
</node>
|
||||
<node CREATED="1734640371452" ID="ID_762706800" MODIFIED="1734640376664" TEXT="herauszufinden ....">
|
||||
<node COLOR="#435e98" CREATED="1734640381115" ID="ID_1284162123" MODIFIED="1734642552192" TEXT="kann dieser Funktor die Parameter initialisieren?">
|
||||
<node CREATED="1734642478889" ID="ID_537176146" MODIFIED="1734642491427" TEXT="das läuft auf decltype() hinaus..."/>
|
||||
<node CREATED="1734642492691" ID="ID_1140592492" MODIFIED="1734642500411" TEXT="man wendet den Funktor an"/>
|
||||
<node CREATED="1734642501830" ID="ID_15418917" MODIFIED="1734642513812" TEXT="und konstruiert daraus den Parameter-Datentyp"/>
|
||||
<node CREATED="1734642516516" ID="ID_371749462" MODIFIED="1734642545785">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
valide  ⟹  Funktor ist <i>brauchbar</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734640447354" ID="ID_1513968039" MODIFIED="1734642552192" TEXT="ist dieser Funktor dynamisch aktivierbar?">
|
||||
<node CREATED="1734640469377" ID="ID_1527659185" MODIFIED="1734640480593" TEXT="er darf dann nur verwendet werden, wenn aktiviert"/>
|
||||
<node CREATED="1734640482114" ID="ID_1955370545" MODIFIED="1734642852699" TEXT="wichtiges Beispiel: std::function">
|
||||
<arrowlink COLOR="#79a6a8" DESTINATION="ID_1746010324" ENDARROW="Default" ENDINCLINATION="117;-9;" ID="Arrow_ID_1965190462" STARTARROW="None" STARTINCLINATION="269;24;"/>
|
||||
</node>
|
||||
<node CREATED="1734640604005" ID="ID_758754868" MODIFIED="1734640611064" TEXT="Kriterium: bool-Konversion"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734640580222" ID="ID_1970054522" MODIFIED="1734642552192" TEXT="wenn es keine Parameter gibt...?">
|
||||
<node CREATED="1734642435463" ID="ID_1603419819" MODIFIED="1734642448761" TEXT="...wird dieser Zweig eigentlich auch gar nicht aufgerufen"/>
|
||||
<node CREATED="1734642450134" ID="ID_21738548" MODIFIED="1734642472763" TEXT="sicherheitshalber doch auch die Param-Funktion dann deaktiveren"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734572439920" ID="ID_955026014" MODIFIED="1734642701637" TEXT="createFeed (TurnoutSystem&) implementieren">
|
||||
<linktarget COLOR="#d35582" DESTINATION="ID_955026014" ENDARROW="Default" ENDINCLINATION="-620;38;" ID="Arrow_ID_278216824" SOURCE="ID_112390056" STARTARROW="None" STARTINCLINATION="1203;53;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#5b280f" CREATED="1734642711594" ID="ID_628059323" MODIFIED="1734642730462" TEXT="man könnte hier von der Konfiguration ein Lambda generieren lassen">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1734642738502" ID="ID_847666328" MODIFIED="1734642756487" TEXT="nein — besser direkt">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734642758924" ID="ID_1231534004" MODIFIED="1734643023205" TEXT="ist eine einfache Kaskade von Fallunterscheidungen">
|
||||
<node COLOR="#435e98" CREATED="1734642773621" ID="ID_1090553293" MODIFIED="1734643031879" TEXT="not hasParam() ⟹ das ganze Thema ignorieren"/>
|
||||
<node COLOR="#435e98" CREATED="1734642801730" ID="ID_1980769926" MODIFIED="1734643029296" TEXT="spezielle Erweiterung: konfigurierbare Funktion">
|
||||
<node CREATED="1734642820012" ID="ID_1746010324" MODIFIED="1734642962465" TEXT="wichtig (wegen std::function)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...die werde ich voraussichtlich per Default (oder zumindest in wichtigen Fällen) einsetzen, um den Template-Bloat zu begrenzen. Das hat dann zur Folge, daß noch zur Laufzeit entschieden werden könnte, ob überhaupt eine Parameter-Konfiguration gemacht wird, oder ob default-konstruierte Parameter-Werte genügen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#79a6a8" DESTINATION="ID_1746010324" ENDARROW="Default" ENDINCLINATION="117;-9;" ID="Arrow_ID_1965190462" SOURCE="ID_1955370545" STARTARROW="None" STARTINCLINATION="269;24;"/>
|
||||
</node>
|
||||
<node CREATED="1734642970639" ID="ID_496362197" MODIFIED="1734642986760" TEXT="entweder compile-Time oder Runtime"/>
|
||||
<node CREATED="1734642990109" ID="ID_182746911" MODIFIED="1734643009042" TEXT="nicht konfigurierbar, aber generell brauchbar ⟹ immer aktiviert"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734572530013" ID="ID_765842112" MODIFIED="1734572593980" TEXT="dynamische quer-Builder hinzufügen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -92839,9 +92885,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734582923838" ID="ID_1465521206" MODIFIED="1734583016228" TEXT="muß dafür nochmal Definitions-Struktur umkrempeln">
|
||||
<arrowlink COLOR="#c1428c" DESTINATION="ID_1616386454" ENDARROW="Default" ENDINCLINATION="-1351;60;" ID="Arrow_ID_676623897" STARTARROW="None" STARTINCLINATION="-527;29;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1734582923838" ID="ID_1465521206" MODIFIED="1734634938017" TEXT="muß dafür nochmal Definitions-Struktur umkrempeln">
|
||||
<arrowlink COLOR="#427ec1" DESTINATION="ID_1616386454" ENDARROW="Default" ENDINCLINATION="-1351;60;" ID="Arrow_ID_676623897" STARTARROW="None" STARTINCLINATION="-531;27;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -92857,14 +92903,14 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
<node CREATED="1734309990069" ID="ID_1710382999" MODIFIED="1734633414037" TEXT="angesiedelt in NodeBase_test">
|
||||
<arrowlink COLOR="#406cd3" DESTINATION="ID_1954508996" ENDARROW="Default" ENDINCLINATION="-484;30;" ID="Arrow_ID_640616380" STARTARROW="None" STARTINCLINATION="-2974;268;"/>
|
||||
<node CREATED="1734309990069" ID="ID_1710382999" MODIFIED="1734634800005" TEXT="angesiedelt in NodeBase_test">
|
||||
<arrowlink COLOR="#406cd3" DESTINATION="ID_1954508996" ENDARROW="Default" ENDINCLINATION="-552;35;" ID="Arrow_ID_640616380" STARTARROW="None" STARTINCLINATION="-2974;268;"/>
|
||||
<linktarget COLOR="#16a2aa" DESTINATION="ID_1710382999" ENDARROW="Default" ENDINCLINATION="539;-32;" ID="Arrow_ID_129574515" SOURCE="ID_1348489291" STARTARROW="None" STARTINCLINATION="183;11;"/>
|
||||
<linktarget COLOR="#467fbe" DESTINATION="ID_1710382999" ENDARROW="Default" ENDINCLINATION="73;6;" ID="Arrow_ID_1026737432" SOURCE="ID_1795683894" STARTARROW="None" STARTINCLINATION="97;6;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734573209952" ID="ID_1416331336" MODIFIED="1734631527235" TEXT="FeedPrototype in separatem Testfall abhandeln">
|
||||
<arrowlink DESTINATION="ID_1048829589" ENDARROW="Default" ID="Arrow_ID_58841322" STARTARROW="None" STARTINCLINATION="-90;-5;" COLOR="#406cd3" ENDINCLINATION="-484;30;"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734573209952" ID="ID_1416331336" MODIFIED="1734634800005" TEXT="FeedPrototype in separatem Testfall abhandeln">
|
||||
<arrowlink COLOR="#406cd3" DESTINATION="ID_1048829589" ENDARROW="Default" ENDINCLINATION="-675;40;" ID="Arrow_ID_58841322" STARTARROW="None" STARTINCLINATION="-3038;178;"/>
|
||||
<linktarget COLOR="#35a1d3" DESTINATION="ID_1416331336" ENDARROW="Default" ENDINCLINATION="420;24;" ID="Arrow_ID_1552949599" SOURCE="ID_112390056" STARTARROW="None" STARTINCLINATION="245;11;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue