Activity-Lang: implement optional notification builders

This commit is contained in:
Fischlurch 2023-09-01 18:01:27 +02:00
parent 963dc38088
commit 44e840f27c
3 changed files with 25 additions and 20 deletions

View file

@ -133,7 +133,7 @@ namespace gear {
* present) and to increase the Gate's latch counter. Moreover, the Argument,
* _must be a `NOTIFY`_ and will be modified to store the link to this receiving
* Gate; typically this function is actually invoked starting from the other
* Term the prerequisite by invoking `appendNotificationTo(targetTerm)`.
* Term the prerequisite by invoking #appendNotificationTo(targetTerm).
*/
Term&
expectNotification (Activity& notificationSrc)
@ -154,7 +154,9 @@ namespace gear {
Term&
appendNotificationTo (Term& targetTerm)
{
UNIMPLEMENTED ("append NOTIFY and wire this through target.expectNotification()");
Activity& success = alloc_.create (Activity::NOTIFY);
insert (findTail (invoke_->next), &success);
targetTerm.expectNotification (success);
return *this;
}
@ -174,7 +176,9 @@ namespace gear {
Term&
requireDirectActivation()
{
UNIMPLEMENTED ("wire in self-Notification");
Activity& trigger = alloc_.create (Activity::NOTIFY);
expectNotification (trigger);
insert (post_, &trigger);
return *this;
}

View file

@ -491,6 +491,7 @@ namespace test {
.beforeInvocation("CTX-work").arg("5.155","")
.beforeInvocation("testJob") .arg("7.007",12345)
.beforeInvocation("CTX-done").arg("5.355",""));
cout << detector.showLog()<<endl;
}

View file

@ -77755,24 +77755,24 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693495502528" ID="ID_1513616803" MODIFIED="1693495682843" TEXT="Dependency-Notifications herstellen">
<linktarget COLOR="#865257" DESTINATION="ID_1513616803" ENDARROW="Default" ENDINCLINATION="910;65;" ID="Arrow_ID_1729642753" SOURCE="ID_99848990" STARTARROW="None" STARTINCLINATION="987;-87;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1693495502528" ID="ID_1513616803" MODIFIED="1693587705159" TEXT="Dependency-Notifications herstellen">
<linktarget COLOR="#526686" DESTINATION="ID_1513616803" ENDARROW="Default" ENDINCLINATION="910;65;" ID="Arrow_ID_1729642753" SOURCE="ID_99848990" STARTARROW="None" STARTINCLINATION="987;-87;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1693495715425" HGAP="40" ID="ID_1961334483" MODIFIED="1693495750410" TEXT="in der Planning-Pipeline ist der abh&#xe4;ngige Folge-Job als &#xbb;Parent&#xab; zug&#xe4;nglich" VSHIFT="-7">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1693495768326" HGAP="85" ID="ID_1696760158" MODIFIED="1693495799275" TEXT="daher &#x27f9; vom Ende zum Nachfolger schalten" VSHIFT="-1">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693495830346" ID="ID_1261227945" MODIFIED="1693496221054" TEXT="appendNotificationTo(targetTerm)">
<node COLOR="#435e98" CREATED="1693495768326" HGAP="85" ID="ID_1696760158" MODIFIED="1693587703548" TEXT="daher &#x27f9; vom Ende zum Nachfolger schalten" VSHIFT="-1">
<node COLOR="#338800" CREATED="1693495830346" ID="ID_1261227945" MODIFIED="1693587694778" TEXT="appendNotificationTo(targetTerm)">
<arrowlink COLOR="#786889" DESTINATION="ID_701999603" ENDARROW="Default" ENDINCLINATION="-1087;-893;" ID="Arrow_ID_893699409" STARTARROW="None" STARTINCLINATION="-687;55;"/>
<arrowlink COLOR="#4b8acc" DESTINATION="ID_1367094984" ENDARROW="Default" ENDINCLINATION="72;7;" ID="Arrow_ID_164230628" STARTARROW="None" STARTINCLINATION="119;9;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693495853623" ID="ID_1367094984" MODIFIED="1693496213723" TEXT="expectNotification(Activity&amp;)">
<node COLOR="#338800" CREATED="1693495853623" ID="ID_1367094984" MODIFIED="1693587696585" TEXT="expectNotification(Activity&amp;)">
<linktarget COLOR="#4b8acc" DESTINATION="ID_1367094984" ENDARROW="Default" ENDINCLINATION="72;7;" ID="Arrow_ID_164230628" SOURCE="ID_1261227945" STARTARROW="None" STARTINCLINATION="119;9;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693496733832" ID="ID_704638049" MODIFIED="1693496737576" TEXT="requireDirectActivation()">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1693496733832" ID="ID_704638049" MODIFIED="1693587697732" TEXT="requireDirectActivation()">
<icon BUILTIN="button_ok"/>
<node CREATED="1693496745497" ID="ID_1227868232" MODIFIED="1693496759948" TEXT="optionales Zusatz-Feature">
<icon BUILTIN="idea"/>
</node>
@ -80165,15 +80165,15 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node COLOR="#338800" CREATED="1693502193641" ID="ID_970318761" MODIFIED="1693528493228" TEXT="Grundstruktur wie scenario_RenderJob">
<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="1693495682842" TEXT="Aufschalten einer Notification">
<arrowlink COLOR="#865257" DESTINATION="ID_1513616803" ENDARROW="Default" ENDINCLINATION="910;65;" ID="Arrow_ID_1729642753" STARTARROW="None" STARTINCLINATION="987;-87;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1693432027554" ID="ID_1114094454" MODIFIED="1693587751299" TEXT="alle Extras zuschalten">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1693432039914" ID="ID_99848990" MODIFIED="1693587748742" TEXT="Aufschalten einer Notification">
<arrowlink COLOR="#526686" DESTINATION="ID_1513616803" ENDARROW="Default" ENDINCLINATION="910;65;" ID="Arrow_ID_1729642753" STARTARROW="None" STARTINCLINATION="987;-87;"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693502035815" ID="ID_706646924" MODIFIED="1693502281955" TEXT="Einschleifen einer requireDirectActivation()">
<node COLOR="#338800" CREATED="1693502035815" ID="ID_706646924" MODIFIED="1693587750080" TEXT="Einschleifen einer requireDirectActivation()">
<arrowlink COLOR="#5f98b9" DESTINATION="ID_158897194" ENDARROW="Default" ENDINCLINATION="597;427;" ID="Arrow_ID_908519316" STARTARROW="None" STARTINCLINATION="912;57;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693502289659" ID="ID_1184407673" MODIFIED="1693502335094" TEXT="zwei Testf&#xe4;lle">