Activity-Lang: abstracted execution framework complete and tested (closes: #1319)
This commit is contained in:
parent
95ae12bba1
commit
2e28f5d278
6 changed files with 98 additions and 127 deletions
|
|
@ -28,12 +28,9 @@
|
|||
** can be passed to the scheduler's messaging queue to cause the described
|
||||
** activities to be performed in the context of the Lumiera render engine.
|
||||
**
|
||||
** @warning mostly this is planned functionality
|
||||
** @see SchedulerActivity_test
|
||||
** @see activity.hpp definition of verbs
|
||||
**
|
||||
** @todo WIP-WIP-WIP 6/2023 »Playback Vertical Slice«
|
||||
**
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
|
|
@ -44,22 +41,36 @@
|
|||
#include "vault/gear/activity.hpp"
|
||||
#include "vault/gear/block-flow.hpp"
|
||||
#include "vault/gear/activity-term.hpp"
|
||||
//#include "lib/symbol.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
//#include <string>
|
||||
|
||||
|
||||
namespace vault{
|
||||
namespace gear {
|
||||
|
||||
// using util::isnil;
|
||||
// using std::string;
|
||||
using BlockFlowAlloc = BlockFlow<blockFlow::RenderConfig>;
|
||||
|
||||
|
||||
/**
|
||||
* TODO write type comment...
|
||||
|
||||
/*************************************************************************************//**
|
||||
* Term builder and execution framework to perform chains of _scheduler Activities_.
|
||||
* These are the verbs of a low-level execution language for render jobs; individual
|
||||
* \ref Activity records are managed by the \ref BlockFlow allocation scheme and maintained
|
||||
* until expiration their deadline. To enact a render job, a connection of Activities
|
||||
* will be suitably wired, and the entry point to start execution can be instructed
|
||||
* into the Scheduler.
|
||||
*
|
||||
* The ActivityLang object provides an _construction and execution service_
|
||||
* - it provides a builder API to construct _terms_ of properly wired Activity records
|
||||
* - the activity::Term serves as a transient object for wiring and configuration and
|
||||
* can be discarded after enqueuing the entry point of a chain.
|
||||
* - the static function ActivityLang::dispatchChain() provides the execution logic
|
||||
* for _activating_ a chain of Activities successively.
|
||||
* - for real usage, this execution environment needs some functionality implemented
|
||||
* in the scheduler, which -- for the purpose of Activity activation -- is abstracted
|
||||
* as an *Execution Context* with the following operations
|
||||
* ** λ-post : hand over a chain of Activities for (time bound) activation
|
||||
* ** λ-work : signal start of media processing and then leave »management mode«
|
||||
* ** λ-done : signal completion of media processing
|
||||
* ** λ-tick : activate an internal heartbeat and scheduler maintenance hook
|
||||
*
|
||||
* @see Activity
|
||||
* @see SchedulerActivity_test
|
||||
|
|
@ -69,7 +80,7 @@ namespace gear {
|
|||
BlockFlowAlloc& mem_;
|
||||
|
||||
public:
|
||||
// explicit
|
||||
explicit
|
||||
ActivityLang (BlockFlowAlloc& memManager)
|
||||
: mem_{memManager}
|
||||
{ }
|
||||
|
|
@ -153,6 +164,5 @@ namespace gear {
|
|||
};
|
||||
|
||||
|
||||
|
||||
}} // namespace vault::gear
|
||||
#endif /*SRC_VAULT_GEAR_ACTIVITY_LANG_H_*/
|
||||
|
|
|
|||
|
|
@ -55,9 +55,7 @@
|
|||
**
|
||||
** @see SchedulerActivity_test
|
||||
** @see ActivityLang implementation of execution logic
|
||||
**
|
||||
** @todo WIP-WIP 8/2023 »Playback Vertical Slice«
|
||||
**
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
|
|
@ -71,8 +69,6 @@
|
|||
#include "lib/meta/function.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
//#include <string>
|
||||
|
||||
|
||||
namespace vault{
|
||||
namespace gear {
|
||||
|
|
@ -80,11 +76,10 @@ namespace gear {
|
|||
using lib::time::TimeValue;
|
||||
using lib::time::TimeVar;
|
||||
using lib::time::Offset;
|
||||
// using util::isnil;
|
||||
// using std::string;
|
||||
|
||||
namespace error = lumiera::error;
|
||||
|
||||
|
||||
class Activity;
|
||||
|
||||
|
||||
|
|
@ -696,6 +691,5 @@ namespace gear {
|
|||
}
|
||||
|
||||
|
||||
|
||||
}} // namespace vault::gear
|
||||
#endif /*SRC_VAULT_GEAR_ACTIVITY_H_*/
|
||||
|
|
|
|||
|
|
@ -2,19 +2,19 @@ TESTING "Component Test Suite: Scheduler" ./test-suite --group=engine
|
|||
|
||||
|
||||
|
||||
PLANNED "Activity observation framework" ActivityDetector_test <<END
|
||||
TEST "Activity observation framework" ActivityDetector_test <<END
|
||||
return: 0
|
||||
END
|
||||
|
||||
|
||||
|
||||
PLANNED "BlockFlow memory management scheme" BlockFlow_test <<END
|
||||
Test "BlockFlow memory management scheme" BlockFlow_test <<END
|
||||
return: 0
|
||||
END
|
||||
|
||||
|
||||
|
||||
PLANNED "Scheduler Activity Language" SchedulerActivity_test <<END
|
||||
TEST "Scheduler Activity Language" SchedulerActivity_test <<END
|
||||
return: 0
|
||||
END
|
||||
|
||||
|
|
|
|||
|
|
@ -30,15 +30,13 @@
|
|||
#include "activity-detector.hpp"
|
||||
#include "vault/real-clock.hpp"
|
||||
#include "lib/time/timevalue.hpp"
|
||||
#include "lib/format-cout.hpp" /////////////////////////////TODO
|
||||
#include "lib/format-cout.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
//#include <utility>
|
||||
|
||||
//using test::Test;
|
||||
//using lib::time::Time;
|
||||
//using lib::time::FSecs;
|
||||
//using std::move;
|
||||
using lib::time::Time;
|
||||
using lib::time::FSecs;
|
||||
|
||||
using util::isSameObject;
|
||||
using lib::test::randStr;
|
||||
using lib::test::randTime;
|
||||
|
|
@ -48,14 +46,6 @@ namespace vault{
|
|||
namespace gear {
|
||||
namespace test {
|
||||
|
||||
// using lib::time::FrameRate;
|
||||
// using lib::time::Offset;
|
||||
using lib::time::Time;
|
||||
using lib::time::FSecs;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*****************************************************************//**
|
||||
* @test verify instrumentation setup to watch scheduler Activities.
|
||||
|
|
@ -82,8 +72,7 @@ namespace test {
|
|||
}
|
||||
|
||||
|
||||
/** @test TODO demonstrate a simple usage scenario
|
||||
* @todo WIP 7/23 🔁 define 🔁 implement
|
||||
/** @test demonstrate a simple usage scenario of this test support facility
|
||||
*/
|
||||
void
|
||||
simpleUsage()
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
** _detector Activity records_ is provided, which drop off event log messages
|
||||
** by side effect. These detector probes can be wired in as decorators into
|
||||
** an otherwise valid Activity-Term, allowing to watch and verify patterns
|
||||
** of invocation -- which might even happen concurrently.
|
||||
** of invocation.
|
||||
**
|
||||
** # Usage
|
||||
**
|
||||
|
|
@ -50,9 +50,19 @@
|
|||
** - ActivityDetector::buildDiadnosticFun(id) generates a functor object with
|
||||
** _arbitrary signature,_ which records any invocation and arguments.
|
||||
** The corresponding verification matcher is #verifyInvocation(id)
|
||||
** - ActivityDetector::buildMockJobFunctor(id) a JobFunctor implementation
|
||||
** suitably rigged to record invocations and arguments
|
||||
** - ActivityDetector::buildActivationProbe a debugging Activity to record activation
|
||||
** - ActivityDetector::insertActivationTap hooks this Activation-Probe before an
|
||||
** existing Activity-connection, so that passing on the activation can be detected
|
||||
** - ActivityDetector::watchGate rig a `GATE` activity by prepending and appending
|
||||
** an Activation-Probe, so that both incoming and outgoing activations can be traced
|
||||
** - ActivityDetector::executionCtx test setup of the execution environment abstraction
|
||||
** for performing chains of Activities; it provides the expected λ-functions as
|
||||
** instances of ActivityDetctor::DiagnosticFun, so that any invocation is recorded
|
||||
**
|
||||
** @todo WIP-WIP-WIP 8/2023 gradually gaining traction.
|
||||
** @see SchedulerActivity_test
|
||||
** @see ActivityDetector_test
|
||||
** @see EventLog_test (demonstration of EventLog capbabilities)
|
||||
*/
|
||||
|
||||
|
|
@ -65,35 +75,20 @@
|
|||
#include "lib/test/test-helper.hpp"
|
||||
#include "lib/test/event-log.hpp"
|
||||
|
||||
//#include "steam/play/dummy-play-connection.hpp"
|
||||
//#include "steam/fixture/node-graph-attachment.hpp"
|
||||
//#include "steam/fixture/segmentation.hpp"
|
||||
//#include "steam/mobject/model-port.hpp"
|
||||
//#include "steam/engine/dispatcher.hpp"
|
||||
//#include "steam/engine/job-ticket.hpp"
|
||||
#include "vault/gear/job.h"
|
||||
#include "vault/gear/activity.hpp"
|
||||
#include "vault/gear/nop-job-functor.hpp"
|
||||
//#include "vault/real-clock.hpp"
|
||||
//#include "lib/allocator-handle.hpp"
|
||||
#include "lib/time/timevalue.hpp"
|
||||
//#include "lib/diff/gen-node.hpp"
|
||||
//#include "lib/linked-elements.hpp"
|
||||
#include "lib/meta/variadic-helper.hpp"
|
||||
#include "lib/meta/function.hpp"
|
||||
#include "lib/wrapper.hpp"
|
||||
#include "lib/format-cout.hpp"
|
||||
#include "lib/format-util.hpp"
|
||||
//#include "lib/itertools.hpp"
|
||||
//#include "lib/depend.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
#include <functional>
|
||||
#include <utility>
|
||||
#include <string>
|
||||
#include <deque>
|
||||
//#include <tuple>
|
||||
//#include <map>
|
||||
|
||||
|
||||
namespace vault{
|
||||
|
|
@ -102,23 +97,14 @@ namespace test {
|
|||
|
||||
using std::string;
|
||||
using std::function;
|
||||
// using std::make_tuple;
|
||||
// using lib::diff::GenNode;
|
||||
// using lib::diff::MakeRec;
|
||||
using lib::time::TimeValue;
|
||||
using lib::time::Time;
|
||||
using lib::time::FSecs;
|
||||
using lib::time::Offset;
|
||||
// using lib::HashVal;
|
||||
using lib::meta::RebindVariadic;
|
||||
using util::isnil;
|
||||
using std::forward;
|
||||
using std::move;
|
||||
// using util::isSameObject;
|
||||
// using fixture::Segmentation;
|
||||
// using vault::RealClock;
|
||||
// using vault::gear::Job;
|
||||
// using vault::gear::JobClosure;
|
||||
|
||||
|
||||
namespace {// Diagnostic markers
|
||||
|
|
@ -167,29 +153,14 @@ namespace test {
|
|||
operator bool() const { return _Parent::operator bool(); }
|
||||
|
||||
|
||||
// EventMatch& locate (string match);
|
||||
// EventMatch& locateMatch (string regExp);
|
||||
// EventMatch& locateEvent (string match);
|
||||
// EventMatch& locateEvent (string classifier, string match);
|
||||
// EventMatch& locateCall (string match);
|
||||
//
|
||||
//
|
||||
// /* query builders to find a match stepping forwards */
|
||||
//
|
||||
// EventMatch& before (string match);
|
||||
// EventMatch& beforeMatch (string regExp);
|
||||
// EventMatch& beforeEvent (string match);
|
||||
// EventMatch& beforeEvent (string classifier, string match);
|
||||
/* query builder(s) to find a match stepping forwards */
|
||||
ActivityMatch& beforeInvocation (string match) { return delegate (&EventMatch::beforeCall, move(match)); }
|
||||
//
|
||||
//
|
||||
// /* query builders to find a match stepping backwards */
|
||||
//
|
||||
// EventMatch& after (string match);
|
||||
// EventMatch& afterMatch (string regExp);
|
||||
// EventMatch& afterEvent (string match);
|
||||
// EventMatch& afterEvent (string classifier, string match);
|
||||
// more here...
|
||||
|
||||
/* query builders to find a match stepping backwards */
|
||||
ActivityMatch& afterInvocation (string match) { return delegate (&EventMatch::afterCall, move(match)); }
|
||||
// more here...
|
||||
|
||||
|
||||
/** qualifier: additionally match the function arguments */
|
||||
template<typename...ARGS>
|
||||
|
|
@ -245,13 +216,13 @@ namespace test {
|
|||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Diagnostic context to record and evaluate activations within the Scheduler.
|
||||
* The provided tools and detectors are wired back internally, such as to record
|
||||
* any observations into an lib::test::EventLog instance. Thus, after performing
|
||||
* rigged functionality, the expected activities and their order can be verified.
|
||||
* @see ActivityDetector_test
|
||||
* @todo WIP-WIP-WIP 8/23 gradually building the verification tools needed...
|
||||
*/
|
||||
class ActivityDetector
|
||||
: util::NonCopyable
|
||||
|
|
|
|||
|
|
@ -77263,8 +77263,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1687908222714" HGAP="83" ID="ID_941383183" MODIFIED="1690068335344" TEXT="Darstellung" VSHIFT="2">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1687908222714" HGAP="83" ID="ID_941383183" MODIFIED="1693694660558" TEXT="Darstellung" VSHIFT="2">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1687908236975" ID="ID_692898121" MODIFIED="1687908476679" TEXT="eigentlich polymorph — aber in gemeinsamen Datenrecord encodiert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
|
|
@ -77425,9 +77425,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1688997822688" HGAP="33" ID="ID_469443507" MODIFIED="1693089834317" TEXT="ActivityTerm" VSHIFT="4">
|
||||
<node COLOR="#338800" CREATED="1688997822688" HGAP="33" ID="ID_469443507" MODIFIED="1693694551081" TEXT="ActivityTerm" VSHIFT="4">
|
||||
<linktarget COLOR="#4e4671" DESTINATION="ID_469443507" ENDARROW="Default" ENDINCLINATION="-463;535;" ID="Arrow_ID_1203697100" SOURCE="ID_1506436785" STARTARROW="None" STARTINCLINATION="-890;-116;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1688997860691" ID="ID_601062393" MODIFIED="1688997898044" TEXT="Builder-Struktur — macht einen Activity-Graphen semantisch zugänglich">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1688997906652" ID="ID_1309569324" MODIFIED="1688997918758" TEXT="wird nur in einem lokalen / transienten Kontext erzeugt"/>
|
||||
|
|
@ -77438,13 +77438,11 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688998623675" ID="ID_1567695201" MODIFIED="1693271127294" TEXT="usage-Scenarios">
|
||||
<node COLOR="#435e98" CREATED="1688998623675" ID="ID_1567695201" MODIFIED="1693694560177" TEXT="usage-Scenarios">
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="info"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688998631898" ID="ID_697542787" MODIFIED="1688998652420" TEXT="erst mal nur die »einfachen Render-Jobs«">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688998654071" ID="ID_923708494" MODIFIED="1688998677456" TEXT="Frame-Render-Job">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#435e98" CREATED="1688998654071" ID="ID_923708494" MODIFIED="1693694589378" TEXT="Frame-Render-Job">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1688998682403" ID="ID_647428374" MODIFIED="1688998983215" TEXT="zu erstellen (Job komplett)">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1688998699273" ID="ID_670845823" MODIFIED="1688998702452" TEXT="POST">
|
||||
|
|
@ -77452,9 +77450,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1688998714647" ID="ID_1212520042" MODIFIED="1688998724793" TEXT="frühestmoglich Start-Zeit / Deadline"/>
|
||||
</node>
|
||||
<node CREATED="1688998737324" ID="ID_1359190642" MODIFIED="1688998829651" TEXT="GATE">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688998831183" ID="ID_158897194" MODIFIED="1693502275691" TEXT="Inhibitor-Mechanismus muß zu frühe Freigabe verhindern">
|
||||
<node COLOR="#338800" CREATED="1688998831183" FOLDED="true" ID="ID_158897194" MODIFIED="1693694635612" TEXT="Inhibitor-Mechanismus muß zu frühe Freigabe verhindern">
|
||||
<linktarget COLOR="#5f98b9" DESTINATION="ID_158897194" ENDARROW="Default" ENDINCLINATION="597;427;" ID="Arrow_ID_908519316" SOURCE="ID_706646924" STARTARROW="None" STARTINCLINATION="912;57;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1689169379528" ID="ID_130475381" MODIFIED="1693500400879" TEXT="stellt sich die Frage nach Regel und Ausnahme">
|
||||
<linktarget COLOR="#ff8c4a" DESTINATION="ID_130475381" ENDARROW="Default" ENDINCLINATION="-1002;56;" ID="Arrow_ID_501288232" SOURCE="ID_1158823061" STARTARROW="None" STARTINCLINATION="1201;66;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -77526,13 +77525,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1689000122273" ID="ID_1422583341" MODIFIED="1689000141923" TEXT="Ankerpunkte">
|
||||
<arrowlink COLOR="#598fcf" DESTINATION="ID_942300026" ENDARROW="Default" ENDINCLINATION="11;-24;" ID="Arrow_ID_1092205676" STARTARROW="None" STARTINCLINATION="-232;48;"/>
|
||||
<node CREATED="1689000157534" ID="ID_1675125320" MODIFIED="1689000220860" TEXT="Gate wird nur bei Bedarf eingeschleift"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689000188849" ID="ID_1979509352" MODIFIED="1689000216482" TEXT="dies muß aber vor dem Instruct() passieren">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1689000188849" ID="ID_1979509352" MODIFIED="1693694608993" TEXT="dies muß aber vor dem Instruct() passieren">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688998666581" ID="ID_796453137" MODIFIED="1688998677457" TEXT="Media-Decoder-Job">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#435e98" CREATED="1688998666581" ID="ID_796453137" MODIFIED="1693694589377" TEXT="Media-Decoder-Job">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1688998682403" ID="ID_60823636" MODIFIED="1688998995125" TEXT="zu erstellen">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1688998997137" ID="ID_542318622" MODIFIED="1688999010459" TEXT="IO-Trigger">
|
||||
|
|
@ -77559,11 +77558,11 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1689000270813" ID="ID_360882448" MODIFIED="1689000284794" TEXT="Flag für Asynchronen Job"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688999761263" ID="ID_1842215336" MODIFIED="1688999765244" TEXT="Planungs-Job">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1688999770170" ID="ID_1797355919" MODIFIED="1688999777385" TEXT="zu erstellen">
|
||||
<node COLOR="#435e98" CREATED="1688999761263" ID="ID_1842215336" MODIFIED="1693694589377" TEXT="Planungs-Job">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1688999770170" ID="ID_1797355919" MODIFIED="1693694599008" TEXT="zu erstellen">
|
||||
<icon BUILTIN="info"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688999786193" ID="ID_1441495224" MODIFIED="1693176723190" TEXT="Achtung: hier kein Übergang in die Hintergrundverarbeitung">
|
||||
<node COLOR="#435e98" CREATED="1688999786193" ID="ID_1441495224" MODIFIED="1693694604561" TEXT="Achtung: hier kein Übergang in die Hintergrundverarbeitung">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -77611,8 +77610,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1693223327335" ID="ID_1106041031" MODIFIED="1693223365669" TEXT="muß Activities allozieren können"/>
|
||||
<node CREATED="1693223366762" ID="ID_1003919385" MODIFIED="1693223395968" TEXT="muß diese Fähigkeit an den Builder weiterreichen können"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1688999200998" ID="ID_1334461256" MODIFIED="1693271106975" TEXT="Term konstruieren">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1688999200998" ID="ID_1334461256" MODIFIED="1693694993877" TEXT="Term konstruieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1693178401960" ID="ID_1975660291" MODIFIED="1693178408828" TEXT="Fallunterscheidung zu Beginn">
|
||||
<node CREATED="1693178409769" ID="ID_246745518" MODIFIED="1693178433004" TEXT="Tick ⟹ explizit und separat"/>
|
||||
<node CREATED="1693178439042" ID="ID_1755797545" MODIFIED="1693178459860" TEXT="Basisfälle">
|
||||
|
|
@ -77647,8 +77646,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1693178805562" ID="ID_1048207081" MODIFIED="1693686526300" TEXT="Gate falls Notify aufgeschaltet">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1693686465783" ID="ID_1698611033" MODIFIED="1693686530330" TEXT="Callback-Notify für async IO">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1693686465783" FOLDED="true" ID="ID_1698611033" MODIFIED="1693695000551" TEXT="Callback-Notify für async IO">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1693687757081" ID="ID_1001875516" MODIFIED="1693690417189" TEXT="muß die Kette auftrennen">
|
||||
<arrowlink COLOR="#4478f6" DESTINATION="ID_1373563746" ENDARROW="Default" ENDINCLINATION="9;-26;" ID="Arrow_ID_1617906021" STARTARROW="None" STARTINCLINATION="62;6;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -78547,12 +78546,12 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1687568938113" ID="ID_1621332483" MODIFIED="1687568944537" TEXT="block-flow.cpp"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1689204967974" ID="ID_284088835" MODIFIED="1693328464228" TEXT="Test-Aufbau: ActivityDetector">
|
||||
<node COLOR="#338800" CREATED="1689204967974" FOLDED="true" ID="ID_284088835" MODIFIED="1693695157897" TEXT="Test-Aufbau: ActivityDetector">
|
||||
<linktarget COLOR="#794f4b" DESTINATION="ID_284088835" ENDARROW="Default" ENDINCLINATION="-751;-63;" ID="Arrow_ID_1213725911" SOURCE="ID_1647246120" STARTARROW="None" STARTINCLINATION="518;48;"/>
|
||||
<linktarget COLOR="#5f8998" DESTINATION="ID_284088835" ENDARROW="Default" ENDINCLINATION="-204;1111;" ID="Arrow_ID_1573724609" SOURCE="ID_373470992" STARTARROW="None" STARTINCLINATION="873;45;"/>
|
||||
<linktarget COLOR="#7a78a4" DESTINATION="ID_284088835" ENDARROW="Default" ENDINCLINATION="-1242;118;" ID="Arrow_ID_807229137" SOURCE="ID_1294988847" STARTARROW="None" STARTINCLINATION="772;49;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1689204985122" ID="ID_1020676746" MODIFIED="1692634792327" TEXT="Rahmen schaffen">
|
||||
<node COLOR="#338800" CREATED="1689204985122" FOLDED="true" ID="ID_1020676746" MODIFIED="1692634792327" TEXT="Rahmen schaffen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1689205014901" ID="ID_221497246" MODIFIED="1690832378644" TEXT="Instantiierung und Lebenszyklus">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -79017,7 +79016,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1689205081622" ID="ID_1440811513" MODIFIED="1692634756484" TEXT="Meßpunkte">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1689205105640" ID="ID_1975472338" MODIFIED="1692120794297" TEXT="Dummy-Funktor">
|
||||
<node COLOR="#338800" CREATED="1689205105640" FOLDED="true" ID="ID_1975472338" MODIFIED="1692120794297" TEXT="Dummy-Funktor">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1692114609799" ID="ID_742671204" MODIFIED="1692114749800" TEXT="was wird erzeugt?">
|
||||
<icon BUILTIN="help"/>
|
||||
|
|
@ -79704,7 +79703,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1688336218233" HGAP="-55" ID="ID_323523273" MODIFIED="1688337255857" TEXT="testgetriebener Aufbau" VSHIFT="34">
|
||||
<linktarget COLOR="#fe3a58" DESTINATION="ID_323523273" ENDARROW="Default" ENDINCLINATION="-167;17;" ID="Arrow_ID_589297136" SOURCE="ID_1968961000" STARTARROW="None" STARTINCLINATION="-139;-149;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1688336601091" ID="ID_1454374119" MODIFIED="1689993700816" TEXT="BlockFlow_test">
|
||||
<node COLOR="#338800" CREATED="1688336601091" FOLDED="true" ID="ID_1454374119" MODIFIED="1689993700816" TEXT="BlockFlow_test">
|
||||
<linktarget COLOR="#50c146" DESTINATION="ID_1454374119" ENDARROW="Default" ENDINCLINATION="-596;80;" ID="Arrow_ID_208594716" SOURCE="ID_836380061" STARTARROW="None" STARTINCLINATION="-331;-16;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1688336974018" ID="ID_1806920884" MODIFIED="1688337018608" TEXT="»Epoch« based memory layout">
|
||||
|
|
@ -80000,9 +79999,17 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1688336697451" ID="ID_360159435" MODIFIED="1693694303178" TEXT="SchedulerActivity_test">
|
||||
<node COLOR="#338800" CREATED="1688336697451" FOLDED="true" ID="ID_360159435" MODIFIED="1693695232010" TEXT="SchedulerActivity_test">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1688337038457" ID="ID_1859527374" MODIFIED="1688337060790" TEXT="»Activity Language« Functionality test">
|
||||
<node COLOR="#435e98" CREATED="1688337038457" ID="ID_1859527374" MODIFIED="1693695203513">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
»<b>Activity Language</b>« Functionality test
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node CREATED="1689200347787" ID="ID_927706508" MODIFIED="1689200349854" TEXT="Themen">
|
||||
|
|
@ -80011,7 +80018,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1689200449333" ID="ID_386403564" MODIFIED="1689200453433" TEXT="usage scenarios"/>
|
||||
</node>
|
||||
<node CREATED="1689201354393" HGAP="24" ID="ID_1250518280" MODIFIED="1689201365333" TEXT="Hilfsmittel" VSHIFT="2">
|
||||
<node COLOR="#338800" CREATED="1689201660559" ID="ID_747497995" MODIFIED="1692718533422" TEXT="ActivityDetector">
|
||||
<node COLOR="#338800" CREATED="1689201660559" FOLDED="true" ID="ID_747497995" MODIFIED="1693695210666" TEXT="ActivityDetector">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1689201667734" ID="ID_901153159" MODIFIED="1692286015665" TEXT="speziell verdrahtetes Setup">
|
||||
<icon BUILTIN="info"/>
|
||||
|
|
@ -80073,7 +80080,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1692718437941" ID="ID_1363192893" MODIFIED="1692723165688" TEXT="verifyActivity_Notify_dispatch">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1689199390484" ID="ID_212018049" MODIFIED="1692727125029" TEXT="verifyActivity_Gate">
|
||||
<node COLOR="#338800" CREATED="1689199390484" FOLDED="true" ID="ID_212018049" MODIFIED="1692727125029" TEXT="verifyActivity_Gate">
|
||||
<linktarget COLOR="#2c8d69" DESTINATION="ID_212018049" ENDARROW="Default" ENDINCLINATION="556;74;" ID="Arrow_ID_1693904148" SOURCE="ID_1220469732" STARTARROW="None" STARTINCLINATION="472;34;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1692723178576" ID="ID_214653366" MODIFIED="1692726894947" TEXT="pass">
|
||||
|
|
@ -80096,7 +80103,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1689200547247" ID="ID_1506436785" MODIFIED="1693328247993" TEXT="termBuilder">
|
||||
<node COLOR="#338800" CREATED="1689200547247" FOLDED="true" ID="ID_1506436785" MODIFIED="1693328247993" TEXT="termBuilder">
|
||||
<arrowlink COLOR="#4e4671" DESTINATION="ID_469443507" ENDARROW="Default" ENDINCLINATION="-463;535;" ID="Arrow_ID_1203697100" STARTARROW="None" STARTINCLINATION="-890;-116;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1693269179507" ID="ID_286775090" LINK="#ID_1334461256" MODIFIED="1693323260073" TEXT="einfachst möglichen activity::Term konstruieren">
|
||||
|
|
@ -80163,7 +80170,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1693426627134" ID="ID_468206154" MODIFIED="1693431591742" TEXT="dispatchChain">
|
||||
<node COLOR="#338800" CREATED="1693426627134" FOLDED="true" 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"/>
|
||||
|
|
@ -80178,7 +80185,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1689200553782" ID="ID_472609287" MODIFIED="1693528208553" TEXT="scenario_RenderJob">
|
||||
<node COLOR="#338800" CREATED="1689200553782" FOLDED="true" ID="ID_472609287" MODIFIED="1693528208553" TEXT="scenario_RenderJob">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1693323299522" ID="ID_1282022548" MODIFIED="1693323306513" TEXT="Grundstruktur verdrahten">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -80221,7 +80228,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1693502167005" ID="ID_13120904" MODIFIED="1693616469802" TEXT="scenario_Notification">
|
||||
<node COLOR="#338800" CREATED="1693502167005" FOLDED="true" ID="ID_13120904" MODIFIED="1693616469802" TEXT="scenario_Notification">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1693502193641" ID="ID_970318761" MODIFIED="1693528493228" TEXT="Grundstruktur wie scenario_RenderJob">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -80325,7 +80332,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1689200553782" ID="ID_1346681233" MODIFIED="1693694291844" TEXT="scenario_IOJob">
|
||||
<node COLOR="#338800" CREATED="1689200553782" FOLDED="true" ID="ID_1346681233" MODIFIED="1693694291844" TEXT="scenario_IOJob">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1693323299522" ID="ID_392906930" MODIFIED="1693694293977" TEXT="Grundstruktur verdrahten">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -80337,7 +80344,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1689200553782" ID="ID_722630098" MODIFIED="1693618275138" TEXT="scenario_MetaJob">
|
||||
<node COLOR="#338800" CREATED="1689200553782" FOLDED="true" ID="ID_722630098" MODIFIED="1693618275138" TEXT="scenario_MetaJob">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1693323319980" ID="ID_1996463444" MODIFIED="1693323335269" TEXT="die minimale default-Verdrahtung genügt">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -80566,7 +80573,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1688337270626" ID="ID_1810148055" MODIFIED="1689994032309" TEXT="»BlockFlow« : Implementation">
|
||||
<node COLOR="#338800" CREATED="1688337270626" FOLDED="true" ID="ID_1810148055" MODIFIED="1689994032309" TEXT="»BlockFlow« : Implementation">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1688398675985" ID="ID_291772625" MODIFIED="1689188506325" TEXT="Basis: ExtentFamily">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue