Invocation: draft a library helper for chained inline tuples
The idea is to build an intrusive linked list of »storage frames«, each of which holds a tuple of arbitrarily typed values. For such a compound, the C++ »tuple protocol« can be implemented, recursively, serving as base for all actual data access...
This commit is contained in:
parent
8069c874f1
commit
bc6b69ce71
2 changed files with 94 additions and 66 deletions
|
|
@ -42,14 +42,15 @@
|
||||||
#define LIB_HETERO_DATA_H
|
#define LIB_HETERO_DATA_H
|
||||||
|
|
||||||
|
|
||||||
//#include "lib/error.hpp"
|
#include "lib/error.hpp"
|
||||||
//#include "lib/symbol.hpp"
|
//#include "lib/symbol.hpp"
|
||||||
#include "lib/nocopy.hpp"
|
#include "lib/nocopy.hpp"
|
||||||
#include "lib/linked-elements.hpp"
|
//#include "lib/linked-elements.hpp"
|
||||||
#include "lib/meta/typelist.hpp"
|
#include "lib/meta/typelist.hpp"
|
||||||
|
|
||||||
//#include <algorithm>
|
//#include <algorithm>
|
||||||
//#include <vector>
|
//#include <vector>
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
|
|
||||||
namespace lib {
|
namespace lib {
|
||||||
|
|
@ -63,6 +64,7 @@ namespace lib {
|
||||||
struct StorageFrame
|
struct StorageFrame
|
||||||
: StorageLoc
|
: StorageLoc
|
||||||
, std::tuple<DATA...>
|
, std::tuple<DATA...>
|
||||||
|
, util::NonCopyable
|
||||||
{
|
{
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
@ -77,18 +79,59 @@ namespace lib {
|
||||||
|
|
||||||
template<class TAIL, typename...DATA>
|
template<class TAIL, typename...DATA>
|
||||||
class HeteroData<meta::Node<StorageFrame<DATA...>,TAIL>>
|
class HeteroData<meta::Node<StorageFrame<DATA...>,TAIL>>
|
||||||
: protected StorageFrame<DATA...>
|
: StorageFrame<DATA...>
|
||||||
{
|
{
|
||||||
public:
|
using _Self = HeteroData;
|
||||||
size_t constexpr size();
|
using _Tail = HeteroData<TAIL>;
|
||||||
|
using Frame = StorageFrame<DATA...>;
|
||||||
|
|
||||||
|
static constexpr size_t localSiz = sizeof...(DATA);
|
||||||
|
|
||||||
template<size_t slot>
|
template<size_t slot>
|
||||||
|
static constexpr bool isLocal = slot < localSiz;
|
||||||
|
|
||||||
|
_Tail&
|
||||||
|
accessTail()
|
||||||
|
{
|
||||||
|
REQUIRE (Frame::next, "HeteroData storage logic broken: follow-up extent not yet allocated");
|
||||||
|
return * reinterpret_cast<_Tail*> (Frame::next);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
static constexpr size_t
|
||||||
|
size()
|
||||||
|
{
|
||||||
|
return localSiz + _Tail::size();
|
||||||
|
}
|
||||||
|
|
||||||
|
template<size_t slot>
|
||||||
|
using Elm_t = std::conditional<isLocal<slot>, std::tuple_element_t<slot,Frame>
|
||||||
|
, typename _Tail::template Elm_t<slot-localSiz>>;
|
||||||
|
|
||||||
|
template<size_t slot>
|
||||||
|
Elm_t<slot>&
|
||||||
|
get()
|
||||||
|
{
|
||||||
|
static_assert (slot < size(), "HeteroData access index beyond defined data");
|
||||||
|
if constexpr (slot < localSiz)
|
||||||
|
return std::get<slot> (*this);
|
||||||
|
else
|
||||||
|
return accessTail().template get<slot-localSiz>();
|
||||||
|
}
|
||||||
|
|
||||||
struct Navigator
|
struct Navigator
|
||||||
{
|
{
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
class HeteroData<meta::NullType>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static size_t constexpr size() { return 0; }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
} // namespace lib
|
} // namespace lib
|
||||||
#endif /*LIB_HETERO_DATA_H*/
|
#endif /*LIB_HETERO_DATA_H*/
|
||||||
|
|
|
||||||
|
|
@ -21111,9 +21111,7 @@
|
||||||
<node CREATED="1575219523764" ID="ID_1012093929" MODIFIED="1575219544539" TEXT="das wäre eine (indirekt) zirkuläre Beziehung zwischen Implementierungs-Enitäten"/>
|
<node CREATED="1575219523764" ID="ID_1012093929" MODIFIED="1575219544539" TEXT="das wäre eine (indirekt) zirkuläre Beziehung zwischen Implementierungs-Enitäten"/>
|
||||||
<node CREATED="1575219832435" ID="ID_1357635182" MODIFIED="1575219937587" TEXT="die aber effektiv (noch) nicht realisiert wird">
|
<node CREATED="1575219832435" ID="ID_1357635182" MODIFIED="1575219937587" TEXT="die aber effektiv (noch) nicht realisiert wird">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
will sagen: es gibt keinen Zugriff, der vom Canvas ausgeht, durch die TrackBodies durchsteigt, und dann indirekt in den Cavas zurück greift. Denn -- zumindest im Moment -- handelt es sich um zwei klar geschiedene Belange: einmal das Rendern der Track-Struktur, und andererseits das platzieren von Clips auf dem Canvas
|
will sagen: es gibt keinen Zugriff, der vom Canvas ausgeht, durch die TrackBodies durchsteigt, und dann indirekt in den Cavas zurück greift. Denn -- zumindest im Moment -- handelt es sich um zwei klar geschiedene Belange: einmal das Rendern der Track-Struktur, und andererseits das platzieren von Clips auf dem Canvas
|
||||||
|
|
@ -21543,9 +21541,7 @@
|
||||||
<node CREATED="1675387040398" ID="ID_184557686" MODIFIED="1675387059617" TEXT="DisplayFrame::getClipHook() ⟼ liefert DisplayFrame selber"/>
|
<node CREATED="1675387040398" ID="ID_184557686" MODIFIED="1675387059617" TEXT="DisplayFrame::getClipHook() ⟼ liefert DisplayFrame selber"/>
|
||||||
<node CREATED="1675387061219" ID="ID_317712434" MODIFIED="1675387122437" TEXT="⟹ DisplayFrame implementiert CanvasHook nur für eigentlichen Track-Content">
|
<node CREATED="1675387061219" ID="ID_317712434" MODIFIED="1675387122437" TEXT="⟹ DisplayFrame implementiert CanvasHook nur für eigentlichen Track-Content">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
<font face="Monospaced" color="#312a7f">int hookAdjY (int yPos)  override { return yPos + body_.getContentOffsetY(); };</font>
|
<font face="Monospaced" color="#312a7f">int hookAdjY (int yPos)  override { return yPos + body_.getContentOffsetY(); };</font>
|
||||||
|
|
@ -22091,9 +22087,7 @@
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1612003423875" ID="ID_781800644" MODIFIED="1612003549567">
|
<node CREATED="1612003423875" ID="ID_781800644" MODIFIED="1612003549567">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
Ursache ist ein <i>schiefes Design</i>
|
Ursache ist ein <i>schiefes Design</i>
|
||||||
|
|
@ -22905,9 +22899,7 @@
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
<i>"was kann denn schon passieren??"</i>
|
<i>"was kann denn schon passieren??"</i>
|
||||||
|
|
@ -23692,9 +23684,7 @@
|
||||||
<node CREATED="1555022710839" ID="ID_1166296639" MODIFIED="1557498707226" TEXT="muß in alle Nutzer injiziert werden"/>
|
<node CREATED="1555022710839" ID="ID_1166296639" MODIFIED="1557498707226" TEXT="muß in alle Nutzer injiziert werden"/>
|
||||||
<node CREATED="1555022761189" ID="ID_640769952" MODIFIED="1576282358077" TEXT="wie? geht wohl nur direkte Referenz">
|
<node CREATED="1555022761189" ID="ID_640769952" MODIFIED="1576282358077" TEXT="wie? geht wohl nur direkte Referenz">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
es ist hier kein by-Name-Zugriff,
|
es ist hier kein by-Name-Zugriff,
|
||||||
|
|
@ -25813,9 +25803,7 @@
|
||||||
<node CREATED="1575653121588" ID="ID_46973905" MODIFIED="1575653151603" TEXT="also bleibt nur, die Typisierung in den Funktions-Signaturen explizit auszudrücken"/>
|
<node CREATED="1575653121588" ID="ID_46973905" MODIFIED="1575653151603" TEXT="also bleibt nur, die Typisierung in den Funktions-Signaturen explizit auszudrücken"/>
|
||||||
<node CREATED="1576876291037" ID="ID_114617089" MODIFIED="1576876404029" TEXT="dieses Problem versuchen wir, "pragmatisch auszusitzen"">
|
<node CREATED="1576876291037" ID="ID_114617089" MODIFIED="1576876404029" TEXT="dieses Problem versuchen wir, "pragmatisch auszusitzen"">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
Streng genommen würden wir in der Tat einen generischen Quer-Zugriffsmechanismus brauchen.
|
Streng genommen würden wir in der Tat einen generischen Quer-Zugriffsmechanismus brauchen.
|
||||||
|
|
@ -29411,9 +29399,7 @@
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1557590733137" ID="ID_297834334" MODIFIED="1557590812186" TEXT="Kopier-Verhalten im Detail untersucht">
|
<node COLOR="#338800" CREATED="1557590733137" ID="ID_297834334" MODIFIED="1557590812186" TEXT="Kopier-Verhalten im Detail untersucht">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
...jeodch nicht eigens im Test dokumentiert
|
...jeodch nicht eigens im Test dokumentiert
|
||||||
|
|
@ -33102,9 +33088,7 @@
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
<node CREATED="1564928904423" ID="ID_1736699496" MODIFIED="1564929052148" TEXT="das ist mäßig prickelnd....">
|
<node CREATED="1564928904423" ID="ID_1736699496" MODIFIED="1564929052148" TEXT="das ist mäßig prickelnd....">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
|
@ -37451,9 +37435,7 @@
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1614391836482" ID="ID_1023680019" MODIFIED="1614391943348" TEXT="diese Closure enthält die konkrete Gesten-Erkennung">
|
<node CREATED="1614391836482" ID="ID_1023680019" MODIFIED="1614391943348" TEXT="diese Closure enthält die konkrete Gesten-Erkennung">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
im Beispiel: in dieser Closure wird zunächste eine Verdrahtung auf das button_down-Event angelegt. Wenn diese aktiviert wird, schaltet die die Beobachtung eines ebenfalls vorsorglich verdrahteten motion_notify_event ein, sowie analog das Warten auf ein button_up
|
im Beispiel: in dieser Closure wird zunächste eine Verdrahtung auf das button_down-Event angelegt. Wenn diese aktiviert wird, schaltet die die Beobachtung eines ebenfalls vorsorglich verdrahteten motion_notify_event ein, sowie analog das Warten auf ein button_up
|
||||||
|
|
@ -39389,9 +39371,7 @@
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1621097661601" ID="ID_1771351130" MODIFIED="1621097708271">
|
<node CREATED="1621097661601" ID="ID_1771351130" MODIFIED="1621097708271">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
der Gesten-Controller sollte hier nicht mitmischen
|
der Gesten-Controller sollte hier nicht mitmischen
|
||||||
|
|
@ -40307,9 +40287,7 @@
|
||||||
<icon BUILTIN="stop-sign"/>
|
<icon BUILTIN="stop-sign"/>
|
||||||
<node CREATED="1666966164548" ID="ID_1667782386" MODIFIED="1666966185522" TEXT="nicht alle Parameter sind Zeiten">
|
<node CREATED="1666966164548" ID="ID_1667782386" MODIFIED="1666966185522" TEXT="nicht alle Parameter sind Zeiten">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
aber time::Control ist nur auf Zeiten ausgelegt
|
aber time::Control ist nur auf Zeiten ausgelegt
|
||||||
|
|
@ -40685,9 +40663,7 @@
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1667610042409" ID="ID_1645790878" MODIFIED="1667610212422" TEXT="es kann nicht die Aufgabe des ZoomWindow sein, sinnvolle Speicher-Limits einzuhalten">
|
<node CREATED="1667610042409" ID="ID_1645790878" MODIFIED="1667610212422" TEXT="es kann nicht die Aufgabe des ZoomWindow sein, sinnvolle Speicher-Limits einzuhalten">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
insofern muß es dann aber auch mit maximal großen Integer-Zahlen noch sauber funktionieren
|
insofern muß es dann aber auch mit maximal großen Integer-Zahlen noch sauber funktionieren
|
||||||
|
|
@ -40937,9 +40913,7 @@
|
||||||
<node CREATED="1667688595090" ID="ID_1458378798" MODIFIED="1667688601683" TEXT="äquivalent +1 µTick"/>
|
<node CREATED="1667688595090" ID="ID_1458378798" MODIFIED="1667688601683" TEXT="äquivalent +1 µTick"/>
|
||||||
<node CREATED="1667688946763" ID="ID_376119418" MODIFIED="1667689144112" TEXT="trotzdem unerwünscht ⟹ man kommt nicht zum Anfrang zurück">
|
<node CREATED="1667688946763" ID="ID_376119418" MODIFIED="1667689144112" TEXT="trotzdem unerwünscht ⟹ man kommt nicht zum Anfrang zurück">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
einmal stark reinzoomen, und dann wieder zurück ⟹ Bereich ist beschnitten und kleiner geworden; das ist lästig, weil die nächst größere Stufe deutlich größer ist; meiner Einschätzung nach wäre es weniger lästig, wenn man ein kleines bischen zu viel sieht, zumal sich das auf der nächsten Zweierpotenz einpendeln dürfte
|
einmal stark reinzoomen, und dann wieder zurück ⟹ Bereich ist beschnitten und kleiner geworden; das ist lästig, weil die nächst größere Stufe deutlich größer ist; meiner Einschätzung nach wäre es weniger lästig, wenn man ein kleines bischen zu viel sieht, zumal sich das auf der nächsten Zweierpotenz einpendeln dürfte
|
||||||
|
|
@ -41205,9 +41179,7 @@
|
||||||
<node CREATED="1667760086102" ID="ID_1300680991" MODIFIED="1667760242140" TEXT="S · dur muß Ganzzahl werden"/>
|
<node CREATED="1667760086102" ID="ID_1300680991" MODIFIED="1667760242140" TEXT="S · dur muß Ganzzahl werden"/>
|
||||||
<node CREATED="1667760247368" ID="ID_1551257128" MODIFIED="1667770564715" TEXT="lieder gibt es dafür viele Möglichkeiten...">
|
<node CREATED="1667760247368" ID="ID_1551257128" MODIFIED="1667770564715" TEXT="lieder gibt es dafür viele Möglichkeiten...">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
|
@ -87527,8 +87499,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
der Build-Prozeß belegt sukzessiv mehrere <i>abstrakte Slots</i>
|
der Build-Prozeß belegt sukzessiv mehrere <i>abstrakte Slots</i>
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1733611835596" ID="ID_858478342" MODIFIED="1733611855402" TEXT="einzelne ParamAgent-Nodes verwenden jeweils einen solchen Slot"/>
|
<node CREATED="1733611835596" ID="ID_858478342" MODIFIED="1733611855402" TEXT="einzelne ParamAgent-Nodes verwenden jeweils einen solchen Slot"/>
|
||||||
<node CREATED="1733611679582" ID="ID_1095525966" MODIFIED="1733611712314" TEXT="ein Buffer-Storage-Typ wird festgelegt">
|
<node CREATED="1733611679582" ID="ID_1095525966" MODIFIED="1733611712314" TEXT="ein Buffer-Storage-Typ wird festgelegt">
|
||||||
|
|
@ -87658,8 +87629,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
...das wäre fatal, denn dann würde die Abstraktion zusammenbrechen; etweder der Builder, oder (noch schlimmer) das Library-Plug-in müßte Render-Engine-Internals instrumentieren
|
...das wäre fatal, denn dann würde die Abstraktion zusammenbrechen; etweder der Builder, oder (noch schlimmer) das Library-Plug-in müßte Render-Engine-Internals instrumentieren
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1733619646970" ID="ID_1558562041" MODIFIED="1733619675762" TEXT="sondern (angepaßt an das beteits etablierte Nutz-Schema)....">
|
<node CREATED="1733619646970" ID="ID_1558562041" MODIFIED="1733619675762" TEXT="sondern (angepaßt an das beteits etablierte Nutz-Schema)....">
|
||||||
<node CREATED="1733619679644" ID="ID_1725579009" MODIFIED="1733619836796" TEXT="baue Node für Parameter-Funktion"/>
|
<node CREATED="1733619679644" ID="ID_1725579009" MODIFIED="1733619836796" TEXT="baue Node für Parameter-Funktion"/>
|
||||||
|
|
@ -87732,8 +87702,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
Damit wäre nämlich eine relativ sichere Storage auf dem Stack gegeben, und die Gegenwart der Parameter wäre trotzdem stets eindeutig dokumentiert. Auch im Hinblick darauf, daß vermutlich sehr häufig irgend welche Parameter fest gesetzt werden müssen (aber nicht per Automation bestimmt)
|
Damit wäre nämlich eine relativ sichere Storage auf dem Stack gegeben, und die Gegenwart der Parameter wäre trotzdem stets eindeutig dokumentiert. Auch im Hinblick darauf, daß vermutlich sehr häufig irgend welche Parameter fest gesetzt werden müssen (aber nicht per Automation bestimmt)
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1733700311670" ID="ID_459128266" MODIFIED="1733700345967">
|
<node CREATED="1733700311670" ID="ID_459128266" MODIFIED="1733700345967">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
|
|
@ -87743,8 +87712,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
die <b>explizite</b> Behandlung würde damit in das <b>konkrete Weaving-Pattern</b> verlegt
|
die <b>explizite</b> Behandlung würde damit in das <b>konkrete Weaving-Pattern</b> verlegt
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
<node CREATED="1733700351350" ID="ID_579640246" MODIFIED="1733700474434" TEXT="Node und Port bleiben unverändert">
|
<node CREATED="1733700351350" ID="ID_579640246" MODIFIED="1733700474434" TEXT="Node und Port bleiben unverändert">
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -87771,8 +87739,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
in diesem Fall hätten alle Bindings die gleiche Port-Subklasse, würden aber beim Zugriff auf die Parameter einen virtual call machen
|
in diesem Fall hätten alle Bindings die gleiche Port-Subklasse, würden aber beim Zugriff auf die Parameter einen virtual call machen
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -87812,8 +87779,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
Ich wollte mehr, und deshalb halte ich die Stelle für das TurnoutSystem offen — obwohl auf gegenwärtigem Stand seine verbleibende Funktionalität komplett in die interne Mechanik integriert werden könnte. Auf diesem gegenwärtigen Stand kann ich die Vorstellung noch nicht weiter entwickeln, weil mir der klare Blick auf den realen Gebrauch in den tatsächlichen Proportionen fehlt — aber ich hoffe, daß sich dann aus dem Einsatz eines Baukasten-Systems irgendwann klarere Muster codifizieren lassen
|
Ich wollte mehr, und deshalb halte ich die Stelle für das TurnoutSystem offen — obwohl auf gegenwärtigem Stand seine verbleibende Funktionalität komplett in die interne Mechanik integriert werden könnte. Auf diesem gegenwärtigen Stand kann ich die Vorstellung noch nicht weiter entwickeln, weil mir der klare Blick auf den realen Gebrauch in den tatsächlichen Proportionen fehlt — aber ich hoffe, daß sich dann aus dem Einsatz eines Baukasten-Systems irgendwann klarere Muster codifizieren lassen
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1733704467954" ID="ID_747211178" MODIFIED="1733704491711" TEXT="und alle konkreten Festlegungen können gefahrlos auf später verschoben werden">
|
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1733704467954" ID="ID_747211178" MODIFIED="1733704491711" TEXT="und alle konkreten Festlegungen können gefahrlos auf später verschoben werden">
|
||||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||||
|
|
@ -87830,8 +87796,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
<u>Fazit</u>: zurück zum ersten Konzept
|
<u>Fazit</u>: zurück zum ersten Konzept
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
<icon BUILTIN="forward"/>
|
<icon BUILTIN="forward"/>
|
||||||
<node CREATED="1733704588158" ID="ID_1436422105" MODIFIED="1733704675964" TEXT="Intrusiv verknüpfte Storage-Frames für das Turnout-System"/>
|
<node CREATED="1733704588158" ID="ID_1436422105" MODIFIED="1733704675964" TEXT="Intrusiv verknüpfte Storage-Frames für das Turnout-System"/>
|
||||||
<node CREATED="1733761653882" ID="ID_950074593" MODIFIED="1733761667427" TEXT="allerdings hält jeder Storage-Frame gleich ein Tupel von Werten"/>
|
<node CREATED="1733761653882" ID="ID_950074593" MODIFIED="1733761667427" TEXT="allerdings hält jeder Storage-Frame gleich ein Tupel von Werten"/>
|
||||||
|
|
@ -87855,8 +87820,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
einen Satz Parameter an anderer Stelle platzieren und <i>anhängen</i>
|
einen Satz Parameter an anderer Stelle platzieren und <i>anhängen</i>
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1733765203927" ID="ID_39536680" MODIFIED="1733765221728" TEXT="Accessor für einen Einzelwert bereitstellen"/>
|
<node CREATED="1733765203927" ID="ID_39536680" MODIFIED="1733765221728" TEXT="Accessor für einen Einzelwert bereitstellen"/>
|
||||||
<node CREATED="1733765657476" ID="ID_381368973" MODIFIED="1733765679248" TEXT="Zugriff per Accessor auf einer konkreten TurnoutSystem-Instanz"/>
|
<node CREATED="1733765657476" ID="ID_381368973" MODIFIED="1733765679248" TEXT="Zugriff per Accessor auf einer konkreten TurnoutSystem-Instanz"/>
|
||||||
|
|
@ -87868,8 +87832,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
Der Zugriff erfolgt unchecked, aber ein typsicherer Zugriff soll durch einen compile-time-Overlay gewährleistet sein. Essentiell ist, daß die typsicheren Accessoren erzeugt werden können <b>bevor</b> die konkrete Storage-Adressen bekannt sind
|
Der Zugriff erfolgt unchecked, aber ein typsicherer Zugriff soll durch einen compile-time-Overlay gewährleistet sein. Essentiell ist, daß die typsicheren Accessoren erzeugt werden können <b>bevor</b> die konkrete Storage-Adressen bekannt sind
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -87886,6 +87849,29 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733767147610" ID="ID_966052237" MODIFIED="1733767188150" TEXT="Zugriff auf einzelne Datenwerte per Accessor">
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733767147610" ID="ID_966052237" MODIFIED="1733767188150" TEXT="Zugriff auf einzelne Datenwerte per Accessor">
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="flag-yellow"/>
|
||||||
|
<node CREATED="1733794253049" ID="ID_524032108" MODIFIED="1733794287860" TEXT="Grundlage: das C++ - Tuple-Protocol implementieren">
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
<node CREATED="1733794297502" ID="ID_351966457" MODIFIED="1733794342665" TEXT="std::get<i>, tuple_element, tuple_size"/>
|
||||||
|
<node CREATED="1733794365237" ID="ID_623398750" MODIFIED="1733794391965" TEXT="per Rekursion-auf-den-Rest"/>
|
||||||
|
<node CREATED="1733794394120" ID="ID_1043742242" MODIFIED="1733794404675" TEXT="alles Weitere ist dann nur noch Umverpackung">
|
||||||
|
<icon BUILTIN="ksmiletris"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1733799780425" ID="ID_1147018230" MODIFIED="1733799890156" TEXT="Konsequenz: intrusive linked-List direkt implementieren">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
der Umweg über lib::LinkedElements ist überflüssig, zumal ich durch direkte rekursive Implementierung auch noch eine klare Fehlermeldung erzeugen kann, falls ein Nachfolge-Extent noch nicht alloziert wurde
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</richcontent>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1733799750738" ID="ID_532258033" MODIFIED="1733799768652" TEXT="Implementierung ausarbeiten">
|
||||||
|
<icon BUILTIN="pencil"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733767161520" ID="ID_1853669534" MODIFIED="1733767188150" TEXT="Standard-Definition für TurnoutSystem auf dieser Basis">
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733767161520" ID="ID_1853669534" MODIFIED="1733767188150" TEXT="Standard-Definition für TurnoutSystem auf dieser Basis">
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="flag-yellow"/>
|
||||||
|
|
@ -87893,7 +87879,6 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
|
||||||
<node CREATED="1733588494688" ID="ID_1675794578" MODIFIED="1733588502918" TEXT="alles Weitere: in Buffer legen">
|
<node CREATED="1733588494688" ID="ID_1675794578" MODIFIED="1733588502918" TEXT="alles Weitere: in Buffer legen">
|
||||||
<node CREATED="1733588511019" ID="ID_1891013981" MODIFIED="1733588526527" TEXT="die jeweilge Node kennt die benötige Buffer-Größe"/>
|
<node CREATED="1733588511019" ID="ID_1891013981" MODIFIED="1733588526527" TEXT="die jeweilge Node kennt die benötige Buffer-Größe"/>
|
||||||
<node CREATED="1733588527383" ID="ID_409052438" MODIFIED="1733588542281" TEXT="der Aufruf erzeugt in zwei Schritten">
|
<node CREATED="1733588527383" ID="ID_409052438" MODIFIED="1733588542281" TEXT="der Aufruf erzeugt in zwei Schritten">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue