Activity-Lang: also dispatch notifications
This commit is contained in:
parent
900f46b1d5
commit
32c08c0307
3 changed files with 135 additions and 181 deletions
|
|
@ -629,7 +629,12 @@ namespace gear {
|
|||
|
||||
switch (verb_) {
|
||||
case NOTIFY:
|
||||
return notifyTarget (now, executionCtx);
|
||||
{
|
||||
auto res = notifyTarget (now, executionCtx);
|
||||
if (activity::PASS == res)
|
||||
res=activity::SKIP; // prevent activation of NOTIFY.next
|
||||
return res;
|
||||
}
|
||||
case POST:
|
||||
case FEED: // signal just to proceed with next...
|
||||
return activity::PASS;
|
||||
|
|
|
|||
|
|
@ -355,7 +355,6 @@ namespace test {
|
|||
* - verify the basic outfitting and sane connectivity
|
||||
* - verify values reported by the BlockFlow allocator
|
||||
* - ensure the defined Job can be properly invoked
|
||||
* @todo WIP 8/23 ✔ define ✔ implement
|
||||
*/
|
||||
void
|
||||
termBuilder()
|
||||
|
|
@ -403,7 +402,14 @@ namespace test {
|
|||
/** @test verify the ability to _dispatch and perform_ a chain of activities.
|
||||
* - use a directly wired, arbitrary chain
|
||||
* - dispatch will activate all Activities
|
||||
* @todo WIP 8/23 🔁 define ⟶ implement
|
||||
* - however, when the Gate is configured to be blocked
|
||||
* (waiting on prerequisites), then the rest of the chain is not activated,
|
||||
* only a re-check of the Gate is scheduled for later (1.011 -> 2.011)
|
||||
* - the dispatch function also handles the notifications;
|
||||
* when a notification towards the Gate is dispatched, the Gate is
|
||||
* decremented and thereby opened; activation of the rest of the chain
|
||||
* is then planned (but not executed synchronously in the same call)
|
||||
* @todo WIP 8/23 ✔ define ✔ implement
|
||||
*/
|
||||
void
|
||||
dispatchChain()
|
||||
|
|
@ -419,9 +425,31 @@ namespace test {
|
|||
// insert instrumentation to trace activation
|
||||
detector.watchGate (post.next, "Gate");
|
||||
|
||||
CHECK (activity::PASS == ActivityLang::dispatchChain (post, tt, detector.executionCtx));
|
||||
CHECK (activity::PASS == ActivityLang::dispatchChain (post, tt, detector.executionCtx)); // start execution (case/seq == 0)
|
||||
CHECK (detector.verifyInvocation("Gate") .arg("1.011 ⧐ Act(GATE") // ...first the Gate was activated
|
||||
.beforeInvocation("after-Gate").arg("1.011 ⧐ Act(TICK") // ...then activation passed out of Gate...
|
||||
.beforeInvocation("CTX-tick") .arg("1.011")); // ...and finally the TICK invoked the λ-tick
|
||||
|
||||
cout << detector.showLog()<<endl;
|
||||
detector.incrementSeq();
|
||||
gate.data_.condition.incDependencies(); // Gate is blocked
|
||||
CHECK (activity::PASS == ActivityLang::dispatchChain (post, tt, detector.executionCtx)); // start execution (case/seq == 1)
|
||||
CHECK (detector.verifyInvocation("Gate") .seq(1).arg("1.011 ⧐ Act(GATE") // ...the Gate was activated...
|
||||
.beforeInvocation("CTX-post").seq(1).arg("2.011","Act(GATE","≺test::CTX≻")); // ...but was found blocked and re-scheduled itself to 2.011
|
||||
CHECK (detector.ensureNoInvocation("after-Gate").seq(1) // verify activation was not passed out behind Gate
|
||||
.afterInvocation("Gate").seq(1));
|
||||
CHECK (detector.ensureNoInvocation("CTX-tick").seq(1) // verify also the λ-tick was not invoked this time
|
||||
.afterInvocation("Gate").seq(1));
|
||||
|
||||
detector.incrementSeq();
|
||||
Activity notify{post.next}; // Notification via instrumented connection to the Gate
|
||||
|
||||
CHECK (activity::PASS == ActivityLang::dispatchChain (notify, tt, detector.executionCtx)); // dispatch a notification (case/seq == 2)
|
||||
CHECK (detector.verifyInvocation("Gate") .seq(2).arg("1.011 --notify-↯> Act(GATE") // ...notification dispatched towards the Gate
|
||||
.beforeInvocation("CTX-post").seq(2).arg("1.011","after-Gate","≺test::CTX≻")); // ...this opened the Gate and posted/requested activation of the rest of the chain
|
||||
CHECK (detector.ensureNoInvocation("after-Gate").seq(2) // verify that activation was not passed out directly
|
||||
.afterInvocation("CTX-post").seq(2));
|
||||
CHECK (detector.ensureNoInvocation("CTX-tick").seq(2) // verify also the λ-tick was not invoked directly
|
||||
.afterInvocation("CTX-post").seq(2));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -66047,9 +66047,7 @@
|
|||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1521779239745" ID="ID_1772115642" MODIFIED="1561827466113">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<u>Thema</u>: Memory access order constraints
|
||||
|
|
@ -66062,9 +66060,7 @@
|
|||
</node>
|
||||
<node CREATED="1521783156564" ID="ID_1193354198" MODIFIED="1521783219950">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<font color="#45317b">Grundidee</font>: <b>synchronizes-with</b>-Beziehung herstellen <i>auf Guard-Variable</i>
|
||||
|
|
@ -66078,9 +66074,7 @@
|
|||
<node CREATED="1521788428588" FOLDED="true" ID="ID_1454492096" MODIFIED="1561827483841" TEXT="lazy init">
|
||||
<node CREATED="1521788443562" ID="ID_699722245" MODIFIED="1521788611886" TEXT="acquire-release ist "ausreichend"">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...das meint zweierlei
|
||||
|
|
@ -66098,9 +66092,7 @@
|
|||
</node>
|
||||
<node CREATED="1521788638623" ID="ID_16016457" MODIFIED="1521788679409">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
essentiell ist, im Mutex-geschützten Bereich
|
||||
|
|
@ -66120,9 +66112,7 @@
|
|||
<node CREATED="1521788825341" ID="ID_984179535" MODIFIED="1521788870307" TEXT="memory_order_relaxed wäre korrekt"/>
|
||||
<node CREATED="1521788871702" ID="ID_1445815040" MODIFIED="1521789034029" TEXT="aber seq_cst ist tolerierbar und lesbarer">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
warum?
|
||||
|
|
@ -66151,9 +66141,7 @@
|
|||
</node>
|
||||
<node CREATED="1521789364195" ID="ID_603083662" MODIFIED="1521789452318" TEXT="die Antwort ist eindeutig "Nein"">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
es gilt schlichtweg als Architektur-Fehler, wenn hier eine Kollision geschiet.
|
||||
|
|
@ -66171,9 +66159,7 @@
|
|||
<node CREATED="1521789511870" ID="ID_553276693" MODIFIED="1521789526160" TEXT="Konsistenz-check und Service-Start im Mutex sind ausreichend"/>
|
||||
<node CREATED="1521789611377" ID="ID_923887770" MODIFIED="1521789676331" TEXT="aber der Service muß per memory_order_release veröffentlicht werden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...denn sonst könnte genau das gleiche Desaster passieren,
|
||||
|
|
@ -66196,9 +66182,7 @@
|
|||
<node CREATED="1521790108228" ID="ID_1075157743" MODIFIED="1521790114983" TEXT="das ist wiederum eine Architektur-Frage"/>
|
||||
<node CREATED="1521790115851" ID="ID_1077549103" MODIFIED="1521790219873" TEXT="theoretisch besteht er sehr wohl">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...d.h. das ganze Locking und die memory-order schützt uns hier <b>überhaupt nicht</b>!
|
||||
|
|
@ -66217,9 +66201,7 @@
|
|||
</node>
|
||||
<node CREATED="1521790222356" ID="ID_168283882" MODIFIED="1521790445457">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
unsere Architektur stellt aber sicher,
|
||||
|
|
@ -66230,9 +66212,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
warum?
|
||||
|
|
@ -66264,9 +66244,7 @@
|
|||
<node CREATED="1521790515308" ID="ID_1260618160" MODIFIED="1521790538596" TEXT="wenn der Subsystem-Manager den Applikations-Shutdown signalisiert"/>
|
||||
<node CREATED="1521790557030" ID="ID_663628696" MODIFIED="1521790571891">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
hier ist ein <b>Segfault</b> möglich
|
||||
|
|
@ -66292,9 +66270,7 @@
|
|||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1521791686994" ID="ID_1750734364" MODIFIED="1521791753975" TEXT="Erwartetes Ergebnis: wird nur geringfügig langsamer">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...denn wir sind auf x86_64 -- und diese Plattform ist per default <i>fast überall</i> sequentially coherent
|
||||
|
|
@ -66349,9 +66325,7 @@
|
|||
<node CREATED="1522113128835" ID="ID_166213716" MODIFIED="1522113152107" TEXT="kaskadierenden Zugriff als Factory"/>
|
||||
<node CREATED="1522113152999" ID="ID_1443678098" MODIFIED="1522113288917" TEXT="Instantiierungs-Check kann entfallen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...man <i>könnte</i> ihn aber genausogut auch machen.
|
||||
|
|
@ -66378,9 +66352,7 @@
|
|||
<node CREATED="1522113449575" ID="ID_644735948" MODIFIED="1522113456734" TEXT="acquire Lock<SUB>"/>
|
||||
<node CREATED="1522112395280" ID="ID_995036578" MODIFIED="1522113339076" TEXT="Instantiierungs-Check">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
hier notwendig, weil wir eine neue Factory-Funktion ablegen.
|
||||
|
|
@ -66433,9 +66405,7 @@
|
|||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1522387798572" HGAP="35" ID="ID_1522844249" MODIFIED="1522387935592" TEXT="war ein übriggebliebener Destruktor in einem Mock" VSHIFT="12">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
zwar wird beim Löschen des Mock
|
||||
|
|
@ -66458,9 +66428,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1522387936585" ID="ID_1922190351" MODIFIED="1522388778471" TEXT="es wäre besser, wenn Factory überhaupt nicht assignable wäre">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und man stattdessen explizit eine <i>gefährliche Funktion</i>  aufrufen muß
|
||||
|
|
@ -66565,9 +66533,7 @@
|
|||
</node>
|
||||
<node CREATED="1525193011555" ID="ID_822581772" MODIFIED="1525193186771" TEXT="ungefährlich, aber nicht sauber">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...da es sich ja nur um die <i>Factory</i> handelt,
|
||||
|
|
@ -66619,9 +66585,7 @@
|
|||
<node CREATED="1521790858701" ID="ID_1382870211" MODIFIED="1521790870103" TEXT="Belange die hier nicht behandelt werden"/>
|
||||
<node CREATED="1521790870898" ID="ID_662113030" MODIFIED="1521790886784">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Konsequenz: das ist <b>keine Library-Implementierung</b>
|
||||
|
|
@ -66724,9 +66688,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1522033106576" ID="ID_278956866" MODIFIED="1525124215463" TEXT="weitere Tests...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
die von der alten DependencyFactory abhängen
|
||||
|
|
@ -66791,9 +66753,7 @@
|
|||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1522388820751" ID="ID_721931573" MODIFIED="1522388962542" TEXT="ist doch ehr ein irreführender Name">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...wenn man nämlicht Lumiera's Lösung nicht genau kennt,
|
||||
|
|
@ -66812,9 +66772,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1522388857786" ID="ID_1151074517" MODIFIED="1522389011363">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<b>DependencyFactory</b> ist viel besser geeignet
|
||||
|
|
@ -66937,9 +66895,7 @@
|
|||
<node CREATED="1522638830367" ID="ID_792298822" MODIFIED="1522638835178" TEXT="PlayService"/>
|
||||
<node CREATED="1522638837022" ID="ID_362446492" MODIFIED="1522638876050">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
den habe ich <b>nicht mehr</b> über das Interface-System gemappt
|
||||
|
|
@ -66947,9 +66903,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
weil mir das ganze C-gefrickel zu blöd geworden ist.
|
||||
|
|
@ -66995,9 +66949,7 @@
|
|||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1522640064852" ID="ID_1332360368" MODIFIED="1522640101606">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
der Interface-<i>Anbieter</i> implementiert einen konkreten Proxy
|
||||
|
|
@ -67094,9 +67046,7 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#0e0099" CREATED="1522649812255" FOLDED="true" ID="ID_624985973" MODIFIED="1561827469161" STYLE="fork">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Modus der Definition
|
||||
|
|
@ -67126,9 +67076,7 @@
|
|||
</node>
|
||||
<node CREATED="1522729001386" ID="ID_242747417" MODIFIED="1522733826161" TEXT="ist mir bisher nicht gelungen...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...wir müssen immer, für jeden Proxy
|
||||
|
|
@ -67179,9 +67127,7 @@
|
|||
<node CREATED="1522698022005" ID="ID_518407557" MODIFIED="1522698033855" TEXT="müssen jeweils explizit von einem Template instantiiert werden"/>
|
||||
<node CREATED="1522698034563" ID="ID_1793485859" MODIFIED="1522698091426">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
brauchen eigenen Zugriffs-Mechanismus auf ein <i>weiteres</i> Handle-Objekt
|
||||
|
|
@ -67224,9 +67170,7 @@
|
|||
<node CREATED="1522704033950" ID="ID_1313113320" MODIFIED="1522704041464" TEXT="muß virtuellen dtor haben"/>
|
||||
<node CREATED="1522704194912" ID="ID_317190411" MODIFIED="1522704592454" TEXT="Problem: konkrete Proxy-Klasse muß in ServiceInstance::activate">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...oder sogar den ctor, das ist egal --
|
||||
|
|
@ -67289,9 +67233,7 @@
|
|||
</node>
|
||||
<node CREATED="1522733542453" ID="ID_239191861" MODIFIED="1522733895572" TEXT="Proxy-Instantiierung triggert nicht InstanceHandle">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
obwohl es das sollte.
|
||||
|
|
@ -67323,9 +67265,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1522733866272" ID="ID_762156149" MODIFIED="1522734019934" TEXT="aktuelle Lösung erscheint adäquat">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
sie ist zwar nicht schön -- aber was ist an einem Interface-Binding schon "schön"?
|
||||
|
|
@ -67355,9 +67295,7 @@
|
|||
<node CREATED="1522649583511" ID="ID_709785832" MODIFIED="1522649600993" TEXT="Instancehandle muß jetzt die Proxy-Implementierung sehen"/>
|
||||
<node CREATED="1522649601916" FOLDED="true" ID="ID_114261035" MODIFIED="1561827483842" TEXT="die beiden Seiten des Bindings sind damit fest verkoppelt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das ist ein konzeptionelles Problem.
|
||||
|
|
@ -67473,9 +67411,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1522557456894" ID="ID_627428103" MODIFIED="1522557498811">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und lib::Depend so umarrangiert,
|
||||
|
|
@ -67511,9 +67447,7 @@
|
|||
</node>
|
||||
<node CREATED="1522557152331" ID="ID_1546957816" MODIFIED="1522557415704">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
so wie das Advice-System geschrieben ist,
|
||||
|
|
@ -67524,9 +67458,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
denn grundsätzlich ist das ganze Advice-System bewußt "billig" implementiert;
|
||||
|
|
@ -67657,9 +67589,7 @@
|
|||
<node CREATED="1522018623861" ID="ID_1923633930" MODIFIED="1522018631776" TEXT="aber lebt bereits im globalen Speicher"/>
|
||||
<node CREATED="1522630364690" ID="ID_1442746804" MODIFIED="1522630460073" TEXT="ABER: LifecycleRegistry muß Meyer's Singleton bleiben">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...weil Nobug-Init ON_BASIC_INIT braucht,
|
||||
|
|
@ -67692,9 +67622,7 @@
|
|||
</node>
|
||||
<node CREATED="1521433748650" ID="ID_1831581678" MODIFIED="1522557016686">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
und heute würde ich den Code <i>so</i> nicht mehr schreiben
|
||||
|
|
@ -67705,9 +67633,7 @@
|
|||
</node>
|
||||
<node COLOR="#734e81" CREATED="1522451891933" ID="ID_695551107" MODIFIED="1522558416047" TEXT="...und er ist jetzt sogar kamputt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
genauer:
|
||||
|
|
@ -67766,9 +67692,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1522597569180" ID="ID_602663488" MODIFIED="1522597663372" TEXT="naja... nicht schön aber OK">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...es ruft sich selbst rekursiv auf, via Depend<AdviceSystem>
|
||||
|
|
@ -67779,9 +67703,7 @@
|
|||
</node>
|
||||
<node CREATED="1522597604367" ID="ID_1036644185" MODIFIED="1522597629034" TEXT="Alternative wäre aufwendig">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...nämlich eine ganz spezielle, dedzierte Aufräum-Routine schreiben
|
||||
|
|
@ -67852,9 +67774,7 @@
|
|||
<node CREATED="1563022290903" ID="ID_1738614427" MODIFIED="1563022298518" TEXT="Logik/Informations-Technik">
|
||||
<node CREATED="1563022305566" ID="ID_1375417763" MODIFIED="1563028982708">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das «<b>Regel</b>-System»
|
||||
|
|
@ -67867,9 +67787,7 @@
|
|||
</node>
|
||||
<node CREATED="1563022311632" ID="ID_1353415142" MODIFIED="1563028970867">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das «<b>Advice</b>-System»
|
||||
|
|
@ -67880,9 +67798,7 @@
|
|||
<node CREATED="1563022369373" ID="ID_201969563" MODIFIED="1563022372857" TEXT="von 2010"/>
|
||||
<node CREATED="1563022373578" ID="ID_1190645627" MODIFIED="1576282357966" TEXT="immer noch experimentell">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
auch in 2019...
|
||||
|
|
@ -67900,9 +67816,7 @@
|
|||
</node>
|
||||
<node CREATED="1563022416308" ID="ID_1045079282" MODIFIED="1563022427519">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ein <b>Whiteboard-System</b>
|
||||
|
|
@ -67942,9 +67856,7 @@
|
|||
<node CREATED="1563023275863" ID="ID_309537458" MODIFIED="1563023285142" TEXT="ja: das Advice-System ist inhärent stateful"/>
|
||||
<node CREATED="1563023286238" ID="ID_1249260795" MODIFIED="1563023304193" TEXT="man muß es ja nicht nutzen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
....denn es gibt die default-Lösung
|
||||
|
|
@ -67967,9 +67879,7 @@
|
|||
<node CREATED="1563023774448" ID="ID_139010445" MODIFIED="1563023779163" TEXT="bisher reiner Platzhalter"/>
|
||||
<node CREATED="1563023779807" ID="ID_871541450" MODIFIED="1563028909666" TEXT="umfunktionieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
im Sinne des Erfinders...
|
||||
|
|
@ -68052,9 +67962,7 @@
|
|||
<node CREATED="1522519009127" ID="ID_989945730" MODIFIED="1522519024864" TEXT="einfache Statics "sollten" lokal funktionieren"/>
|
||||
<node CREATED="1522519025972" ID="ID_714585131" MODIFIED="1522519142036" TEXT="das Problem ist, wenn man sich auf externe Statics abstützt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und das kann ziemlich indirekt passieren.
|
||||
|
|
@ -68070,9 +67978,7 @@
|
|||
<node CREATED="1522541262254" ID="ID_1609622536" MODIFIED="1522541279648" TEXT="genauer: wenn man sich auf on-demand (local) statics abstützt"/>
|
||||
<node CREATED="1522541280331" ID="ID_296029834" MODIFIED="1522541319853">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
C++ hällt die Erzeugungs/Zerstörungs-Reihenfolge <b>exakt</b> ein
|
||||
|
|
@ -68082,9 +67988,7 @@
|
|||
</node>
|
||||
<node CREATED="1522541321043" ID="ID_966332775" MODIFIED="1522541356223">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
d.h. wenn das local static <i>später erzeugt</i> wird, wird es <b>vor</b>  dem Hauptobjekt zerstört
|
||||
|
|
@ -68103,9 +68007,7 @@
|
|||
</node>
|
||||
<node CREATED="1522547285877" ID="ID_1921668956" MODIFIED="1525124102526">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Statische Initialisierung funktioniert <b>präzise</b>, korrekt und <b>zuverlässig</b>
|
||||
|
|
@ -68116,9 +68018,7 @@
|
|||
</node>
|
||||
<node CREATED="1522547330726" ID="ID_994306275" MODIFIED="1522547749968" TEXT="C++ stellt das eigens sicher -- man muß es nur erst mal verstehen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Der Aufruf von Konstrukturen statischer Objekte konstituiert eine (dynamische) Reihenfolge.
|
||||
|
|
@ -68195,9 +68095,7 @@
|
|||
<node CREATED="1538939507425" ID="ID_389830085" MODIFIED="1557498707236" TEXT="new Session">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477784813895" ID="ID_1478381189" MODIFIED="1557498707236">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<u>Aufgabe</u>: <i><font color="#821b58" size="4">produce dummy content</font></i>
|
||||
|
|
@ -68275,9 +68173,7 @@
|
|||
<node CREATED="1534002106999" ID="ID_354946108" MODIFIED="1557498707237" TEXT="GUI ist aber noch nicht gebaut"/>
|
||||
<node CREATED="1534002113086" ID="ID_1894075831" MODIFIED="1576282357965" TEXT="Audio und Video werden eigens unterschieden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...obwohl die betreffenden Assets in die Kategorie "Medien" fallen,
|
||||
|
|
@ -68298,9 +68194,7 @@
|
|||
<node CREATED="1534002202098" ID="ID_1411648485" MODIFIED="1557498707237" TEXT="diese Auto-Regisierung"/>
|
||||
<node CREATED="1534002225888" ID="ID_138566211" MODIFIED="1576282357965" TEXT="smart-Ptr als Handle nicht immer sinnvoll">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...nämlich genau <i>nicht</i> für alle Assets,
|
||||
|
|
@ -77959,13 +77853,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068444705" ID="ID_1936713026" MODIFIED="1690068449569" TEXT="stellt Setup bereit">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068450704" ID="ID_716451982" MODIFIED="1690068459871" TEXT="Dependency-Injection">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1690068450704" ID="ID_716451982" MODIFIED="1693431638406" TEXT="Dependency-Injection">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1690068675474" ID="ID_834417186" MODIFIED="1690068685091" TEXT="reine Konstruktor-DI genügt">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068461078" ID="ID_1000341702" MODIFIED="1690068687201" TEXT="BlockFlow">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1690068461078" ID="ID_1000341702" MODIFIED="1693431627892" TEXT="BlockFlow">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068469725" ID="ID_1098945451" MODIFIED="1690068479132" TEXT="λ-Bindings">
|
||||
|
|
@ -78066,8 +77960,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1693317661471" ID="ID_709533668" MODIFIED="1693317672145" TEXT="es wird stets der nächst greifbare Parameter verwendet"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1693345571268" ID="ID_1280713523" MODIFIED="1693345593849" TEXT="Ausführung einer Kette">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1693345571268" ID="ID_1280713523" MODIFIED="1693431656003" TEXT="Ausführung einer Kette">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1693345578139" ID="ID_1743236034" MODIFIED="1693345586916" TEXT="realisiert in Activity-Lang">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
|
|
@ -78083,9 +77977,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1693345633335" ID="ID_184362197" MODIFIED="1693345658139">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Verwaltung des <b>GroomingToken</b>
|
||||
|
|
@ -78096,14 +77988,14 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
<node CREATED="1693345687956" ID="ID_885356569" MODIFIED="1693345702766" TEXT="post() ≡ Eingangsverzweigung">
|
||||
<node CREATED="1693345771969" ID="ID_120381746" MODIFIED="1693345804830" TEXT="GroomingToken erlangt ⟹ Einstieg dispatch()"/>
|
||||
<node CREATED="1693345805685" ID="ID_941490506" MODIFIED="1693345824878" TEXT="sonst ⟹ Dispatch-Queue"/>
|
||||
<node COLOR="#435e98" CREATED="1693345771969" ID="ID_120381746" MODIFIED="1693431670621" TEXT="GroomingToken erlangt ⟹ Einstieg dispatch()"/>
|
||||
<node COLOR="#435e98" CREATED="1693345805685" ID="ID_941490506" MODIFIED="1693431671714" TEXT="sonst ⟹ Dispatch-Queue"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1690068830605" ID="ID_330404913" MODIFIED="1692567498691" TEXT="Activation">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1690068830605" ID="ID_330404913" MODIFIED="1693431707720" TEXT="Activation">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1690068838900" ID="ID_1597056190" MODIFIED="1690068897095" TEXT="Argumente">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1690068867288" ID="ID_1499789702" MODIFIED="1690068885342" TEXT="(*this Activity)"/>
|
||||
|
|
@ -80007,16 +79899,19 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1693426627134" ID="ID_468206154" MODIFIED="1693426685918" TEXT="dispatchChain">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1693426627134" ID="ID_468206154" MODIFIED="1693431591742" TEXT="dispatchChain">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1693426634246" ID="ID_1750182879" MODIFIED="1693426683358" TEXT="testet die Ausführungs-Funktion in ActivityLang">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1693426656634" ID="ID_965537081" MODIFIED="1693426681870" TEXT="verwendet eine künstliche, direkt verdrahtete Kette">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693426668288" ID="ID_1618574447" MODIFIED="1693426678575" TEXT="Abbruch bei SKIP">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1693426668288" ID="ID_1618574447" MODIFIED="1693431580213" TEXT="Abbruch bei SKIP">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1693431584333" ID="ID_1106229666" MODIFIED="1693431590469" TEXT="Zustellung einer Notification">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689200553782" ID="ID_472609287" MODIFIED="1689200578260" TEXT="scenario_RenderJob">
|
||||
|
|
@ -80024,6 +79919,32 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1693323299522" ID="ID_1282022548" MODIFIED="1693323306513" TEXT="Grundstruktur verdrahten">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693432027554" ID="ID_1114094454" MODIFIED="1693432038626" TEXT="alle Extras zuschalten">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693432039914" ID="ID_99848990" MODIFIED="1693432176338" TEXT="Aufschalten einer Notification">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693432052935" ID="ID_877534705" MODIFIED="1693432176338" TEXT="Einschleifen einer requireDirectActivation()">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693432167704" ID="ID_1355575152" MODIFIED="1693432176339" TEXT="Anhängen einer Folge-Notification">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693431821078" ID="ID_783748219" MODIFIED="1693431841260" TEXT="sinnvolle Instrumentierung (um Ausführungssequenz zeigen zu können)">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693431842683" ID="ID_713697304" MODIFIED="1693431894287">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
gesamte Kette ausführen per <font face="Monospaced" color="#262bbb">ActivityLang::dispatchChain()</font>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689200553782" ID="ID_1346681233" MODIFIED="1689200586861" TEXT="scenario_IOJob">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue