Parameters: sketch a prototype-builder API
...yet the actual problem remains that the value type of the prototype remains a runtime-dynamic hidden implementation trait. How can we remould the scale hidden within a parameter, while in the regular setup, the scale is implemented as an immutable entry placed into a registry?
This commit is contained in:
parent
8de5a4b475
commit
87ce59da29
3 changed files with 189 additions and 32 deletions
|
|
@ -58,9 +58,6 @@ namespace par {
|
||||||
: protected ParamContainer
|
: protected ParamContainer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
template<typename VAL>
|
|
||||||
class Builder;
|
|
||||||
|
|
||||||
template<typename VAL>
|
template<typename VAL>
|
||||||
VAL getVal() const;
|
VAL getVal() const;
|
||||||
|
|
||||||
|
|
@ -69,6 +66,9 @@ namespace par {
|
||||||
|
|
||||||
/* === Builder API === */
|
/* === Builder API === */
|
||||||
|
|
||||||
|
template<typename VAL>
|
||||||
|
class Builder;
|
||||||
|
|
||||||
template<typename VAL>
|
template<typename VAL>
|
||||||
static Builder<VAL>
|
static Builder<VAL>
|
||||||
forType() { return {}; }
|
forType() { return {}; }
|
||||||
|
|
@ -82,6 +82,8 @@ namespace par {
|
||||||
.withValue (std::forward<VAL> (initVal));
|
.withValue (std::forward<VAL> (initVal));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ProtoBuilder;
|
||||||
|
static ProtoBuilder from (Parameter const& prototype);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
template<class IMP, typename...ARGS>
|
template<class IMP, typename...ARGS>
|
||||||
|
|
@ -111,13 +113,45 @@ namespace par {
|
||||||
withValue (X&& initVal)
|
withValue (X&& initVal)
|
||||||
{
|
{
|
||||||
initVal_ = std::forward<X> (initVal);
|
initVal_ = std::forward<X> (initVal);
|
||||||
return std::move(this);
|
return std::move(*this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class Parameter::ProtoBuilder
|
||||||
|
{
|
||||||
|
Parameter ref_;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ProtoBuilder (Parameter const& prototype)
|
||||||
|
: ref_{prototype}
|
||||||
|
{ }
|
||||||
|
|
||||||
|
Parameter
|
||||||
|
build()
|
||||||
|
{
|
||||||
|
return ref_;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename X>
|
||||||
|
ProtoBuilder&&
|
||||||
|
maxVal (X&& upperBound)
|
||||||
|
{
|
||||||
|
/////////////////////////////////////////////OOO how to remould a scale?
|
||||||
|
return std::move(*this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
inline Parameter::ProtoBuilder
|
||||||
|
Parameter::from (Parameter const& prototype)
|
||||||
|
{
|
||||||
|
return ProtoBuilder{prototype};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template<typename VAL>
|
template<typename VAL>
|
||||||
VAL
|
inline VAL
|
||||||
Parameter::getVal() const
|
Parameter::getVal() const
|
||||||
{
|
{
|
||||||
static_assert (isBaseType<VAL>, "only preconfigured parameter BaseTypes are supported");
|
static_assert (isBaseType<VAL>, "only preconfigured parameter BaseTypes are supported");
|
||||||
|
|
@ -127,7 +161,7 @@ namespace par {
|
||||||
|
|
||||||
|
|
||||||
template<typename VAL>
|
template<typename VAL>
|
||||||
void
|
inline void
|
||||||
Parameter::setVal (VAL&& changedVal)
|
Parameter::setVal (VAL&& changedVal)
|
||||||
{
|
{
|
||||||
static_assert (isBaseType<VAL>, "only preconfigured parameter BaseTypes are supported");
|
static_assert (isBaseType<VAL>, "only preconfigured parameter BaseTypes are supported");
|
||||||
|
|
|
||||||
|
|
@ -82,12 +82,22 @@ namespace test{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** @test
|
/** @test explore ways to define a parameter...
|
||||||
* @todo WIP 9/26 🔁 define ⟶ implement
|
* @todo WIP 9/26 🔁 define ⟶ implement
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
verify_Builder()
|
verify_Builder()
|
||||||
{
|
{
|
||||||
|
Parameter p1 = Parameter::forValue(123.45f).build();
|
||||||
|
CHECK (123.45f == p1.getVal<float>());
|
||||||
|
|
||||||
|
p1.setVal (12u);
|
||||||
|
CHECK (12.0 == p1.getVal<double>());
|
||||||
|
|
||||||
|
Parameter p2 = Parameter::from(p1)
|
||||||
|
.maxVal (sqrt(2))
|
||||||
|
.build();
|
||||||
|
SHOW_EXPR(p2.getVal<float>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81589,26 +81589,37 @@
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782838037103" ID="ID_1131404515" MODIFIED="1782838041367" TEXT="Komponenten">
|
<node CREATED="1782838037103" ID="ID_1131404515" MODIFIED="1782838041367" TEXT="Komponenten">
|
||||||
<node CREATED="1782838049957" ID="ID_599946886" MODIFIED="1782838068604">
|
<node CREATED="1782838049957" ID="ID_599946886" MODIFIED="1788649233561">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
Paket: <font face="Monospaced" color="#341ac2">lib/auto</font>
|
Paket: <font color="#341ac2" face="Monospaced">lib/par</font>
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782843117967" ID="ID_94587283" MODIFIED="1782843122127" TEXT="Parameter">
|
<node CREATED="1782843117967" ID="ID_94587283" MODIFIED="1782843122127" TEXT="Parameter">
|
||||||
<node CREATED="1782843127457" ID="ID_868934457" MODIFIED="1782843155574" TEXT="lege ich erst mal als Platzhalter an">
|
<node CREATED="1782843127457" ID="ID_868934457" MODIFIED="1788649365183" TEXT="lege ich erst mal als Platzhalter an">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<ul>
|
||||||
damit man bereits die Stellen markieren kann, an denen ein Parameter erwartet wird
|
<li>
|
||||||
</p>
|
damit man bereits die Stellen markieren kann, an denen ein Parameter erwartet wird
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
damit bereits die Kategorien geschaffen sind, nach denen das Thema Automation strukturiert wird
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
damit man bereits einfache Werte als opaque Parameter speichern und weitergeben kann
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
|
<node CREATED="1788649248076" ID="ID_1930774042" MODIFIED="1788649262682" TEXT="darunter wird nun auch bereits eine Design-Skizze entwickelt"/>
|
||||||
|
<node CREATED="1788649263402" ID="ID_825881492" MODIFIED="1788649290834" TEXT="so daß die Möglichkeiten grundsätzlich abgesteckt sind"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782844096458" ID="ID_1581419592" MODIFIED="1782844101528" TEXT="Design-Ansatz">
|
<node CREATED="1782844096458" ID="ID_1581419592" MODIFIED="1782844101528" TEXT="Design-Ansatz">
|
||||||
<node COLOR="#4f4398" CREATED="1782844103236" ID="ID_1999191485" MODIFIED="1782923146717" TEXT="ist es ein opaque-Value oder ist es ein inline-funktor?">
|
<node COLOR="#4f4398" CREATED="1782844103236" ID="ID_1999191485" MODIFIED="1782923146717" TEXT="ist es ein opaque-Value oder ist es ein inline-funktor?">
|
||||||
|
|
@ -81822,7 +81833,7 @@
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782926068242" ID="ID_1536827233" MODIFIED="1782926075039" TEXT="Entwurf">
|
<node CREATED="1782926068242" ID="ID_1536827233" MODIFIED="1782926075039" TEXT="Entwurf">
|
||||||
<node CREATED="1782926076214" ID="ID_613339645" MODIFIED="1782926117524" TEXT="isCompatible<TY> (typeID)"/>
|
<node CREATED="1782926076214" ID="ID_613339645" MODIFIED="1782926117524" TEXT="isCompatible<TY> (typeID)"/>
|
||||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1782927060642" ID="ID_1480682856" MODIFIED="1782927073169" TEXT="Frage: Struktur des ID-Space?">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1782927060642" FOLDED="true" ID="ID_1480682856" MODIFIED="1788648740788" TEXT="Frage: Struktur des ID-Space?">
|
||||||
<font NAME="SansSerif" SIZE="12"/>
|
<font NAME="SansSerif" SIZE="12"/>
|
||||||
<icon BUILTIN="help"/>
|
<icon BUILTIN="help"/>
|
||||||
<node CREATED="1782927075864" ID="ID_396730348" MODIFIED="1782927083019" TEXT="Variante-1 : flach">
|
<node CREATED="1782927075864" ID="ID_396730348" MODIFIED="1782927083019" TEXT="Variante-1 : flach">
|
||||||
|
|
@ -81888,7 +81899,7 @@
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1782928075567" ID="ID_1846915137" MODIFIED="1782928092732" TEXT="Neben-Frage: Repräsentation der ID?">
|
<node COLOR="#435e98" CREATED="1782928075567" ID="ID_1846915137" MODIFIED="1788648583401" TEXT="Neben-Frage: Repräsentation der ID?">
|
||||||
<icon BUILTIN="help"/>
|
<icon BUILTIN="help"/>
|
||||||
<node CREATED="1782928104550" ID="ID_1571983028" MODIFIED="1782928116118" TEXT="Pointer wären denkbar">
|
<node CREATED="1782928104550" ID="ID_1571983028" MODIFIED="1782928116118" TEXT="Pointer wären denkbar">
|
||||||
<node CREATED="1782928158347" ID="ID_1287231519" MODIFIED="1782928169310" TEXT="Vorteil: direkt dereferenzierbar"/>
|
<node CREATED="1782928158347" ID="ID_1287231519" MODIFIED="1782928169310" TEXT="Vorteil: direkt dereferenzierbar"/>
|
||||||
|
|
@ -82025,7 +82036,9 @@
|
||||||
<node CREATED="1782930467363" ID="ID_1657509582" MODIFIED="1782930478866" TEXT="Update der Hashtable erfordert stets ein hartes Lock"/>
|
<node CREATED="1782930467363" ID="ID_1657509582" MODIFIED="1782930478866" TEXT="Update der Hashtable erfordert stets ein hartes Lock"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782928138443" ID="ID_1966486898" MODIFIED="1782928148651" TEXT="Index-Tabelle">
|
<node CREATED="1782928138443" ID="ID_1966486898" MODIFIED="1782928148651" TEXT="Index-Tabelle">
|
||||||
<node CREATED="1782930068409" ID="ID_1281751146" MODIFIED="1782930078630" TEXT="ist stets »wasserdicht«"/>
|
<node CREATED="1782930068409" ID="ID_1281751146" MODIFIED="1788648636362" TEXT="ist stets »wasserdicht«">
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
|
</node>
|
||||||
<node CREATED="1782930079439" ID="ID_832708104" MODIFIED="1782930450150" TEXT="man könnte trotzdem zwei Komponenten in einen 64bit packen">
|
<node CREATED="1782930079439" ID="ID_832708104" MODIFIED="1782930450150" TEXT="man könnte trotzdem zwei Komponenten in einen 64bit packen">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
|
|
@ -82061,6 +82074,17 @@
|
||||||
<node CREATED="1782931396816" ID="ID_846450673" MODIFIED="1782931413129" TEXT="und die neu-Registrierung sollte in eine Index-Tabelle erfolgen"/>
|
<node CREATED="1782931396816" ID="ID_846450673" MODIFIED="1782931413129" TEXT="und die neu-Registrierung sollte in eine Index-Tabelle erfolgen"/>
|
||||||
<node CREATED="1782931426981" ID="ID_530242349" MODIFIED="1782931443565" TEXT="zudem sollte man niemals de-Registrieren (⟹ Vereinfachung)"/>
|
<node CREATED="1782931426981" ID="ID_530242349" MODIFIED="1782931443565" TEXT="zudem sollte man niemals de-Registrieren (⟹ Vereinfachung)"/>
|
||||||
</node>
|
</node>
|
||||||
|
<node CREATED="1788648600244" ID="ID_1146977942" MODIFIED="1788648723112" TEXT="als Lösung wurde aber letztlich gewählt: Index-Tabelle plus mehrere ID-Komponenten">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Der Weg dorthin ging über die Einsicht, daß die Daten-Storage eine sehr knappe Resource ist, und daß ein Prototyp-Ansatz Bedeutung einer Registry herabsetzt (sie dient vor allem als Storage back-End)
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="forward"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782933758198" ID="ID_372189629" MODIFIED="1782933784230" TEXT="zurück zur Struktur...">
|
<node CREATED="1782933758198" ID="ID_372189629" MODIFIED="1782933784230" TEXT="zurück zur Struktur...">
|
||||||
|
|
@ -82122,7 +82146,11 @@
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782934059019" ID="ID_749549250" MODIFIED="1782934107302" TEXT="der Deskriptor wird registriert und dann durch seinen Pointer repräsentiert"/>
|
<node COLOR="#5b280f" CREATED="1782934059019" ID="ID_749549250" MODIFIED="1788648925474" TEXT="der Deskriptor wird registriert und dann durch seinen Pointer repräsentiert">
|
||||||
|
<icon BUILTIN="button_cancel"/>
|
||||||
|
<node CREATED="1788648944284" ID="ID_220165166" MODIFIED="1788648953241" TEXT="nein: einzelne Skalen werden registriert"/>
|
||||||
|
<node CREATED="1788648953934" ID="ID_512405000" MODIFIED="1788648966711" TEXT="aber dargestellt wird ein Prototyp — und zwar im Modell verankert"/>
|
||||||
|
</node>
|
||||||
<node CREATED="1782934126020" ID="ID_309124327" MODIFIED="1782934137620" TEXT="Problem / Aufgabe: Reproduzierbarkeit">
|
<node CREATED="1782934126020" ID="ID_309124327" MODIFIED="1782934137620" TEXT="Problem / Aufgabe: Reproduzierbarkeit">
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1782934176291" ID="ID_1012097809" MODIFIED="1782934951544" TEXT="inwiefern ist das überhaupt ein Problem?">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1782934176291" ID="ID_1012097809" MODIFIED="1782934951544" TEXT="inwiefern ist das überhaupt ein Problem?">
|
||||||
<icon BUILTIN="help"/>
|
<icon BUILTIN="help"/>
|
||||||
|
|
@ -82135,14 +82163,15 @@
|
||||||
<node CREATED="1782934330022" ID="ID_1491698936" MODIFIED="1782934348327" TEXT="die direkten Zugriffe (per full-Domain-Basistyp)"/>
|
<node CREATED="1782934330022" ID="ID_1491698936" MODIFIED="1782934348327" TEXT="die direkten Zugriffe (per full-Domain-Basistyp)"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782934352981" ID="ID_203751727" MODIFIED="1788124752033" TEXT="Konsequenz ⟹ Typ-Deskriptor Prototypen verwenden">
|
<node COLOR="#41185d" CREATED="1782934352981" ID="ID_203751727" MODIFIED="1788649023220" TEXT="Konsequenz ⟹ Typ-Deskriptor Prototypen verwenden">
|
||||||
<linktarget COLOR="#332ab5" DESTINATION="ID_203751727" ENDARROW="Default" ENDINCLINATION="-1433;77;" ID="Arrow_ID_433092199" SOURCE="ID_775970800" STARTARROW="None" STARTINCLINATION="-344;26;"/>
|
<linktarget COLOR="#332ab5" DESTINATION="ID_203751727" ENDARROW="Default" ENDINCLINATION="-1438;69;" ID="Arrow_ID_433092199" SOURCE="ID_775970800" STARTARROW="None" STARTINCLINATION="-344;26;"/>
|
||||||
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||||
<node CREATED="1782934397802" ID="ID_364715036" MODIFIED="1782934416572" TEXT="es ist zu erwarten, daß diese in den Metadaten die Rolle eines »Typs« spielen"/>
|
<node CREATED="1782934397802" ID="ID_364715036" MODIFIED="1782934416572" TEXT="es ist zu erwarten, daß diese in den Metadaten die Rolle eines »Typs« spielen"/>
|
||||||
<node CREATED="1782934417938" ID="ID_1609165510" MODIFIED="1782934439659" TEXT="jeder konkrete Typ kann auch als Prototyp verwendet werden (⟶ muß immutable sein)"/>
|
<node CREATED="1782934417938" ID="ID_1609165510" MODIFIED="1782934439659" TEXT="jeder konkrete Typ kann auch als Prototyp verwendet werden (⟶ muß immutable sein)"/>
|
||||||
<node CREATED="1782934443840" ID="ID_1929146954" MODIFIED="1782934464080" TEXT="sinnvollerweise eine separate statische Registry für die full-Domain-Basistypen">
|
<node CREATED="1782934443840" ID="ID_1929146954" MODIFIED="1782934464080" TEXT="sinnvollerweise eine separate statische Registry für die full-Domain-Basistypen">
|
||||||
<node CREATED="1782934489300" ID="ID_1753645320" MODIFIED="1782934494347" TEXT="das muß eine Hashtable sein"/>
|
<node CREATED="1782934489300" ID="ID_1753645320" MODIFIED="1782934494347" TEXT="das muß eine Hashtable sein"/>
|
||||||
<node CREATED="1782934535498" ID="ID_1516590429" MODIFIED="1782934546327" TEXT="mit einem systematisch generierbaren Hash"/>
|
<node CREATED="1782934535498" ID="ID_1516590429" MODIFIED="1782934546327" TEXT="mit einem systematisch generierbaren Hash"/>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1782934585387" ID="ID_836781666" MODIFIED="1783098443001" TEXT="⟹ sinnvollerweise diese Basis-Typ-Registry final vorgenerieren">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1782934585387" ID="ID_836781666" MODIFIED="1788649041665" TEXT="⟹ sinnvollerweise diese Basis-Typ-Registry final vorgenerieren">
|
||||||
<arrowlink COLOR="#662940" DESTINATION="ID_1280505955" ENDARROW="Default" ENDINCLINATION="1362;-81;" ID="Arrow_ID_157492531" STARTARROW="None" STARTINCLINATION="133;501;"/>
|
<arrowlink COLOR="#662940" DESTINATION="ID_1280505955" ENDARROW="Default" ENDINCLINATION="1362;-81;" ID="Arrow_ID_157492531" STARTARROW="None" STARTINCLINATION="133;501;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1782934627813" ID="ID_231478597" MODIFIED="1783094142508" TEXT="denn sonst wird's »schwül« wenn die DSOs auftreten"/>
|
<node CREATED="1782934627813" ID="ID_231478597" MODIFIED="1783094142508" TEXT="denn sonst wird's »schwül« wenn die DSOs auftreten"/>
|
||||||
|
|
@ -82184,15 +82213,16 @@
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782935176769" ID="ID_415184310" MODIFIED="1782935198386">
|
<node CREATED="1782935176769" ID="ID_415184310" MODIFIED="1788648783462">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
<i>pragmatisch betrachtet</i> ist das Problem vermutlich nicht relevant
|
<i>pragmatisch betrachtet</i> ist das Problem nicht (besonders) relevant
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1782935199568" ID="ID_1528659744" MODIFIED="1782935224325" TEXT="es geht somit nur darum, den Speicherbedarf für Typ-Deskriptoren zu begrenzen"/>
|
<node CREATED="1782935199568" ID="ID_1528659744" MODIFIED="1782935224325" TEXT="es geht somit nur darum, den Speicherbedarf für Typ-Deskriptoren zu begrenzen"/>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1782935238541" ID="ID_1016393562" MODIFIED="1782935326983" TEXT="man sollte daran denken, daß (unbeabsichtigt) eine Äquivalenz entstehen könnte">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1782935238541" ID="ID_1016393562" MODIFIED="1782935326983" TEXT="man sollte daran denken, daß (unbeabsichtigt) eine Äquivalenz entstehen könnte">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
|
@ -82225,6 +82255,16 @@
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
|
<node CREATED="1788648797069" ID="ID_1018707171" MODIFIED="1788648867028" TEXT="für die Praxis ist es wichitger, Prototypen zu unterstützen">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
...das heißt, Kohärenz wird dann eine Ebene höher gelagert, nämlich im konkreten Modell — und könnte mit den Konfig-Regeln zusammenspielen
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -82266,7 +82306,15 @@
|
||||||
<icon BUILTIN="smiley-angry"/>
|
<icon BUILTIN="smiley-angry"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1782948636452" ID="ID_758265146" MODIFIED="1782948640740" TEXT="Ordnung der Begriffe">
|
</node>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#435e98" CREATED="1788649181393" ID="ID_1565751294" MODIFIED="1788649204898" TEXT="Fazit: gelöst per TypeHandler bzw.. komplett generisch per double-Dispatch">
|
||||||
|
<icon BUILTIN="forward"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#3c0f69" CREATED="1782948636452" ID="ID_758265146" MODIFIED="1788649107719" TEXT="Ordnung der Begriffe">
|
||||||
|
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
|
||||||
|
<icon BUILTIN="forward"/>
|
||||||
<node CREATED="1782951139307" ID="ID_204578379" MODIFIED="1782951157090" TEXT="Problem: Begriffe sind nicht offensichtlich klar">
|
<node CREATED="1782951139307" ID="ID_204578379" MODIFIED="1782951157090" TEXT="Problem: Begriffe sind nicht offensichtlich klar">
|
||||||
<node CREATED="1782951161550" ID="ID_836568019" MODIFIED="1782951174050" TEXT="wir brauchen mehr als einen »Typ«"/>
|
<node CREATED="1782951161550" ID="ID_836568019" MODIFIED="1782951174050" TEXT="wir brauchen mehr als einen »Typ«"/>
|
||||||
<node CREATED="1782951193252" ID="ID_341984997" MODIFIED="1782951209813" TEXT="Skala / Scale tritt auf zwei Bedeutungsebenen auf">
|
<node CREATED="1782951193252" ID="ID_341984997" MODIFIED="1782951209813" TEXT="Skala / Scale tritt auf zwei Bedeutungsebenen auf">
|
||||||
|
|
@ -82368,9 +82416,6 @@
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
|
||||||
</node>
|
|
||||||
</node>
|
|
||||||
<node CREATED="1783012426948" ID="ID_618035658" MODIFIED="1787783397317" TEXT="Struktur-Aufbau (experimenteller Entwurf)">
|
<node CREATED="1783012426948" ID="ID_618035658" MODIFIED="1787783397317" TEXT="Struktur-Aufbau (experimenteller Entwurf)">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
|
|
@ -83002,7 +83047,8 @@
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1783092344401" ID="ID_723247866" MODIFIED="1788306366293" TEXT="Provision">
|
<node COLOR="#5b280f" CREATED="1783092344401" FOLDED="true" ID="ID_723247866" MODIFIED="1788648523828" TEXT="Provision">
|
||||||
|
<icon BUILTIN="button_cancel"/>
|
||||||
<node CREATED="1783092477119" ID="ID_1734714581" MODIFIED="1783092481906" TEXT="Interfaface">
|
<node CREATED="1783092477119" ID="ID_1734714581" MODIFIED="1783092481906" TEXT="Interfaface">
|
||||||
<node CREATED="1783092482966" ID="ID_1196126403" MODIFIED="1783092486026" TEXT="virtuell"/>
|
<node CREATED="1783092482966" ID="ID_1196126403" MODIFIED="1783092486026" TEXT="virtuell"/>
|
||||||
<node CREATED="1783092486716" ID="ID_1507254773" MODIFIED="1783092489572" TEXT="generisch">
|
<node CREATED="1783092486716" ID="ID_1507254773" MODIFIED="1783092489572" TEXT="generisch">
|
||||||
|
|
@ -83022,7 +83068,7 @@
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1783096649826" ID="ID_635617915" MODIFIED="1783096656736" TEXT="Fall-2 : convertible">
|
<node CREATED="1783096649826" ID="ID_635617915" MODIFIED="1783096656736" TEXT="Fall-2 : convertible">
|
||||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1783096668611" ID="ID_1774686345" MODIFIED="1783096682092" TEXT="Aufgabe: das feststellen">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1783096668611" ID="ID_1774686345" MODIFIED="1788647962034" TEXT="Aufgabe: das feststellen">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1783097503131" ID="ID_483426018" MODIFIED="1783097518253" TEXT="gegeben: eine Domain (Interface) + ein konkreter Typ"/>
|
<node CREATED="1783097503131" ID="ID_483426018" MODIFIED="1783097518253" TEXT="gegeben: eine Domain (Interface) + ein konkreter Typ"/>
|
||||||
<node CREATED="1783098286033" ID="ID_624769242" MODIFIED="1783178792544" TEXT="Aufruf-Trick zum Lesen: der Ergebnis-Wert ist der »Buffer« + RVO"/>
|
<node CREATED="1783098286033" ID="ID_624769242" MODIFIED="1783178792544" TEXT="Aufruf-Trick zum Lesen: der Ergebnis-Wert ist der »Buffer« + RVO"/>
|
||||||
|
|
@ -83046,6 +83092,22 @@
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
<node COLOR="#600404" CREATED="1788647967297" ID="ID_1305009774" MODIFIED="1788647994866" TEXT="Urteil im Rückblick">
|
||||||
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
<node CREATED="1788648004697" ID="ID_927755243" MODIFIED="1788648051801" TEXT="schon zu Beginn hat sich abgezeichnet daß »Provision« ≙ »Grundkonzept«"/>
|
||||||
|
<node CREATED="1788648053926" ID="ID_543037586" MODIFIED="1788648072799" TEXT="aber die Interfaces konnte ich zunächst (Sommer 26) nicht fassen"/>
|
||||||
|
<node CREATED="1788648103436" ID="ID_1674639985" MODIFIED="1788648108794" TEXT="was aus diesen Ideen wurde....">
|
||||||
|
<node CREATED="1788648112734" ID="ID_1980269992" MODIFIED="1788648151271" TEXT="getypt ⟷ Buffer ⟹ das wurden die TypeHandler (im Domain-Interface)"/>
|
||||||
|
<node CREATED="1788648451429" ID="ID_1313344721" MODIFIED="1788648476677" TEXT="die generische getVal<TY> ist nun auf dem Parameter front-End">
|
||||||
|
<node CREATED="1788648483168" ID="ID_1677063473" MODIFIED="1788648497542" TEXT="Domain-Match implementiert das Disposition-Interface"/>
|
||||||
|
<node CREATED="1788648498646" ID="ID_377005098" MODIFIED="1788648520285" TEXT="...und greift dann per short-circuit zu / oder geht über den TypeHandler-Dispatch"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1788648164991" ID="ID_905673527" MODIFIED="1788648187809" TEXT=""convertible" ⟹ kann nun festgestellt werden da die Anzahl der Base-Typen fixiert wurde"/>
|
||||||
|
<node CREATED="1788648200132" ID="ID_1556066485" MODIFIED="1788648238874" TEXT="die "Buffer-Zugriffs-Mechanik" ist nun tatsächlich unter dem Titel "Disposition" implementiert"/>
|
||||||
|
<node CREATED="1788648252665" ID="ID_1281488307" MODIFIED="1788648272755" TEXT="das »virtuelle« Interface macht den Buffer-Typ komplett opaque"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1783097554556" ID="ID_1339731751" MODIFIED="1783097566222" TEXT="Domain">
|
<node CREATED="1783097554556" ID="ID_1339731751" MODIFIED="1783097566222" TEXT="Domain">
|
||||||
<node CREATED="1783097568770" ID="ID_1817564997" MODIFIED="1783097571619" TEXT="Interface">
|
<node CREATED="1783097568770" ID="ID_1817564997" MODIFIED="1783097571619" TEXT="Interface">
|
||||||
|
|
@ -84256,8 +84318,8 @@
|
||||||
<font NAME="SansSerif" SIZE="11"/>
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1788124658818" ID="ID_775970800" MODIFIED="1788124752033" TEXT="Rolle der (Scale)Prototypen bedenken">
|
<node CREATED="1788124658818" ID="ID_775970800" MODIFIED="1788124658818" TEXT="Rolle der (Scale)Prototypen bedenken">
|
||||||
<arrowlink COLOR="#332ab5" DESTINATION="ID_203751727" ENDARROW="Default" ENDINCLINATION="-1433;77;" ID="Arrow_ID_433092199" STARTARROW="None" STARTINCLINATION="-344;26;"/>
|
<arrowlink COLOR="#332ab5" DESTINATION="ID_203751727" ENDARROW="Default" ENDINCLINATION="-1438;69;" ID="Arrow_ID_433092199" STARTARROW="None" STARTINCLINATION="-344;26;"/>
|
||||||
<node CREATED="1788124774594" ID="ID_1701050119" MODIFIED="1788124792900" TEXT="⟹ Scale- und Typdefinitionen müssen immutable sein"/>
|
<node CREATED="1788124774594" ID="ID_1701050119" MODIFIED="1788124792900" TEXT="⟹ Scale- und Typdefinitionen müssen immutable sein"/>
|
||||||
<node CREATED="1788124793826" ID="ID_1129246210" MODIFIED="1788124987078" TEXT="dadurch lösen sich die meisten Probleme mit der Typ-Registrierung von selber">
|
<node CREATED="1788124793826" ID="ID_1129246210" MODIFIED="1788124987078" TEXT="dadurch lösen sich die meisten Probleme mit der Typ-Registrierung von selber">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
|
@ -85191,6 +85253,39 @@
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
<node CREATED="1788654131472" ID="ID_1807734347" MODIFIED="1788654185033" TEXT="Prototyp-Builder">
|
||||||
|
<linktarget COLOR="#c6386b" DESTINATION="ID_1807734347" ENDARROW="Default" ENDINCLINATION="29;104;" ID="Arrow_ID_1712704888" SOURCE="ID_1439464964" STARTARROW="None" STARTINCLINATION="176;0;"/>
|
||||||
|
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1788654157480" ID="ID_180727420" MODIFIED="1788654167767" TEXT="Problem: statische vs. dynamische Typisierung">
|
||||||
|
<icon BUILTIN="broken-line"/>
|
||||||
|
<node COLOR="#5b280f" CREATED="1788654460183" ID="ID_1493548979" MODIFIED="1788654476434" TEXT="mit dem bestehenden Builder-System nicht möglich">
|
||||||
|
<icon BUILTIN="stop-sign"/>
|
||||||
|
<node CREATED="1788654478721" ID="ID_1074229525" MODIFIED="1788654494518" TEXT="aber inhaltlich klar definiert"/>
|
||||||
|
<node CREATED="1788654483595" ID="ID_1047793900" MODIFIED="1788654491462" TEXT="und nicht ersichtlich warum es nicht gehen sollte"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1788654532382" ID="ID_1873037243" MODIFIED="1788654667438" TEXT="so etwas wäre aber gradezu die auszeichnende Fähigkeit des Builder-Ansatzes">
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
|
<node CREATED="1788655291159" ID="ID_843134849" MODIFIED="1788655306463" TEXT="wir haben dann eben mehrere Builder-Klassen"/>
|
||||||
|
<node CREATED="1788655317266" ID="ID_54539066" MODIFIED="1788655344253" TEXT="Builder<TY> sowie ProtoBuilder"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1788654668731" ID="ID_429473344" MODIFIED="1788657066747" TEXT="die Schwierigkeit besteht ehr darin, wie man das »Rekonfigurieren« mit dem API verbindet">
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
|
<node CREATED="1788655193044" ID="ID_137199832" MODIFIED="1788655224153" TEXT="Component / Composit-Design">
|
||||||
|
<node CREATED="1788655225447" ID="ID_955239990" MODIFIED="1788655240601" TEXT="die Immutability steckt dann erst im ParamType"/>
|
||||||
|
<node CREATED="1788655242557" ID="ID_166693318" MODIFIED="1788655258767" TEXT="das heißt: Scale ist die reine Spezifikations-Mechanik"/>
|
||||||
|
<node CREATED="1788655265170" ID="ID_1017749160" MODIFIED="1788655286597" TEXT="erst wenn eine Scale registriert wird, ist sie immutable">
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1788656839242" ID="ID_392888721" MODIFIED="1788656854065" TEXT="bleibt aber das Problem: der Typ ist opaque">
|
||||||
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
|
<node COLOR="#5b280f" CREATED="1788656871646" ID="ID_1325131915" MODIFIED="1788656955176" TEXT="generisch-getypter Code kann nicht von runtime-dynamischen Typ aufgerufen werden">
|
||||||
|
<icon BUILTIN="closed"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1788657034330" ID="ID_60370643" MODIFIED="1788657050967" TEXT="⟹ muß zwingend irgendwo eine Delegate haben..."/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -85246,8 +85341,23 @@
|
||||||
<node BACKGROUND_COLOR="#174956" COLOR="#8dfd49" CREATED="1788313090668" ID="ID_684424843" MODIFIED="1788313179645" STYLE="bubble" TEXT="erster einfachster Testfall GRÜN">
|
<node BACKGROUND_COLOR="#174956" COLOR="#8dfd49" CREATED="1788313090668" ID="ID_684424843" MODIFIED="1788313179645" STYLE="bubble" TEXT="erster einfachster Testfall GRÜN">
|
||||||
<edge COLOR="#61fe5b" STYLE="bezier" WIDTH="thin"/>
|
<edge COLOR="#61fe5b" STYLE="bezier" WIDTH="thin"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1788651832213" ID="ID_820925379" MODIFIED="1788651847845" TEXT="verify_Builder">
|
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1788651832213" ID="ID_820925379" MODIFIED="1788653981264" TEXT="verify_Builder">
|
||||||
<icon BUILTIN="hourglass"/>
|
<icon BUILTIN="pencil"/>
|
||||||
|
<node COLOR="#338800" CREATED="1788653988590" ID="ID_1096230694" MODIFIED="1788654069986" TEXT="Parameter von Wert ausgehend definieren">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
einfach — ist praktisch schon implementiert...
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="button_ok"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1788654074330" ID="ID_1439464964" MODIFIED="1788654198587" TEXT="von Prototyp bauen">
|
||||||
|
<arrowlink COLOR="#c6386b" DESTINATION="ID_1807734347" ENDARROW="Default" ENDINCLINATION="29;104;" ID="Arrow_ID_1712704888" STARTARROW="None" STARTINCLINATION="176;0;"/>
|
||||||
|
<icon BUILTIN="flag-pink"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1788651832214" ID="ID_613414026" MODIFIED="1788651847846" TEXT="verify_Identity">
|
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1788651832214" ID="ID_613414026" MODIFIED="1788651847846" TEXT="verify_Identity">
|
||||||
<icon BUILTIN="hourglass"/>
|
<icon BUILTIN="hourglass"/>
|
||||||
|
|
@ -85373,6 +85483,9 @@
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1788649529792" ID="ID_1643494812" MODIFIED="1788649536408" TEXT="Automations-Funktion">
|
||||||
|
<icon BUILTIN="hourglass"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1783088795196" ID="ID_1506122335" MODIFIED="1783088801007" TEXT="Einsichten">
|
<node CREATED="1783088795196" ID="ID_1506122335" MODIFIED="1783088801007" TEXT="Einsichten">
|
||||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue