Dispatcher-Pipeline: draft test for JobTicket access
This commit is contained in:
parent
a5b3a16f3e
commit
7d5c32e6b6
4 changed files with 164 additions and 64 deletions
|
|
@ -1506,6 +1506,15 @@ namespace lib {
|
|||
return TreeExplorer<ResIter> (ResCore {move(*this)});
|
||||
}
|
||||
|
||||
/** shortcut notation to invoke \ref expand(expandFunctor) followed by \ref expandAll() */
|
||||
template<class FUN>
|
||||
auto
|
||||
expandAll (FUN&& expandFunctor)
|
||||
{
|
||||
return this->expand (forward<FUN> (expandFunctor))
|
||||
.expandAll();
|
||||
}
|
||||
|
||||
|
||||
/** extension functionality to be used on top of expand(), to perform expansion on next iteration.
|
||||
* When configured, an expandChildren() call will not happen immediately, but rather in place of
|
||||
|
|
|
|||
|
|
@ -81,11 +81,10 @@ namespace engine {
|
|||
* instance for operating this planning process. Instead, together with each chunk of
|
||||
* planned jobs we generate a continuation job, which -- on activation -- will pick up
|
||||
* the planning of the next chunk. The Dispatcher interface was shaped especially to
|
||||
* support this process, with a local JobBuilder for use within the continuation job,
|
||||
* and a TimeAnchor to represent the continuation point. All the complexities of
|
||||
* actually planning the jobs are hidden within the JobPlanningSequence,
|
||||
* which, for the purpose of dispatching a series of jobs just looks
|
||||
* like a sequence of job descriptors
|
||||
* support this process, with a local PlanningPipeline for use within the RenderDrive
|
||||
* incorporated into each CalcStream. All the complexities of actually planning the
|
||||
* jobs are hidden within this pipeline, which, for the purpose of dispatching a
|
||||
* series of jobs just looks like a sequence of job descriptors
|
||||
*
|
||||
* @todo 6/23 API is remoulded from ground up (»Playback Vertical Slice« integration effort)
|
||||
*/
|
||||
|
|
@ -111,7 +110,6 @@ namespace engine {
|
|||
};
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1301 : obsolete
|
||||
struct PipeFrameTick;
|
||||
struct PipeExpander;
|
||||
|
||||
template<class IT>
|
||||
struct PipelineBuilder;
|
||||
|
|
@ -121,25 +119,33 @@ namespace engine {
|
|||
public:
|
||||
virtual ~Dispatcher(); ///< this is an interface
|
||||
|
||||
|
||||
/**
|
||||
* Start a builder sequence to assemble a job-planning pipeline, backed by this Dispatcher.
|
||||
* @param timings the frame-grid and further specs to use for a specific CalcStream
|
||||
* @remark the given #PipelineBuilder object shall be used to supply the further parameters,
|
||||
* thereby qualifying the actual planning steps necessary to arrive at a sequence
|
||||
* of Jobs; these can be retrieved from the resulting iterator, ready for dispatch.
|
||||
*/
|
||||
PipelineBuilder<PipeFrameTick> forCalcStream (Timings timings);
|
||||
|
||||
/**
|
||||
* A complete job-planning pipeline: this »Lumiera Forward Iterator« drives the actual
|
||||
* job-planning process on-demand. At the end of the pipeline, a sequence of render Jobs
|
||||
* appears, ready for hand-over to the Scheduler. The PlanningPipeline itself wraps a
|
||||
* »state-core« holding the current planning state; for operation it should be placed
|
||||
* at a fixed location (typically in the CalcStream) and not duplicated, since this
|
||||
* internal state ensures the generation of a distinct and unique sequence of Jobs
|
||||
* for one specific data feed. During the lifetime of this iterator, the backing
|
||||
* data structures in the Fixture must be kept alive and fixed in memory.
|
||||
*/
|
||||
template<class IT>
|
||||
class PlanningPipeline
|
||||
: public IT
|
||||
{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////TICKET #1275 : what further API-functions are necessary to control a running CalcStream?
|
||||
};
|
||||
|
||||
/**
|
||||
* access a special JobTicket to build a »FrameDropper« Job.
|
||||
* @todo 6/2023 WIP and totally unclear if this is even a good idea to start with....
|
||||
*/
|
||||
JobTicket&
|
||||
getSinkTicketFor (play::DataSink sink)
|
||||
{
|
||||
UNIMPLEMENTED ("WTF is a SinkTicket???");
|
||||
}
|
||||
|
||||
|
||||
protected:
|
||||
/** core dispatcher operation: based on the coordinates of a reference point,
|
||||
|
|
@ -244,7 +250,7 @@ namespace engine {
|
|||
auto
|
||||
timeRange (Time start, Time after)
|
||||
{
|
||||
PipelineBuilder::activate (start,after);
|
||||
SRC::activate (start,after);
|
||||
return buildPipeline (lib::treeExplore (move(*this)));
|
||||
} // expected next to invoke pullFrom(port,sink)
|
||||
|
||||
|
|
@ -283,17 +289,16 @@ namespace engine {
|
|||
expandPrerequisites()
|
||||
{
|
||||
return buildPipeline (
|
||||
this->expand([](TicketDepend& currentLevel)
|
||||
this->expandAll([](TicketDepend& currentLevel)
|
||||
{
|
||||
JobTicket const* parent = currentLevel.second;
|
||||
return lib::transformIterator (parent->getPrerequisites(0)
|
||||
,[&parent](JobTicket const& prereqTicket)
|
||||
{
|
||||
{ // parent shifted up to first pos
|
||||
return TicketDepend{parent, &prereqTicket};
|
||||
}
|
||||
);
|
||||
})
|
||||
.expandAll());
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -303,12 +308,11 @@ namespace engine {
|
|||
auto
|
||||
feedTo (play::DataSink sink)
|
||||
{
|
||||
auto pipeline = this->transform([sink](TicketDepend& currentLevel)
|
||||
return terminatePipeline (
|
||||
this->transform([sink](TicketDepend& currentLevel)
|
||||
{
|
||||
return currentLevel.second; ///////////////////////////////OOO construct a JobPlanning here
|
||||
});
|
||||
using PipeIter = decltype(pipeline);
|
||||
return PlanningPipeline<PipeIter>{move (pipeline)};
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -329,6 +333,13 @@ namespace engine {
|
|||
{
|
||||
return PipelineBuilder<PIP> {move (treeExplorer)};
|
||||
}
|
||||
|
||||
template<class PIP>
|
||||
PlanningPipeline<PIP>
|
||||
terminatePipeline(PIP&& treeExplorer)
|
||||
{
|
||||
return PlanningPipeline<PIP> {move (treeExplorer)};
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "lib/format-cout.hpp"///////////////////////TODO
|
||||
#include "lib/iter-tree-explorer.hpp"
|
||||
#include "lib/format-util.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
//#include "steam/engine/job-planning.hpp"
|
||||
|
||||
|
|
@ -44,6 +45,7 @@ using lib::eachNum;
|
|||
using lib::treeExplore;
|
||||
using lib::time::PQuant;
|
||||
using lib::time::FrameRate;
|
||||
using util::isnil;
|
||||
|
||||
|
||||
namespace steam {
|
||||
|
|
@ -188,9 +190,21 @@ namespace test {
|
|||
void
|
||||
accessTopLevelJobTicket()
|
||||
{
|
||||
play::Timings timings (FrameRate::PAL);
|
||||
MockDispatcher dispatcher;
|
||||
auto [port,sink] = dispatcher.getDummyConnection(0);
|
||||
UNIMPLEMENTED ("transform into job ticket access");
|
||||
|
||||
auto pipeline = dispatcher.forCalcStream (timings)
|
||||
.timeRange(Time{200,0}, Time{300,0})
|
||||
.pullFrom (port);
|
||||
|
||||
CHECK (not isnil (pipeline));
|
||||
CHECK (nullptr == pipeline->first);
|
||||
JobTicket const& ticket = *pipeline->second;
|
||||
|
||||
FrameCoord dummy;
|
||||
Job job = ticket.createJobFor(dummy);
|
||||
CHECK (MockJobTicket::isAssociated (job, ticket));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -73589,14 +73589,14 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1685406892909" ID="ID_877192337" MODIFIED="1685406903491" TEXT="wir zählen einfach die Frame-Nummer hoch und gut is"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685406904249" ID="ID_1903725712" MODIFIED="1685406939765" TEXT="aus dem TimeAnchor wird eine einfache Variable chunkStart">
|
||||
<arrowlink COLOR="#90417a" DESTINATION="ID_1280247593" ENDARROW="Default" ENDINCLINATION="-241;-172;" ID="Arrow_ID_1703119592" STARTARROW="None" STARTINCLINATION="-212;10;"/>
|
||||
<arrowlink COLOR="#90417a" DESTINATION="ID_1280247593" ENDARROW="Default" ENDINCLINATION="160;0;" ID="Arrow_ID_1703119592" STARTARROW="None" STARTINCLINATION="246;11;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685583450800" ID="ID_9210672" MODIFIED="1685583462389" TEXT="frame-step Core">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1685583477662" ID="ID_1520687206" MODIFIED="1685631703092" TEXT="den einfachst möglichen Frame-Step als »state core« verpacken">
|
||||
<node COLOR="#338800" CREATED="1685583450800" ID="ID_9210672" MODIFIED="1685978896104" TEXT="frame-step Core">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1685583477662" FOLDED="true" ID="ID_1520687206" MODIFIED="1685978983947" TEXT="den einfachst möglichen Frame-Step als »state core« verpacken">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
|
|
@ -73607,18 +73607,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1685635382818" ID="ID_182297187" MODIFIED="1685635412661" TEXT="Vorstufe: die Kern-Funktionalität direkt als Iterator-Pipeline demonstrieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1685635478500" ID="ID_1622487483" MODIFIED="1685676386317" TEXT="geeignetes Builder-API ausarbeiten">
|
||||
<node COLOR="#338800" CREATED="1685635478500" ID="ID_1622487483" MODIFIED="1685978873316" TEXT="geeignetes Builder-API ausarbeiten">
|
||||
<linktarget COLOR="#a44d82" DESTINATION="ID_1622487483" ENDARROW="Default" ENDINCLINATION="121;-252;" ID="Arrow_ID_1017802335" SOURCE="ID_60016786" STARTARROW="None" STARTINCLINATION="231;10;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1685676367077" ID="ID_497119837" MODIFIED="1685676383553" TEXT="Builder-Syntax schaffen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685676373201" ID="ID_290916668" MODIFIED="1685676382028" TEXT="soll von TreeExplorer erben">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1685676373201" FOLDED="true" ID="ID_290916668" MODIFIED="1685978647418" TEXT="soll von TreeExplorer erben">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1685676390323" ID="ID_1302265239" MODIFIED="1685743982852" TEXT="geht das?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1685676395607" ID="ID_840485660" MODIFIED="1685743976291" TEXT="erinnere mich an den EventLog-Filter">
|
||||
|
|
@ -73634,7 +73634,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1685676405602" ID="ID_1339853853" MODIFIED="1685743938073" TEXT="das läuft auf einen decltype-Trick hinaus">
|
||||
<node CREATED="1685676405602" ID="ID_1339853853" MODIFIED="1685978618782" TEXT="das läuft auf einen decltype-Trick hinaus">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
|
|
@ -73645,13 +73645,28 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
<node CREATED="1685978557837" ID="ID_768288490" MODIFIED="1685978611820" TEXT="oder auf ein Type-Rebinding via Template">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
So macht es der TreeExplorer selber, und nach etlichen Versuchen bin ich auch hier bei dieser Lösung gelandet (und zufrieden damit)
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685744020440" ID="ID_189611589" MODIFIED="1685744043568" TEXT="das eigene Builder-API soll aber auf TreeExplorer aufbauen können">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1685744020440" ID="ID_189611589" MODIFIED="1685978550368" TEXT="das eigene Builder-API soll aber auf TreeExplorer aufbauen können">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1685743991581" ID="ID_865546443" MODIFIED="1685809733371" TEXT="Type-Rebinding einrichten">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1685743991581" ID="ID_865546443" MODIFIED="1685978498740" TEXT="Type-Rebinding einrichten">
|
||||
<arrowlink COLOR="#2741ab" DESTINATION="ID_681131446" ENDARROW="Default" ENDINCLINATION="-422;-16;" ID="Arrow_ID_1981008224" STARTARROW="None" STARTINCLINATION="66;259;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#5b280f" CREATED="1685744055315" ID="ID_115548313" MODIFIED="1685809647945" TEXT="für Basis-Konstruktion">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1685754130097" ID="ID_286369938" MODIFIED="1685754149459" TEXT="schwierig">
|
||||
|
|
@ -73692,11 +73707,11 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node COLOR="#5b280f" CREATED="1685744060666" ID="ID_676050987" MODIFIED="1685833565946" TEXT="für Anwendung von TreeExplorer-Builder-Funktionen">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1685809751146" ID="ID_1263839813" MODIFIED="1685809769709" TEXT="über Sequenz von dedizierten Builder-Typen lösen">
|
||||
<node COLOR="#435e98" CREATED="1685809751146" ID="ID_1263839813" MODIFIED="1685978514775" TEXT="über Sequenz von dedizierten Builder-Typen lösen">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685809771167" ID="ID_998998083" MODIFIED="1685809780626" TEXT="Problem: Definitions-Sequenz">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#435e98" CREATED="1685809771167" ID="ID_998998083" MODIFIED="1685978511009" TEXT="Problem: Definitions-Sequenz">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1685809782637" ID="ID_1994330949" MODIFIED="1685809800179" TEXT="(inline)-Funktionen sind erst nach dem Typ definiert"/>
|
||||
<node CREATED="1685809800830" ID="ID_835161833" MODIFIED="1685809812910" TEXT="decltype kann erst auf vollständigen Typ angewendet werden"/>
|
||||
<node CREATED="1685809816376" ID="ID_1605798061" MODIFIED="1685809838809" TEXT="brauche aber den decltype zu Beginn des nächsten Binder-Typs"/>
|
||||
|
|
@ -73823,9 +73838,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1685917872249" ID="ID_531896666" MODIFIED="1685924661892" TEXT="doch nochmal Ansatz mit Builder-Typ versuchen">
|
||||
<node COLOR="#338800" CREATED="1685917872249" ID="ID_531896666" MODIFIED="1685978495675" TEXT="doch nochmal Ansatz mit Builder-Typ versuchen">
|
||||
<linktarget COLOR="#5749b9" DESTINATION="ID_531896666" ENDARROW="Default" ENDINCLINATION="13;-50;" ID="Arrow_ID_1545948492" SOURCE="ID_1866369353" STARTARROW="None" STARTINCLINATION="-222;14;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1685917908769" ID="ID_614051285" MODIFIED="1685924391262" TEXT="ein spezielles Builder-Template verwenden">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
|
|
@ -73855,24 +73870,50 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1685924933403" ID="ID_998006413" MODIFIED="1685924963731" TEXT="verpackt in ein PlanningPipeline<IT>"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685918022280" ID="ID_905868944" MODIFIED="1685918037029" TEXT="Generische Expander-Funktion entwickeln">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685918038261" ID="ID_547403195" MODIFIED="1685918078873" TEXT="kein fester Quell-Argument-Typ">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#5b280f" CREATED="1685918022280" ID="ID_905868944" MODIFIED="1685977886292" TEXT="Generische Expander-Funktion entwickeln">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node COLOR="#5b280f" CREATED="1685918038261" ID="ID_547403195" MODIFIED="1685978246222" TEXT="geht rein logisch nicht">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Der expand()-Mechanismus im TreeExplorer ist <i>kein monadisches <b>flatMap  </b></i>— sondern nur ähnlich (aber an den intendierten Nutzen angepaßt): das Vater-Element erscheint zunächst selbst im Resultat-Iterator, und dann erst folgen expandierte Kind-Elemente; monadisches flatMap würde den Vater sofort konsumieren und rekursives flatMap würde sofort bis auf unterste Blatt-Ebene entfalten. Aber die Konsequenz ist: da wir den Vater selber <i>einmal durchreichen,</i> müssen Ergebnistyp und Quelltyp kompatibel sein
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="closed"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685918045844" ID="ID_494675571" MODIFIED="1685918063148" TEXT="soll sich entsprechend auf Root-Level anders verhalten">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1685918045844" ID="ID_494675571" MODIFIED="1685977941291" TEXT="markiere stattdessen den »parent« auf root-level mit NULL">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685918123634" ID="ID_1372348029" MODIFIED="1685918139283" TEXT="ItemWrapper auf non-copyable Typen anwendbar machen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1685918123634" ID="ID_1372348029" MODIFIED="1685978394612" TEXT="ItemWrapper auf non-copyable Typen anwendbar machen">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node CREATED="1685978396373" ID="ID_1527864771" MODIFIED="1685978400506" TEXT="vorerst vertagt"/>
|
||||
<node CREATED="1685978401013" ID="ID_443958342" MODIFIED="1685978419200" TEXT="der »workaround« (Pointer verwenden) erweist sich hier sogar als nützlich"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1685978425523" HGAP="-26" ID="ID_681131446" MODIFIED="1685978484709" VSHIFT="14">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<b>Fazit</b>: in diesem dritten Anlauf konnte ich das Problem befriedigend lösen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#2741ab" DESTINATION="ID_681131446" ENDARROW="Default" ENDINCLINATION="-422;-16;" ID="Arrow_ID_1981008224" SOURCE="ID_865546443" STARTARROW="None" STARTINCLINATION="66;259;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1685757095009" ID="ID_707524538" MODIFIED="1685809878137" TEXT="Sequenz von Builder-Typen verwenden">
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1685757095009" ID="ID_707524538" MODIFIED="1685978849823" TEXT="Sequenz von Builder-Typen verwenden">
|
||||
<icon BUILTIN="idea"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1685757114222" ID="ID_1148981272" MODIFIED="1685757140497" TEXT="weil ohnehin die Builder-Funktionen in einer fixen Reihenfolge aufgerufen werden müssen">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
|
|
@ -73886,13 +73927,19 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1685809519544" ID="ID_619200654" MODIFIED="1685809529263" TEXT="Haltepunkt-Semantik im Test verifiziert">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node CREATED="1685804222909" ID="ID_882875787" MODIFIED="1685804227895" TEXT="Gliederung">
|
||||
<node COLOR="#435e98" CREATED="1685804222909" ID="ID_882875787" MODIFIED="1685978837548" TEXT="Gliederung">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1685804229424" ID="ID_1243885994" MODIFIED="1685804229424" TEXT="struct PipeFrameTick;">
|
||||
<node CREATED="1685804229424" ID="ID_1243885994" MODIFIED="1685978811819" TEXT="PipeFrameTick">
|
||||
<node COLOR="#435e98" CREATED="1685978816510" ID="ID_1060580138" MODIFIED="1685978833497" TEXT="»stateCore«"/>
|
||||
<node CREATED="1685804263831" ID="ID_1326960664" MODIFIED="1685804267603" TEXT="Zeitpunkte"/>
|
||||
<node CREATED="1685804268663" ID="ID_1765378616" MODIFIED="1685804275894" TEXT="Stop am Ende"/>
|
||||
</node>
|
||||
<node CREATED="1685804229425" ID="ID_1068361872" MODIFIED="1685804229425" TEXT="struct PipeSelector;">
|
||||
<node CREATED="1685978664851" ID="ID_1570380564" MODIFIED="1685978673310" TEXT="PipeBuilder<PIP>">
|
||||
<node CREATED="1685978674908" ID="ID_1693907267" MODIFIED="1685978689019" TEXT="wird jeweils terminal darüber gesetzt"/>
|
||||
<node CREATED="1685978689624" ID="ID_591717951" MODIFIED="1685978701290" TEXT="erbt damit von der jeweiligen TreeExplorer-Pipeline"/>
|
||||
<node CREATED="1685978702466" ID="ID_661451432" MODIFIED="1685978707286" TEXT="Builder-Operationen">
|
||||
<node CREATED="1685978721050" ID="ID_889695636" MODIFIED="1685978731093" TEXT="timeRange : setzt Start/Stop"/>
|
||||
<node CREATED="1685978738620" ID="ID_759855849" MODIFIED="1685978781518" TEXT="pullFrom(ModelPort)">
|
||||
<node CREATED="1685804280614" ID="ID_636246298" MODIFIED="1685804307946" TEXT="wählt Verbindung zum low-level-Model"/>
|
||||
<node COLOR="#5b280f" CREATED="1685804312326" ID="ID_1049622554" MODIFIED="1685925022016" TEXT="neue Idee: »FrameDropper« bereitstellen">
|
||||
<linktarget COLOR="#fdfed9" DESTINATION="ID_1049622554" ENDARROW="Default" ENDINCLINATION="-118;8;" ID="Arrow_ID_109489850" SOURCE="ID_9551953" STARTARROW="None" STARTINCLINATION="124;-21;"/>
|
||||
|
|
@ -73904,11 +73951,11 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1685804229425" ID="ID_1660231509" MODIFIED="1685804229425" TEXT="struct PipeExpander;">
|
||||
<node CREATED="1685978756949" ID="ID_708810901" MODIFIED="1685978761330" TEXT="expandPrerequisites">
|
||||
<node CREATED="1685804397958" ID="ID_897391572" MODIFIED="1685804414527" TEXT="die rekursive monadische Tiefensuche"/>
|
||||
<node CREATED="1685804425069" ID="ID_703856821" MODIFIED="1685804474914" TEXT="(Dependent, Dependency)"/>
|
||||
</node>
|
||||
<node CREATED="1685804229425" ID="ID_1653285546" MODIFIED="1685804229425" TEXT="struct PipePlanner;">
|
||||
<node CREATED="1685978784259" ID="ID_648299167" MODIFIED="1685978792103" TEXT="feedTo(DataSink)">
|
||||
<node CREATED="1685804493985" ID="ID_1670773237" MODIFIED="1685804500860" TEXT="Aggregat aller Planungsdaten"/>
|
||||
<node CREATED="1685804506903" ID="ID_1557824404" MODIFIED="1685804516211" TEXT="JobPlanning legt die Zeitfenster fest"/>
|
||||
</node>
|
||||
|
|
@ -73916,6 +73963,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685583497277" ID="ID_1911386159" MODIFIED="1685583620738" TEXT="sinnvolles Ergänzungs-API bereitstellen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
|
@ -73929,7 +73977,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685809903965" ID="ID_1280247593" MODIFIED="1685809942333" TEXT="nächsten chunkStart auslesen">
|
||||
<linktarget COLOR="#90417a" DESTINATION="ID_1280247593" ENDARROW="Default" ENDINCLINATION="-241;-172;" ID="Arrow_ID_1703119592" SOURCE="ID_1903725712" STARTARROW="None" STARTINCLINATION="-212;10;"/>
|
||||
<linktarget COLOR="#90417a" DESTINATION="ID_1280247593" ENDARROW="Default" ENDINCLINATION="160;0;" ID="Arrow_ID_1703119592" SOURCE="ID_1903725712" STARTARROW="None" STARTINCLINATION="246;11;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -73959,14 +74007,32 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1685843418766" ID="ID_311511953" MODIFIED="1685843432557" TEXT="JobTicket const& oder JobTicket const* übergeben?">
|
||||
<node COLOR="#435e98" CREATED="1685843418766" FOLDED="true" ID="ID_311511953" MODIFIED="1685979141052" TEXT="JobTicket const& oder JobTicket const* übergeben?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1685843434561" ID="ID_787389984" MODIFIED="1685843465845" TEXT="const& wäre natürlich schön">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1685843440752" ID="ID_1684778826" MODIFIED="1685843461757" TEXT="aber: der Assignment-Operator im ItermWrapper (mal wieder)">
|
||||
<node COLOR="#ff0000" CREATED="1685843440752" ID="ID_1684778826" MODIFIED="1685979119362" TEXT="aber: der Assignment-Operator im ItermWrapper (mal wieder)">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
<node CREATED="1685979092865" ID="ID_91827998" MODIFIED="1685979109624" TEXT="NULLPTR sinnvoll um root-Level zu markieren">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1685979124917" ID="ID_1602555347" MODIFIED="1685979131683" TEXT="also bleibt's beim Pointer">
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685979146435" ID="ID_1554403810" MODIFIED="1685979205259" TEXT="Zugang zum JobTicket klären">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685979157473" ID="ID_1156902335" MODIFIED="1685979175008" TEXT="allgemein (Plan für operative Lösung)">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685979177023" ID="ID_886135870" MODIFIED="1685979181526" TEXT="Mock-Lösung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685979197228" ID="ID_545092486" MODIFIED="1685979201501" TEXT="Thema: ModelPort">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1681742836996" ID="ID_1224963303" MODIFIED="1684878201314" TEXT="expander function to explore prerequisite JobTickets">
|
||||
|
|
|
|||
Loading…
Reference in a new issue