Invocation: adjustments to lib::Several to prepare for allocator use
* conduct analysis regarding allocator handling in the Builder * turns out we'll have to keep around two different allocators while building * ⟹ establish the goal to confine usage of the Node allocator to the lower Levels * consequently must open up the `lib::SeveralBuilder` to be usable as an intermediary data structure, while building up the target data * in the initial design, the `SeveralBuilder` was kept opaque, since contents can be expected to be re-located frequently and thus exposing elements and taking references could be dangerous — yet this is also true for `std::vector` however, so people are assumed to know when they want to shoot themselves into their own foot
This commit is contained in:
parent
58a955a879
commit
b01fc6e350
4 changed files with 167 additions and 31 deletions
|
|
@ -147,6 +147,8 @@ namespace lib {
|
|||
using std::is_const_v;
|
||||
using std::is_same_v;
|
||||
using lib::meta::is_Subclass;
|
||||
|
||||
using several::ArrayBucket;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -507,6 +509,20 @@ namespace lib {
|
|||
size_t capacity() const { return Coll::storageBuffSiz() / Coll::spread(); }
|
||||
size_t capReserve() const { return capacity() - size(); }
|
||||
|
||||
/** allow to peek into data emplaced thus far...
|
||||
* @warning contents may be re-allocated until the final \ref build()
|
||||
*/
|
||||
I&
|
||||
operator[] (size_t idx)
|
||||
{
|
||||
if (idx >= Coll::size())
|
||||
throw err::Invalid{_Fmt{"Access index %d >= size(%d)."}
|
||||
% idx % Coll::size()
|
||||
,LERR_(INDEX_BOUNDS)
|
||||
};
|
||||
return Coll::operator[] (idx);
|
||||
}
|
||||
|
||||
|
||||
private: /* ========= Implementation of element placement ================ */
|
||||
template<class IT>
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
|
||||
namespace lib {
|
||||
|
||||
namespace {// Storage header implementation details
|
||||
namespace several {// Storage header implementation details
|
||||
|
||||
/** @internal mix-in for self-destruction capabilities
|
||||
* @remark the destructor function is assumed to perform deallocation;
|
||||
|
|
@ -166,7 +166,7 @@ namespace lib {
|
|||
: util::MoveAssign
|
||||
{
|
||||
protected:
|
||||
using Bucket = ArrayBucket<I>*;
|
||||
using Bucket = several::ArrayBucket<I>*;
|
||||
|
||||
Bucket data_{nullptr};
|
||||
|
||||
|
|
|
|||
|
|
@ -55,6 +55,8 @@ using util::join;
|
|||
namespace lib {
|
||||
namespace test{
|
||||
|
||||
using LERR_(INDEX_BOUNDS);
|
||||
|
||||
namespace { // invocation tracking diagnostic subclass...
|
||||
|
||||
/**
|
||||
|
|
@ -193,7 +195,9 @@ namespace test{
|
|||
|
||||
builder.emplace<Num<3>>()
|
||||
.emplace<Num<2>>(1);
|
||||
CHECK (2 == builder.size());
|
||||
CHECK (2 == builder.size()); // use information functions...
|
||||
CHECK (3 == builder[1].getVal()); // to peek into contents assembled thus far...
|
||||
VERIFY_ERROR (INDEX_BOUNDS, builder[2] ); // runtime bounds check on the builder (but not on the product!)
|
||||
builder.fillElm(2);
|
||||
CHECK (4 == builder.size());
|
||||
builder.fillElm(3, 5);
|
||||
|
|
|
|||
|
|
@ -1248,9 +1248,7 @@
|
|||
</node>
|
||||
<node CREATED="1502402291209" ID="ID_1962599608" MODIFIED="1518487921051" TEXT="aber könnte SWIG-kompatibel sein">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...denn eigentlich geht es nur um ein einfaches Producer-Interface,
|
||||
|
|
@ -2032,9 +2030,7 @@
|
|||
</node>
|
||||
<node CREATED="1535636755202" ID="ID_507299995" MODIFIED="1535636897708" TEXT="kann grundsätzlich nicht alle Fälle abdecken">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wenn nämlich das "Expandieren" in einen weiter reichenden Zusammenhang integriert ist,
|
||||
|
|
@ -3328,9 +3324,7 @@
|
|||
</node>
|
||||
<node CREATED="1538356761143" ID="ID_1729059066" MODIFIED="1538356797681">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Konzept ist <i>nicht</i>, sie gleich in die description zu übernehmen
|
||||
|
|
@ -4483,9 +4477,7 @@
|
|||
<node CREATED="1481767665231" ID="ID_141423591" MODIFIED="1518487921056" TEXT="con">
|
||||
<node CREATED="1481767681797" ID="ID_1133339398" MODIFIED="1576282358149" TEXT="fragiler Lebenszyklus">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
meint: zwei gekoppelte Statusvariable
|
||||
|
|
@ -6883,9 +6875,7 @@
|
|||
<node CREATED="1486063886407" ID="ID_1294385692" MODIFIED="1518487921061" TEXT="sollte aus den weitverbreiteten Header-Includes raus"/>
|
||||
<node CREATED="1486063911188" ID="ID_1391435276" MODIFIED="1576282358134" TEXT="gegenwärtig Member im UiManager">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und der wird in der Tat an vielen Stellen includiert
|
||||
|
|
@ -8795,9 +8785,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...da IterExplorer einen Template-Template-Parameter nimmt,
|
||||
|
|
@ -10154,9 +10142,7 @@
|
|||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1512516629180" ID="ID_1157813472" MODIFIED="1512516672998" TEXT="oh wie traurig">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
will sagen, das ist ja auch eine durchgeknallte Idee....
|
||||
|
|
@ -10167,9 +10153,7 @@
|
|||
</node>
|
||||
<node CREATED="1512516682701" ID="ID_1471867999" MODIFIED="1512516706422">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wenn eine Funktion <i>in</i> einem Layer expanded
|
||||
|
|
@ -10179,9 +10163,7 @@
|
|||
</node>
|
||||
<node CREATED="1512516708649" ID="ID_474656011" MODIFIED="1512516797884" TEXT="dann muß sie sich zwischen Vater oder 1.Kind entscheiden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...d.h, entweder man gibt aus dem Functor das zurück,
|
||||
|
|
@ -82083,6 +82065,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1720221008511" ID="ID_1789484362" MODIFIED="1720221026822" TEXT="soll eine fluent-style-Aufrufkette ermöglichen"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1720143945014" ID="ID_1417701802" MODIFIED="1720317417964" TEXT="withAllocator(allo)">
|
||||
<linktarget COLOR="#817c91" DESTINATION="ID_1417701802" ENDARROW="Default" ENDINCLINATION="-112;1076;" ID="Arrow_ID_155810203" SOURCE="ID_1463946300" STARTARROW="None" STARTINCLINATION="-508;32;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1720179641909" ID="ID_931208358" MODIFIED="1720179644115" TEXT="Namen">
|
||||
<node CREATED="1720179652998" ID="ID_748409736" MODIFIED="1720179657194" TEXT="NodeBuilder"/>
|
||||
|
|
@ -82410,6 +82395,51 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1720058625192" ID="ID_1924296035" MODIFIED="1720058641546" TEXT="dagegen auf Level-2 gibt es nur auf Typ getemplatete Methoden"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720314562948" ID="ID_217083278" MODIFIED="1720314731490" TEXT="Daten für Build-Vorgang müssen von separatem Allocator verwaltet werden">
|
||||
<linktarget COLOR="#774459" DESTINATION="ID_217083278" ENDARROW="Default" ENDINCLINATION="-1063;40;" ID="Arrow_ID_711707696" SOURCE="ID_1044694589" STARTARROW="None" STARTINCLINATION="804;73;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1720316082204" ID="ID_1659113006" MODIFIED="1720316089812" TEXT="syntaktische Möglichkeiten">
|
||||
<node CREATED="1720316091467" ID="ID_1890331920" MODIFIED="1720316098390" TEXT="direkt über die Einstiegsfunktion"/>
|
||||
<node CREATED="1720316099218" ID="ID_852632283" MODIFIED="1720316118532" TEXT="über einen nachgeschalteten Qualifikator">
|
||||
<node CREATED="1720316124312" ID="ID_962601831" MODIFIED="1720316133266" TEXT="das wäre vorzuziehen, da lesbarer"/>
|
||||
<node CREATED="1720316134343" ID="ID_1579996543" MODIFIED="1720316195167" TEXT="ist aber nicht ganz trivial zu implementieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...da der Typ des Builders vom Allocator abhängt
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<arrowlink COLOR="#525474" DESTINATION="ID_1147972165" ENDARROW="Default" ENDINCLINATION="5;-93;" ID="Arrow_ID_965912718" STARTARROW="None" STARTINCLINATION="-226;14;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720314814568" ID="ID_1147972165" MODIFIED="1720316332816" TEXT="cross-Builder-Ansatz">
|
||||
<arrowlink COLOR="#721c55" DESTINATION="ID_1819027234" ENDARROW="Default" ENDINCLINATION="-426;-32;" ID="Arrow_ID_1938401610" STARTARROW="None" STARTINCLINATION="-70;384;"/>
|
||||
<linktarget COLOR="#525474" DESTINATION="ID_1147972165" ENDARROW="Default" ENDINCLINATION="5;-93;" ID="Arrow_ID_965912718" SOURCE="ID_1579996543" STARTARROW="None" STARTINCLINATION="-226;14;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1720314831505" ID="ID_993955080" MODIFIED="1720314835363" TEXT="Level-3">
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1720314955170" ID="ID_702805318" MODIFIED="1720314971125" TEXT="schwierig — Einstieg noch nicht wirklich klar">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
<node CREATED="1720314972101" ID="ID_906941544" MODIFIED="1720314994061" TEXT="brauche vermutlich dedizierten Einstiegs-Builder"/>
|
||||
<node CREATED="1720314999624" ID="ID_1634794642" MODIFIED="1720315050913" TEXT="es ist aber auch noch nicht klar, wie der Level-3-build-walk genau gestartet wird">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1720314836072" ID="ID_1147923922" MODIFIED="1720314839441" TEXT="Level-2">
|
||||
<node CREATED="1720317464400" ID="ID_823557133" MODIFIED="1720317484088" TEXT="versuche, hier auf Level-2 nur den Node-Allocator zu verwenden"/>
|
||||
<node CREATED="1720315060096" ID="ID_948989119" MODIFIED="1720317491855" TEXT="Level-3 muß letztlich den Allocator durchgeben"/>
|
||||
<node CREATED="1720315117369" ID="ID_1463946300" MODIFIED="1720317510552" TEXT="das muß passieren unmittelbar nach prepareNode()">
|
||||
<arrowlink COLOR="#817c91" DESTINATION="ID_1417701802" ENDARROW="Default" ENDINCLINATION="-112;1076;" ID="Arrow_ID_155810203" STARTARROW="None" STARTINCLINATION="-508;32;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -86140,6 +86170,17 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720313949720" ID="ID_545937744" MODIFIED="1720314520064" TEXT="Memory-Management einrichten">
|
||||
<linktarget COLOR="#e3426e" DESTINATION="ID_545937744" ENDARROW="Default" ENDINCLINATION="-403;31;" ID="Arrow_ID_1019256772" SOURCE="ID_1082077368" STARTARROW="None" STARTINCLINATION="467;53;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1720314305805" ID="ID_304028020" MODIFIED="1720314310083" TEXT="zwei Ebenen">
|
||||
<node CREATED="1720314310978" ID="ID_1044694589" MODIFIED="1720315408053" TEXT="Allokator für den Build-Vorgang">
|
||||
<arrowlink COLOR="#774459" DESTINATION="ID_217083278" ENDARROW="Default" ENDINCLINATION="-1063;40;" ID="Arrow_ID_711707696" STARTARROW="None" STARTINCLINATION="804;73;"/>
|
||||
<arrowlink COLOR="#774459" DESTINATION="ID_611643324" ENDARROW="Default" ENDINCLINATION="-1147;68;" ID="Arrow_ID_1972337488" STARTARROW="None" STARTINCLINATION="804;73;"/>
|
||||
</node>
|
||||
<node CREATED="1720314319630" ID="ID_1339736273" MODIFIED="1720314331059" TEXT="Allokator für die Render-Nodes (pro Segment)"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1713823682795" ID="ID_868323088" MODIFIED="1713823821819" TEXT="Klären der Probleme mit den Prototypen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#dfb29e" COLOR="#a50125" CREATED="1718927789851" ID="ID_1793832055" MODIFIED="1718927827690" TEXT="Gefahr der kombinatorischen Explosion">
|
||||
|
|
@ -87449,13 +87490,53 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719970214048" ID="ID_912277542" MODIFIED="1719970290253" TEXT="Builder-API">
|
||||
<arrowlink COLOR="#b82d72" DESTINATION="ID_1241897346" ENDARROW="Default" ENDINCLINATION="-200;386;" ID="Arrow_ID_1194515432" STARTARROW="None" STARTINCLINATION="-600;-89;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720285198414" ID="ID_1153319941" MODIFIED="1720285456652" TEXT="Grundlagen aufbauen">
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1720285198414" ID="ID_1153319941" MODIFIED="1720312452926" TEXT="Grundlagen aufbauen">
|
||||
<linktarget COLOR="#de3756" DESTINATION="ID_1153319941" ENDARROW="Default" ENDINCLINATION="-322;35;" ID="Arrow_ID_619451066" SOURCE="ID_1279225641" STARTARROW="None" STARTINCLINATION="833;-72;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1720285508129" ID="ID_1303842344" MODIFIED="1720285515458" TEXT="Refactoring Connectivity"/>
|
||||
<node CREATED="1720285518287" ID="ID_525600205" MODIFIED="1720285535616" TEXT="NodeBuilder"/>
|
||||
<node CREATED="1720285544539" ID="ID_28916107" MODIFIED="1720285547718" TEXT="PortBuilder"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720314562948" ID="ID_611643324" MODIFIED="1720315408053" TEXT="separaten Allocator für den Builder einführen">
|
||||
<linktarget COLOR="#774459" DESTINATION="ID_611643324" ENDARROW="Default" ENDINCLINATION="-1147;68;" ID="Arrow_ID_1972337488" SOURCE="ID_1044694589" STARTARROW="None" STARTINCLINATION="804;73;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1720318492552" ID="ID_139926760" MODIFIED="1720318500106" TEXT="Probleme / Zweifel">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1720318501983" ID="ID_1668344828" MODIFIED="1720318529687" TEXT="zwei verschiedene Allocatoren in einem Builder sind verwirrend und gefährlich"/>
|
||||
<node CREATED="1720318530879" ID="ID_519349426" MODIFIED="1720318546580" TEXT="gut wäre, wenn auf einem Level nur ein Allocator relevant ist"/>
|
||||
<node CREATED="1720318547540" ID="ID_792899561" MODIFIED="1720318561458" TEXT="dann müßte aber Level-2 komplett auf dem Ziel-Allocator laufen">
|
||||
<node CREATED="1720318564566" ID="ID_506557297" MODIFIED="1720318595006" TEXT="er kann dann keine zusätzlichen Arbeitsdaten halten"/>
|
||||
<node CREATED="1720318693773" ID="ID_1481571004" MODIFIED="1720318706074" TEXT="bedeutet: alle angelegten Daten wandern in die Render-Node"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720316245567" ID="ID_1819027234" MODIFIED="1720316332817" TEXT="cross-Builder-Trick für Allokator einbauen">
|
||||
<linktarget COLOR="#721c55" DESTINATION="ID_1819027234" ENDARROW="Default" ENDINCLINATION="-426;-32;" ID="Arrow_ID_1938401610" SOURCE="ID_1147972165" STARTARROW="None" STARTINCLINATION="-70;384;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1720316338810" ID="ID_1548536358" MODIFIED="1720316355932" TEXT="hatte das erstmals für den SeveralBuilder so gemacht"/>
|
||||
<node CREATED="1720316421216" ID="ID_18485878" MODIFIED="1720316434730" TEXT="Vorteil: man bekommt einen dedizierten Scope für das Type-Rebinding"/>
|
||||
<node CREATED="1720316436796" ID="ID_554170067" MODIFIED="1720316451392" TEXT="Nachteil: geht nur per move und bei noch leerem Builder"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720318733128" ID="ID_594929215" MODIFIED="1720318752670" TEXT="zusätzliche Schwierigkeit: Typ für den Allocator">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1720318754853" ID="ID_1165422564" MODIFIED="1720318770806" TEXT="geht jeweils auch in den Zieldatentyp mit ein"/>
|
||||
<node CREATED="1720318787977" ID="ID_145712004" MODIFIED="1720318800043" TEXT="macht Klassendefinition kniffelig">
|
||||
<node CREATED="1720318802329" ID="ID_430923777" MODIFIED="1720318826079" TEXT="muß per decltype() abgreifen"/>
|
||||
</node>
|
||||
<node CREATED="1720318771515" ID="ID_1440673661" MODIFIED="1720318783185" TEXT="Ausnahme: lib::Several">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1720318828899" ID="ID_697070122" MODIFIED="1720360539626" TEXT="aber: erlaubt keinen Zugriff auf die abgelegten Daten">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node CREATED="1720318848113" ID="ID_1309186144" MODIFIED="1720318864488" TEXT="Begründung war: diese werden ggfs noch per re-alloc verschoben"/>
|
||||
<node CREATED="1720318865502" ID="ID_1725813889" MODIFIED="1720318886874" TEXT="das ist richtig, gilt aber für std::vector genauso"/>
|
||||
<node COLOR="#435e98" CREATED="1720358717835" ID="ID_158212025" MODIFIED="1720360536672" TEXT="⟹ diese Einschränkung fallenlassen">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1719968038589" HGAP="38" ID="ID_177982013" MODIFIED="1719968051367" TEXT="Feststellungen" VSHIFT="30">
|
||||
|
|
@ -88674,6 +88755,41 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1720313463006" ID="ID_174350782" MODIFIED="1720313473601" TEXT="Speicher für den Build-Vorgang">
|
||||
<node CREATED="1720313766515" ID="ID_1082077368" MODIFIED="1720314524742" TEXT="Prototyp / Entwicklung">
|
||||
<arrowlink COLOR="#e3426e" DESTINATION="ID_545937744" ENDARROW="Default" ENDINCLINATION="-403;31;" ID="Arrow_ID_1019256772" STARTARROW="None" STARTINCLINATION="467;53;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
<node CREATED="1720313493545" ID="ID_992778398" MODIFIED="1720314530568" TEXT="Verwende separaten AllocationCluster für alle Meta/Build-Entitäten"/>
|
||||
<node CREATED="1720313512933" ID="ID_1508538563" MODIFIED="1720313529373" TEXT="dieser soll nach einem Build-Vorgang einfach weggeworfen werden">
|
||||
<node CREATED="1720313532365" ID="ID_111352025" MODIFIED="1720313536117" TEXT="gefährlich...">
|
||||
<node CREATED="1720313537075" ID="ID_416643606" MODIFIED="1720313566688">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
alle Werte müssen zuverlässig in die Zieldatenstruktur <b>kopiert</b>  werden
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1720313568317" ID="ID_106309971" MODIFIED="1720313594757" TEXT="das läßt sich nicht per Typsystem enforcen">
|
||||
<node CREATED="1720313596745" ID="ID_680303414" MODIFIED="1720313604212" TEXT="konsistentes Schema im Code verwenden"/>
|
||||
<node CREATED="1720313604920" ID="ID_59742346" MODIFIED="1720313618954" TEXT="grundsätzlich alles an einen »Allocator« ankoppeln"/>
|
||||
</node>
|
||||
<node CREATED="1720313621174" ID="ID_1172601220" MODIFIED="1720313636894" TEXT="idealerweise: möglichst viele POD-Daten verwenden"/>
|
||||
</node>
|
||||
<node CREATED="1720313675054" ID="ID_1333717893" MODIFIED="1720313710284" TEXT="Terminale build()-Operation braucht den Ziel-Allocator">
|
||||
<node CREATED="1720313711537" ID="ID_1085269" MODIFIED="1720313726346" TEXT="d.h. dort sind dann ggfs. zwei Allocatoren gleichzeitig im Einsatz"/>
|
||||
<node CREATED="1720313727222" ID="ID_499486223" MODIFIED="1720313739137" TEXT="auch dafür gibt es kein Sicherheitsnetz">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1715623570769" ID="ID_582193119" MODIFIED="1715623580607" TEXT="Allokations-Verwaltung per Segment"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue