Invocation: handle default case with disabled ''parameter functor''
Some further tweaks to the logic to allow using the `FeedPrototype` in the default setup, where ''nothing shall be done with parameters...'' Provide the basic constructors and a type constructor in FeedManifold, so that it is possible to install a ''processing functor'' into the prototype and then drop off a copy into each new `FeedManifold` With this additions, can now **demonstrate simple usage** __Remark__: using the `DiagnosticBufferProvider` developed several years ago; Seems to work well; however, when creating a new instance in the next test case, we get a hard failure when the previous test case did not discard all buffers. Not sure what to think about that * for one, it is good to get an alarm, since actually there should not be any leak * but on the other hand, `reset()` does imply IMHO „I want a clean slate“ Adding some code thus to clean out memory blocks marked as used. When a test wants to check that all memory was released, there are tools to do so.
This commit is contained in:
parent
479ab8cb15
commit
8923d0f7b5
6 changed files with 359 additions and 64 deletions
|
|
@ -67,6 +67,8 @@ namespace engine {
|
|||
TrackingHeapBlockProvider&
|
||||
DiagnosticBufferProvider::reset()
|
||||
{
|
||||
if (pImpl_)
|
||||
pImpl_->markAllEmitted();
|
||||
pImpl_.reset(new TrackingHeapBlockProvider());
|
||||
return *pImpl_;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ namespace engine {
|
|||
using lib::meta::is_Structured;
|
||||
using lib::meta::forEachIDX;
|
||||
using lib::meta::ElmTypes;
|
||||
using lib::meta::NullType;
|
||||
using lib::meta::Tagged;
|
||||
using lib::meta::TySeq;
|
||||
using std::declval;
|
||||
|
|
@ -265,7 +266,10 @@ namespace engine {
|
|||
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&>()))>;
|
||||
using Res = typename _Fun<PF>::Ret;
|
||||
|
||||
template<class PF>
|
||||
using isSuitable = std::is_constructible<Param, Res<PF>>;
|
||||
|
||||
template<class PF>
|
||||
using isConfigurable = std::is_constructible<bool, PF&>;
|
||||
|
|
@ -282,12 +286,25 @@ namespace engine {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
template<class PF>
|
||||
static constexpr bool isParamFun() { return isSuitable<PF>(); }
|
||||
template<class PF>
|
||||
static constexpr bool canActivate() { return isSuitable<PF>() and isConfigurable<PF>(); }
|
||||
};
|
||||
|
||||
/// a function of total void
|
||||
struct _Disabled
|
||||
{
|
||||
void operator() (void) const {/*I do make a difference, I really do!*/}
|
||||
};
|
||||
|
||||
}//(End)Introspection helpers.
|
||||
|
||||
|
||||
|
||||
template<class FUN, class PAM =_Disabled>
|
||||
class FeedPrototype;
|
||||
|
||||
/**
|
||||
* Configuration context for a FeedManifold.
|
||||
|
|
@ -330,7 +347,9 @@ namespace engine {
|
|||
{
|
||||
Param param;
|
||||
|
||||
ParamStorage() = default;
|
||||
ParamStorage()
|
||||
: param{}
|
||||
{ }
|
||||
|
||||
template<typename...INIT>
|
||||
ParamStorage (INIT&& ...paramInit)
|
||||
|
|
@ -356,7 +375,7 @@ namespace engine {
|
|||
using enable_if_hasParam = typename lib::meta::enable_if_c<_ProcFun<F>::hasParam()>::type;
|
||||
|
||||
template<class X>
|
||||
using NotProvided = Tagged<lib::meta::NullType, X>;
|
||||
using NotProvided = Tagged<NullType, X>;
|
||||
|
||||
template<bool yes, class B>
|
||||
using Provide_if = std::conditional_t<yes, B, NotProvided<B>>;
|
||||
|
|
@ -459,6 +478,14 @@ namespace engine {
|
|||
static constexpr bool hasParam() { return _S::hasParam(); }
|
||||
|
||||
|
||||
/**
|
||||
* cross-builder: _Prototype_ can be used to attach parameter-provider-functors
|
||||
* and then to create several further FeedManifold instances.
|
||||
*/
|
||||
using Prototype = FeedPrototype<FUN>;
|
||||
|
||||
|
||||
|
||||
template<size_t i, class ARG>
|
||||
auto&
|
||||
accessArg (ARG& arg)
|
||||
|
|
@ -519,7 +546,7 @@ namespace engine {
|
|||
* The Processing-Functor will be copied into the actual FeedManifold instance
|
||||
* for each Node invocation.
|
||||
* @tparam FUN type of the data processing-functor
|
||||
* @tparam PAM type of an optional parameter-setup functor
|
||||
* @tparam PAM type of an optional parameter-setup functor (defaults to deactivated)
|
||||
*/
|
||||
template<class FUN, class PAM>
|
||||
class FeedPrototype
|
||||
|
|
@ -531,15 +558,33 @@ namespace engine {
|
|||
FUN procFun_;
|
||||
PAM paramFun_;
|
||||
|
||||
public:
|
||||
FeedPrototype (FUN&& proc)
|
||||
: procFun_{move (proc)}
|
||||
, paramFun_{}
|
||||
{ }
|
||||
|
||||
FeedPrototype (FUN&& proc, PAM&& par)
|
||||
: procFun_{move (proc)}
|
||||
, paramFun_{move (par)}
|
||||
{ }
|
||||
// default move acceptable : pass pre-established setup
|
||||
|
||||
static constexpr bool hasParam() { return _Trait::hasParam(); }
|
||||
static constexpr bool hasParamFun() { return _Trait::template isParamFun<PAM>(); }
|
||||
static constexpr bool canActivate() { return _Trait::template canActivate<PAM>(); }
|
||||
|
||||
/**
|
||||
* build suitable Feed(Manifold) for processing Node invocation
|
||||
*/
|
||||
Feed
|
||||
createFeed (TurnoutSystem& turnoutSys)
|
||||
{
|
||||
if constexpr (_Trait::hasParam())
|
||||
if constexpr (hasParamFun())
|
||||
if (_Trait::isActivated(paramFun_))
|
||||
return Feed{paramFun_(turnoutSys), procFun_};
|
||||
return Feed{procFun_};
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1386 : elaborate setup / binding for parameter-creation
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -130,6 +130,14 @@ namespace engine {
|
|||
"allocation pool. This might lead to Segfault and memory leaks.");
|
||||
}
|
||||
|
||||
/** mark all managed blocks as disposed */
|
||||
void
|
||||
discard()
|
||||
{
|
||||
if (blockList_)
|
||||
for (Block& block : *blockList_)
|
||||
block.markReleased();
|
||||
}
|
||||
|
||||
uint
|
||||
prepare_for (uint number_of_expected_buffers)
|
||||
|
|
@ -283,6 +291,13 @@ namespace engine {
|
|||
return outSeq_.size();
|
||||
}
|
||||
|
||||
void
|
||||
TrackingHeapBlockProvider::markAllEmitted()
|
||||
{
|
||||
for (auto& [_, blockPool] : *pool_)
|
||||
blockPool.discard();
|
||||
}
|
||||
|
||||
diagn::Block&
|
||||
TrackingHeapBlockProvider::access_emitted (uint bufferID)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -141,6 +141,8 @@ namespace engine {
|
|||
template<typename TY>
|
||||
TY& accessAs (uint bufferID);
|
||||
|
||||
void markAllEmitted();
|
||||
|
||||
private:
|
||||
bool withinOutputSequence (uint bufferID) const;
|
||||
diagn::BlockPool& getBlockPoolFor (HashVal typeID);
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ namespace test {
|
|||
seedRand();
|
||||
verify_TurnoutSystem();
|
||||
verify_FeedManifold();
|
||||
verify_FeedPrototype();
|
||||
UNIMPLEMENTED ("build a simple render node and then activate it");
|
||||
}
|
||||
|
||||
|
|
@ -288,7 +289,7 @@ namespace test {
|
|||
|
||||
//______________________________________
|
||||
// Example-5: simple parameter and output
|
||||
auto fun_singleParamOut = [&](short param, Buffer* buff) { *buff = param-1; };
|
||||
auto fun_singleParamOut = [](short param, Buffer* buff) { *buff = param-1; };
|
||||
using M5 = FeedManifold<decltype(fun_singleParamOut)>;
|
||||
CHECK (not M5::hasInput());
|
||||
CHECK ( M5::hasParam());
|
||||
|
|
@ -310,6 +311,49 @@ namespace test {
|
|||
|
||||
m5.invoke();
|
||||
CHECK (*oa1 == r2 - 1); // processing has placed result based on param into output buffer
|
||||
|
||||
// done with these buffers
|
||||
buffI0.release();
|
||||
buffI1.release();
|
||||
buffI2.release();
|
||||
buffO0.release();
|
||||
buffO1.release();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test Setup of a FeeManifold to attach parameter-functors
|
||||
*/
|
||||
void
|
||||
verify_FeedPrototype()
|
||||
{
|
||||
// Prepare setup to build a suitable FeedManifold...
|
||||
long r1 = rani(100);
|
||||
using Buffer = long;
|
||||
BufferProvider& provider = DiagnosticBufferProvider::build();
|
||||
BuffHandle buff = provider.lockBufferFor<Buffer> (-55);
|
||||
|
||||
auto fun_singleParamOut = [](short param, Buffer* buff) { *buff = param-1; };
|
||||
using M1 = FeedManifold<decltype(fun_singleParamOut)>;
|
||||
using P1 = M1::Prototype;
|
||||
CHECK ( P1::hasParam());
|
||||
CHECK (not P1::hasParamFun());
|
||||
CHECK (not P1::canActivate());
|
||||
|
||||
P1 p1{move (fun_singleParamOut)};
|
||||
CHECK (sizeof(p1) <= sizeof(void*));
|
||||
TurnoutSystem turSys{Time::NEVER};
|
||||
|
||||
M1 m1 = p1.createFeed(turSys);
|
||||
CHECK (m1.param == short{});
|
||||
m1.outBuff.createAt(0, buff);
|
||||
CHECK (buff.accessAs<long>() == -55);
|
||||
m1.connect();
|
||||
CHECK (*m1.outArgs == -55);
|
||||
|
||||
m1.invoke();
|
||||
CHECK (*m1.outArgs == 0 - 1);
|
||||
CHECK (buff.accessAs<long>() == 0 - 1);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26631,9 +26631,7 @@
|
|||
<node CREATED="1553907087204" ID="ID_752287871" MODIFIED="1563469756375" TEXT="zuständig für das Einhängen und das vertikale Scrolling"/>
|
||||
<node CREATED="1678026759149" ID="ID_1362126122" MODIFIED="1678026778735" TEXT="künftig ggfs. auch für globale Belange">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
z.B. Folding
|
||||
|
|
@ -27392,9 +27390,7 @@
|
|||
</node>
|
||||
<node COLOR="#435e98" CREATED="1677426194737" ID="ID_465793703" MODIFIED="1677426300779" TEXT="mache aber die umgekehrte Ordnung im Kommentar klar">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...das ist nämlich potentiell verwirrend: der <i>Außenbogen</i>  bildet die <i>Innenkontur<b> </b></i>der Klammer, weil der Schwung von der Klammer weg nach oben bzw. unten geht
|
||||
|
|
@ -27953,9 +27949,7 @@
|
|||
<node CREATED="1677548906490" ID="ID_1334871412" MODIFIED="1677548924251" TEXT="aber was genau ist dann "font-size"?">
|
||||
<node CREATED="1677549097512" ID="ID_1309259825" MODIFIED="1677549382705" TEXT="warum kann man das nicht einfach explizit und klar sagen, Leute?">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Die ganze Doku, sowohl in GTK, alsauch die CSS Spec liest sich so, als wollte man sich vor einer Festlegung drücken. Möglicherweise hatte man Sorge, die dummen Leute würden zu einfache Schlußfolgerungen ziehen, und darob die Auflösung des Bildschirms übersehen — 96dpi ist ja nur ein <i>Default, </i>und ob 1pt= 1/72 inch wirklich gilt, darauf möchte sich niemand festnageln lasse, vermute ich (es hängt nämlich davon ab, daß Monitor und Grafikkarte diesen Wert richtig reporten)
|
||||
|
|
@ -28747,9 +28741,7 @@
|
|||
</node>
|
||||
<node CREATED="1555947482051" ID="ID_814853878" MODIFIED="1557498707228" TEXT="...und produziert den gleichen Compiler-Fehler">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wenn ich das Tupel als Referenz anliefere
|
||||
|
|
@ -29107,9 +29099,7 @@
|
|||
<node CREATED="1557590299574" ID="ID_1634972448" MODIFIED="1557590314138" TEXT="rein zufällig delegiere ich bereits über zwei Konstrukturen"/>
|
||||
<node COLOR="#338800" CREATED="1557590314884" ID="ID_1086686390" MODIFIED="1557590420718" TEXT="also einfach die Argument-Typen vom Funktions-Handler nehmen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
anstatt, wie es die bisherige (naive) implementierung macht,
|
||||
|
|
@ -29930,9 +29920,7 @@
|
|||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1674402620527" ID="ID_1633544285" MODIFIED="1674402871728" TEXT="sie bricht den strikten Bezug auf Canvas-Koordinaten und jeweils einen Track">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das Präludium gehört nicht zum Track, und für alle sonstigen Größenangaben gilt ein unmittelbarer Bezug auf die Canvas-Koordinaten; diese gelten <i>lokal für den Canvas</i>
|
||||
|
|
@ -31773,9 +31761,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1563117696328" ID="ID_1599825097" MODIFIED="1576282358048" TEXT="Konzeptioneller Fehler beim Zählen gefixt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
nicht nur die Ruler, auch das Prelude selber ist ein solches gePinntes Element (selbst wenn es leer ist)
|
||||
|
|
@ -33116,9 +33102,7 @@
|
|||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1679072150446" HGAP="99" ID="ID_1559178425" MODIFIED="1679072189402" VSHIFT="2">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
sollte <i>theoretisch</i> funktionieren....
|
||||
|
|
@ -33446,9 +33430,7 @@
|
|||
</node>
|
||||
<node CREATED="1611481905544" ID="ID_269249582" MODIFIED="1611482248833" TEXT="aber: ViewHooks ― keine generische Quer-Beweglichkeit">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...trotzdem wurde die Idee eines generischen UI-Layout-Frameworks nach gründlicher Untersuchung aufgegeben; dies System der ViewHooks stiftet uns also "nur" ein Baumuster, und wir beschränken uns auf die bekannte kleine Zahl der konkreten Fälle, welche weitgehend im DisplayFrame gebündelt sind. Deshalb gibt es nun hilfsweise das Zugangs-Interface ViewHooks, von dem man alle relevanten, speziell getypten ViewHook, bzw. Canvas-Hook eben <i>im aktuellen Display-Frame</i> (relatives Koordinatensystem) beziehen kann.
|
||||
|
|
@ -34379,9 +34361,7 @@
|
|||
<node CREATED="1479602341777" ID="ID_1610807382" MODIFIED="1557498707231" TEXT="empfängt DisplayStrategy"/>
|
||||
<node CREATED="1479602382195" ID="ID_1504834509" MODIFIED="1557498707231">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
kann sich selbst
|
||||
|
|
@ -34880,9 +34860,7 @@
|
|||
</node>
|
||||
<node COLOR="#821a26" CREATED="1586383188716" ID="ID_1268226317" MODIFIED="1586383420749" TEXT="muß daher komplett im Clip gespeichert werden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<font color="#e12e2e"><b>Vorsicht Falle</b></font>: es reicht nicht, nur die auf Pixel quantisierte Position zu speichern, denn diese wird bei geringem Zoom relativ ungenau. Es wäre leicht möglich, durch Heraus- und wieder Hereinscrollen die sichtbare Position eines Clip massiv zu verschieben.
|
||||
|
|
@ -35162,9 +35140,7 @@
|
|||
<node CREATED="1612474248183" ID="ID_1920258813" MODIFIED="1612474254178" TEXT="Neben-Constraint: Storage">
|
||||
<node CREATED="1612474255953" ID="ID_1180938524" MODIFIED="1612474796077" TEXT="den Pointer auf den View habe ich zwangsläufig">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Das ist eine Konsequenz aus dem Design des Diff-Framework; genauer, aus der konkreten Form, die die Implementierung des Diff-Framework bekommen hat: Und zwar, daß ein generischer Container gebunden wird. Das bedeutet, daß die Elemente im Container wie Werte behandelt werden. Und deshalb müssen sich Widgets selbständig vom Canvas abmelden. Die Alternative dazu wäre, daß der Parent den Diff interpretiert, und seine Kinder direkt manipuliert. Dann wären diese Kinder aber auch Widgets, und nicht nochmal indirekt als Presenter angebunden. Könnte man machen, habe ich aber ein mulmiges Gefühl. Da nehme ich dann doch lieber ein smart-Handle und einen Back-Pointer in Kauf.
|
||||
|
|
@ -81559,7 +81535,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1713793648079" ID="ID_907714892" MODIFIED="1730829794903" TEXT="vorhandener Code kann auf elementarer Ebene mitverwendet werden">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1713795084878" ID="ID_900623108" MODIFIED="1713795152331" TEXT="das Buffer-Protocol gilt als gesetzt">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1713795084878" ID="ID_900623108" MODIFIED="1734654127744" TEXT="das Buffer-Protocol gilt als gesetzt">
|
||||
<arrowlink COLOR="#263bd0" DESTINATION="ID_1121467988" ENDARROW="Default" ENDINCLINATION="168;345;" ID="Arrow_ID_1021571849" STARTARROW="None" STARTINCLINATION="16;273;"/>
|
||||
<linktarget COLOR="#3c61b7" DESTINATION="ID_900623108" ENDARROW="Default" ENDINCLINATION="-475;-40;" ID="Arrow_ID_245920004" SOURCE="ID_267762321" STARTARROW="None" STARTINCLINATION="-218;8;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node COLOR="#435e98" CREATED="1721958694600" ID="ID_769985598" MODIFIED="1721958851624" TEXT="dokumentiert durch: nur BufferProviderProtocol_test">
|
||||
|
|
@ -88744,6 +88721,100 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#f70b4e" DESTINATION="ID_1455684253" ENDARROW="Default" ENDINCLINATION="-91;-6;" ID="Arrow_ID_490366864" SOURCE="ID_1569263616" STARTARROW="None" STARTINCLINATION="-130;10;"/>
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734652629957" ID="ID_367075117" MODIFIED="1734657730391" TEXT="muß BuffHandle am Ende aufräumen">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node BACKGROUND_COLOR="#f8cbe0" COLOR="#a50125" CREATED="1734652654612" ID="ID_615803574" MODIFIED="1734652734403" TEXT="�� sonst gibts Ärger">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ERR: tracking-heap-block-provider.cpp:129: ~BlockPool: Block actively in use while shutting down BufferProvider allocation pool. This might lead to Segfault and memory leaks.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#c59b8e" COLOR="#690f14" CREATED="1734652908335" ID="ID_1168268714" MODIFIED="1734654458032">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wirkt alles noch <i>latent unfertig hier....</i>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#9b696f" DESTINATION="ID_1210803090" ENDARROW="Default" ENDINCLINATION="-1935;134;" ID="Arrow_ID_1515343755" STARTARROW="None" STARTINCLINATION="-1174;81;"/>
|
||||
<arrowlink COLOR="#cc6e7f" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="-37;-657;" ID="Arrow_ID_717618496" STARTARROW="None" STARTINCLINATION="827;61;"/>
|
||||
<icon BUILTIN="smiley-neutral"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1734652739509" ID="ID_401481499" MODIFIED="1734654463446" TEXT="es fehlt eine Funktion zum pauschalen Aufräumen">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734654476636" ID="ID_296907744" MODIFIED="1734654566337">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
auch Implementierung von <font face="Monospaced" color="#750db9">all_buffers_released</font><font face="Monospaced">()</font> fehlt
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Glorreich — <i>testgetriebene Entwicklung</i> und dann den wichtigen zentralen Test >10 Jahre lang auskommentiert rumstehen lassen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="smiley-angry"/>
|
||||
</node>
|
||||
<node COLOR="#862e72" CREATED="1734657284816" ID="ID_273646931" MODIFIED="1734657328403" TEXT="Hilfe! alles ziemlich komplex ... verstehe nur ungefähr...">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734657373286" ID="ID_661785602" MODIFIED="1734657708951" TEXT="zumindest sollte es m.E. keinen Alarm geben aus reset()">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1734657399795" ID="ID_1074735164" MODIFIED="1734657440927" TEXT="DiagnosticBufferProvider::build() ⟹ „ich will neu anfangen“"/>
|
||||
<node CREATED="1734657443028" ID="ID_37759896" MODIFIED="1734657496986" TEXT="aber reset() löscht einen bestehenden TrackingHeapBlockProvider weg"/>
|
||||
<node CREATED="1734657498036" ID="ID_1891657061" MODIFIED="1734657506693" TEXT="und der verwirft dann seine PoolTable"/>
|
||||
<node CREATED="1734657507757" ID="ID_1948993429" MODIFIED="1734657532777" TEXT="und diese wiederum terminiert mit einem Alarm — falls Blöcke offen hängen"/>
|
||||
<node COLOR="#338800" CREATED="1734657561989" ID="ID_1002603938" MODIFIED="1734657676493" TEXT="TrackingHeapBlockProvider::markAllEmitted()">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1734657576620" ID="ID_547379561" MODIFIED="1734657587934" TEXT="im BlockPool hängen die noch offenen Blöcke"/>
|
||||
<node CREATED="1734657589009" ID="ID_1122938755" MODIFIED="1734657608475" TEXT="was durch das Protokoll durch ist, geht in die outSeq_"/>
|
||||
<node CREATED="1734657609543" ID="ID_1931883679" MODIFIED="1734657644489">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
also muß ich im BlockPool alles als <i>released</i> markieren
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1734657650997" ID="ID_597301148" MODIFIED="1734657671746" TEXT="die BufferMetadat-Registry zeigt auch noch eine Warnung an">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1734657680261" ID="ID_514547250" MODIFIED="1734657685362" TEXT="das ist m.E. in Ordnung"/>
|
||||
<node CREATED="1734657686334" ID="ID_1651262657" MODIFIED="1734657700402">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
schließlich <i>soll man ja sauber arbeiten</i>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734657714210" ID="ID_1768481204" MODIFIED="1734657728086" TEXT="außerdem: im Test selber explizit alle Handles releasen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734310359146" ID="ID_1656582564" MODIFIED="1734536053863" TEXT="aufrufen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -88755,6 +88826,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1734631471232" ID="ID_1048829589" MODIFIED="1734631527235" TEXT="Feed-Prototype: Parameter-Behandlung zeigen">
|
||||
<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 BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734646019529" ID="ID_332184252" MODIFIED="1734646090013" TEXT="Setup: FeedManifold mit einfachem Output-Buffer...">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node CREATED="1734657744165" ID="ID_241443684" MODIFIED="1734657761772" TEXT="erst mal einfachst mögliche Processing-Function">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node COLOR="#338800" CREATED="1734657776472" ID="ID_1334839474" MODIFIED="1734657800976" TEXT="FeedManifold instantiieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734657789598" ID="ID_452572995" LINK="#ID_189910811" MODIFIED="1734658019920" TEXT="aufrufen ohne Parameter">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733525831136" ID="ID_1553180375" MODIFIED="1733527489987" TEXT="NodeBuilder_test">
|
||||
|
|
@ -92291,17 +92374,38 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1734571114213" ID="ID_43601788" MODIFIED="1734571251260" TEXT="beide Funktoren explizit per Value gegeben"/>
|
||||
<node CREATED="1734571350714" ID="ID_108774551" MODIFIED="1734571363533" TEXT="nur der Proc-Functor explizit per Value gegeben">
|
||||
<node CREATED="1734572263295" ID="ID_1485061295" MODIFIED="1734572273442" TEXT="das entspricht der aktuell implementieren Lösung"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1734572275188" ID="ID_534914797" MODIFIED="1734572295035" TEXT="der Proc-Functor muß dann default-konstruierbar sein">
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1734572275188" ID="ID_534914797" MODIFIED="1734658353181" TEXT="der Proc-Functor muß dann default-konstruierbar sein">
|
||||
<arrowlink DESTINATION="ID_1351680476" ENDARROW="Default" ENDINCLINATION="105;7;" ID="Arrow_ID_1208887635" STARTARROW="None" STARTINCLINATION="5;59;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734572306537" ID="ID_1442022066" MODIFIED="1734572315772" TEXT="Implementierung schrittweise aufbauen">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734572306537" ID="ID_1442022066" MODIFIED="1734646146983" TEXT="Implementierung schrittweise aufbauen">
|
||||
<arrowlink COLOR="#3490d0" DESTINATION="ID_1561585107" ENDARROW="Default" ENDINCLINATION="-19;-46;" ID="Arrow_ID_1276202297" STARTARROW="None" STARTINCLINATION="-184;12;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734572424754" ID="ID_1186353623" MODIFIED="1734582798770" TEXT="Typ anlegen mit zwei Funktor-Parametern">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#435e98" CREATED="1734658230227" ID="ID_1351680476" MODIFIED="1734658432581" TEXT="brauche eine »Deaktiviert«-Default-Funktion">
|
||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1351680476" ENDARROW="Default" ENDINCLINATION="105;7;" ID="Arrow_ID_1208887635" SOURCE="ID_534914797" STARTARROW="None" STARTINCLINATION="5;59;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node COLOR="#5b280f" CREATED="1734658373113" ID="ID_1386239021" MODIFIED="1734658387775" TEXT="void oder ein Marker-Typ ist ungeschickt">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734658355554" ID="ID_49627513" MODIFIED="1734658414475" TEXT="leeres λ genügt nicht">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734658392893" HGAP="23" ID="ID_1393452414" MODIFIED="1734658425075" TEXT="Hilfsfunktion _Disabled" VSHIFT="-41">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734658272806" ID="ID_232133673" MODIFIED="1734658313456" TEXT="ohne weitere Konfiguration ⟹ nur Processing-Function weitergeben">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734658315096" ID="ID_901672624" MODIFIED="1734658328646" TEXT="Parameter-Tupel wird dann default-Konstruiert">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734572571310" ID="ID_762884176" MODIFIED="1734642685926" TEXT="Traits-Template für Parmeter-Funktor vorsehen">
|
||||
<icon BUILTIN="pencil"/>
|
||||
|
|
@ -92317,8 +92421,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
....das heißt, alle wichtigen Eigenschaften aus _ProcFun<FUN> müssen delegiert bereitgestellt werden...
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -92335,8 +92438,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
valide  ⟹  Funktor ist <i>brauchbar</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734640447354" ID="ID_1513968039" MODIFIED="1734642552192" TEXT="ist dieser Funktor dynamisch aktivierbar?">
|
||||
|
|
@ -92351,6 +92453,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1734642450134" ID="ID_21738548" MODIFIED="1734642472763" TEXT="sicherheitshalber doch auch die Param-Funktion dann deaktiveren"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1734658122509" ID="ID_925008538" MODIFIED="1734658210400" TEXT="hasParamFun(): hat tatsächlich nutzbaren Funktor">
|
||||
<linktarget COLOR="#5b88bd" DESTINATION="ID_925008538" ENDARROW="Default" ENDINCLINATION="-190;10;" ID="Arrow_ID_927679188" SOURCE="ID_1713601568" STARTARROW="None" STARTINCLINATION="220;15;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node CREATED="1734658155485" ID="ID_1572271675" MODIFIED="1734658185062" TEXT="canActivate(): zusätzlich ist dieser Funktor zur Laufzeit aktivier/deaktivierbar">
|
||||
<icon BUILTIN="info"/>
|
||||
</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;"/>
|
||||
|
|
@ -92389,6 +92498,30 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1734645843309" ID="ID_860706642" MODIFIED="1734645923949" TEXT="im Test-Setup prüfen">
|
||||
<linktarget COLOR="#418d52" DESTINATION="ID_860706642" ENDARROW="Default" ENDINCLINATION="-562;73;" ID="Arrow_ID_581949487" SOURCE="ID_1506431608" STARTARROW="None" STARTINCLINATION="-475;32;"/>
|
||||
<node CREATED="1734645927394" ID="ID_1561585107" LINK="#ID_332184252" MODIFIED="1734646140375" TEXT="NodeBase_test::verify_FeedPrototype()">
|
||||
<linktarget COLOR="#3490d0" DESTINATION="ID_1561585107" ENDARROW="Default" ENDINCLINATION="-19;-46;" ID="Arrow_ID_1276202297" SOURCE="ID_1442022066" STARTARROW="None" STARTINCLINATION="-184;12;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node CREATED="1734657891873" ID="ID_691202560" MODIFIED="1734657902719" TEXT="FeedPrototype erstellen">
|
||||
<node COLOR="#338800" CREATED="1734657905943" ID="ID_1031794967" LINK="#ID_189910811" MODIFIED="1734658482968" TEXT="FeedManifold ohne Parameter-Funktor">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#d8e0aa" COLOR="#0f6469" CREATED="1734657925045" ID="ID_189910811" MODIFIED="1734657972489" TEXT="wie üblich ... ein paar kleine Bugs">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1734658058658" ID="ID_1713601568" MODIFIED="1734658214396" TEXT="neues Status-Prädikat: hasParamFun">
|
||||
<arrowlink COLOR="#5b88bd" DESTINATION="ID_925008538" ENDARROW="Default" ENDINCLINATION="-190;10;" ID="Arrow_ID_927679188" STARTARROW="None" STARTINCLINATION="220;15;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734658447294" ID="ID_277685500" MODIFIED="1734658473657" TEXT="prüfen...">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1734658454301" ID="ID_704330240" MODIFIED="1734658478814" TEXT="tatsächlich default-konstruiert"/>
|
||||
<node COLOR="#435e98" CREATED="1734658464595" ID="ID_1811872585" MODIFIED="1734658478814" TEXT="Parameter wird verwendet"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734196584853" ID="ID_1949228582" MODIFIED="1734283386060" TEXT="Anordnung des Parameters für den Param-Funktor bedenken">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -92785,6 +92918,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1734556219075" ID="ID_1910303400" LINK="#ID_1059351113" MODIFIED="1734556349702" TEXT="Ha: komplexe gemischte Buffer-Parameter funktionieren auf Anhieb">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node CREATED="1734645695088" ID="ID_1506431608" LINK="#ID_1048829589" MODIFIED="1734645923948" TEXT="Einbindung in FeedPrototype austesten">
|
||||
<arrowlink COLOR="#418d52" DESTINATION="ID_860706642" ENDARROW="Default" ENDINCLINATION="-562;73;" ID="Arrow_ID_581949487" STARTARROW="None" STARTINCLINATION="-475;32;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734133400400" ID="ID_1364724277" MODIFIED="1734141875620" TEXT="zusätzlichen Funktor für die Parameter akzeptieren">
|
||||
|
|
@ -96798,6 +96935,11 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1731890254602" ID="ID_447051297" MODIFIED="1734388971845" TEXT="brauche Buffer">
|
||||
<arrowlink COLOR="#bb4c6b" DESTINATION="ID_1319945622" ENDARROW="Default" ENDINCLINATION="-663;35;" ID="Arrow_ID_542692149" STARTARROW="None" STARTINCLINATION="745;112;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1734653165700" HGAP="21" ID="ID_159987338" MODIFIED="1734654458033" TEXT="unklar wie weit BufferProvider entwickelt ist" VSHIFT="51">
|
||||
<linktarget COLOR="#cc6e7f" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="-37;-657;" ID="Arrow_ID_717618496" SOURCE="ID_1168268714" STARTARROW="None" STARTINCLINATION="827;61;"/>
|
||||
<linktarget COLOR="#cc6e7f" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="677;44;" ID="Arrow_ID_544228779" SOURCE="ID_1155618733" STARTARROW="Default" STARTINCLINATION="128;-1039;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728785939337" ID="ID_642847753" MODIFIED="1728785947978" TEXT="einfachste Berechnung direkt verifizieren">
|
||||
|
|
@ -98747,8 +98889,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#ca3e80" DESTINATION="ID_1795755773" ENDARROW="Default" ENDINCLINATION="333;-16;" ID="Arrow_ID_778082175" SOURCE="ID_1238813567" STARTARROW="None" STARTINCLINATION="-512;47;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1713824325760" ID="ID_1661035289" MODIFIED="1721958851624" TEXT="BufferProviderProtocol_test">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1713824325760" ID="ID_1661035289" MODIFIED="1734654073268" TEXT="BufferProviderProtocol_test">
|
||||
<linktarget COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_1311080426" SOURCE="ID_769985598" STARTARROW="None" STARTINCLINATION="-1176;64;"/>
|
||||
<linktarget COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_728270522" SOURCE="ID_173016592" STARTARROW="None" STARTINCLINATION="-1222;49;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1713824328087" ID="ID_1065671274" MODIFIED="1713824335184" TEXT="Standard-Fall fertigstellen"/>
|
||||
</node>
|
||||
|
|
@ -98964,8 +99107,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1711548381477" ID="ID_664146362" MODIFIED="1711552950392" TEXT="Buffer-Manager">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1711548381477" ID="ID_664146362" MODIFIED="1734654370564" TEXT="Buffer-Manager">
|
||||
<linktarget COLOR="#fec499" DESTINATION="ID_664146362" ENDARROW="Default" ENDINCLINATION="-1409;197;" ID="Arrow_ID_616778881" SOURCE="ID_722733788" STARTARROW="None" STARTINCLINATION="-794;96;"/>
|
||||
<linktarget COLOR="#5a4f77" DESTINATION="ID_664146362" ENDARROW="Default" ENDINCLINATION="-493;1406;" ID="Arrow_ID_297212964" SOURCE="ID_1433806835" STARTARROW="None" STARTINCLINATION="-1768;-2925;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1719249646221" ID="ID_403017464" MODIFIED="1719249923835" TEXT="Begriffe klarstellen">
|
||||
<arrowlink COLOR="#4b5a6c" DESTINATION="ID_1263834914" ENDARROW="Default" ENDINCLINATION="-668;-90;" ID="Arrow_ID_767640863" STARTARROW="None" STARTINCLINATION="-873;115;"/>
|
||||
|
|
@ -98987,6 +99131,31 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1711548732719" ID="ID_1723099061" MODIFIED="1715438041053" TEXT="erster Entwurf von 2011">
|
||||
<icon BUILTIN="help"/>
|
||||
<node BACKGROUND_COLOR="#c59b8e" COLOR="#690f14" CREATED="1734652908335" HGAP="112" ID="ID_1155618733" MODIFIED="1734653938102" TEXT="wie ist hier eigentlich der Stand??" VSHIFT="52">
|
||||
<arrowlink COLOR="#9b696f" DESTINATION="ID_1210803090" ENDARROW="Default" ENDINCLINATION="-1935;134;" ID="Arrow_ID_965284194" STARTARROW="None" STARTINCLINATION="-1174;81;"/>
|
||||
<arrowlink COLOR="#cc6e7f" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="677;44;" ID="Arrow_ID_544228779" STARTARROW="Default" STARTINCLINATION="128;-1039;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1734654001763" ID="ID_1121467988" MODIFIED="1734654178000">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das Buffer-Protocol von <b>2012</b>
|
||||
</p>
|
||||
<p>
|
||||
betrachte ich als verbindlich
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#263bd0" DESTINATION="ID_1121467988" ENDARROW="Default" ENDINCLINATION="168;345;" ID="Arrow_ID_1021571849" SOURCE="ID_900623108" STARTARROW="None" STARTINCLINATION="16;273;"/>
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#c5ac9e" COLOR="#435e98" CREATED="1721958694600" HGAP="37" ID="ID_173016592" MODIFIED="1734654190420" TEXT="Dokumentation: BufferProviderProtocol_test + BufferMetadata_test" VSHIFT="61">
|
||||
<arrowlink COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_728270522" STARTARROW="None" STARTINCLINATION="-1222;49;"/>
|
||||
<icon BUILTIN="list"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1711548848847" ID="ID_1937204740" MODIFIED="1711552414384" TEXT="Verbindung ⟷ low-level-Model">
|
||||
|
|
@ -139760,6 +139929,10 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
<linktarget COLOR="#454059" DESTINATION="ID_1595450559" ENDARROW="Default" ENDINCLINATION="-1036;-77;" ID="Arrow_ID_1704085390" SOURCE="ID_127710483" STARTARROW="None" STARTINCLINATION="-161;430;"/>
|
||||
</node>
|
||||
<node CREATED="1720994208167" ID="ID_985068668" MODIFIED="1720994229990" TEXT="BufferProvider">
|
||||
<node CREATED="1734654248346" ID="ID_1433806835" MODIFIED="1734654378412" TEXT="erstmals wirklich genutzt: »Playback Vertical Slice«">
|
||||
<arrowlink COLOR="#5a4f77" DESTINATION="ID_664146362" ENDARROW="Default" ENDINCLINATION="-493;1406;" ID="Arrow_ID_297212964" STARTARROW="None" STARTINCLINATION="-1768;-2925;"/>
|
||||
<icon BUILTIN="list"/>
|
||||
</node>
|
||||
<node CREATED="1720994687447" ID="ID_1402038286" MODIFIED="1720994796501" TEXT="für die RenderEngine relevante BufferProvider">
|
||||
<linktarget COLOR="#522544" DESTINATION="ID_1402038286" ENDARROW="Default" ENDINCLINATION="-657;-39;" ID="Arrow_ID_1160732485" SOURCE="ID_735498857" STARTARROW="None" STARTINCLINATION="-609;54;"/>
|
||||
</node>
|
||||
|
|
@ -149998,13 +150171,27 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1570812308345" FOLDED="true" ID="ID_595212266" MODIFIED="1582333970566" TEXT="Review">
|
||||
<node CREATED="1570812308345" FOLDED="true" ID="ID_595212266" MODIFIED="1734652811311" TEXT="Review">
|
||||
<icon BUILTIN="bell"/>
|
||||
<node CREATED="1570812319615" ID="ID_587624101" MODIFIED="1570812352560" TEXT="buffhandle.hpp">
|
||||
<arrowlink COLOR="#6997ce" DESTINATION="ID_572329221" ENDARROW="Default" ENDINCLINATION="-312;0;" ID="Arrow_ID_558667540" STARTARROW="None" STARTINCLINATION="241;-25;"/>
|
||||
<node CREATED="1570812358786" ID="ID_1531404447" MODIFIED="1570812369421" TEXT="2019-10">
|
||||
<node CREATED="1570812369993" ID="ID_1647231897" MODIFIED="1570812373524" TEXT="noch nicht verwendet"/>
|
||||
<node CREATED="1570812373920" ID="ID_1210803090" MODIFIED="1570812385603" TEXT="Testcode (TrackingHeapBlockProvider) sauber"/>
|
||||
<node CREATED="1570812373920" ID="ID_1210803090" MODIFIED="1734653131163" TEXT="Testcode (TrackingHeapBlockProvider)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
sieht aber soweit sauber aus...
|
||||
</p>
|
||||
<p>
|
||||
Wenngleich auch ziemlich elaboriert; all diese Tracking-Funktionalität war seinerzeit angelegt worden, aber nur oberflächlich getestet, weil der Render-Engine-Entwurf von 2012 letztlich steckengeblieben ist. Jetzt, 2024 beginne ich, den TrackingHeapBlockProvider zu für Tests zu nutzen, einfach weil er da ist — und stelle fest, daß einige Details unfertig und etwas unausgereift wirken....
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#9b696f" DESTINATION="ID_1210803090" ENDARROW="Default" ENDINCLINATION="-1935;134;" ID="Arrow_ID_1515343755" SOURCE="ID_1168268714" STARTARROW="None" STARTINCLINATION="-1174;81;"/>
|
||||
<linktarget COLOR="#9b696f" DESTINATION="ID_1210803090" ENDARROW="Default" ENDINCLINATION="-1935;134;" ID="Arrow_ID_965284194" SOURCE="ID_1155618733" STARTARROW="None" STARTINCLINATION="-1174;81;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1570812625135" ID="ID_126301727" MODIFIED="1570815492913" TEXT="typed-allocation-manager.hpp">
|
||||
|
|
|
|||
Loading…
Reference in a new issue