Invocation: introduce engine-context for dependency injection
...by relying on DI for some effectively global services, notably the cache provider, the API for building and wiring render nodes can be simplified to cover only the actual node connectivity
This commit is contained in:
parent
38dd3a738e
commit
409f2f20b8
6 changed files with 173 additions and 28 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
BUFFER-LOCAL-KEY.hpp - opaque data for BufferProvider implementation
|
||||
BUFFER-LOCAL-TAG.hpp - opaque data for BufferProvider implementation
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2011, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
|
@ -21,13 +21,13 @@
|
|||
*/
|
||||
|
||||
|
||||
/** @file buffer-local-key.hpp
|
||||
/** @file buffer-local-tag.hpp
|
||||
** A marker data type used in metadata / buffer management of the render engine.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef STEAM_ENGINE_BUFFR_LOCAL_KEY_H
|
||||
#define STEAM_ENGINE_BUFFR_LOCAL_KEY_H
|
||||
#ifndef STEAM_ENGINE_BUFFR_LOCAL_TAG_H
|
||||
#define STEAM_ENGINE_BUFFR_LOCAL_TAG_H
|
||||
|
||||
|
||||
#include "lib/error.hpp"
|
||||
|
|
@ -130,4 +130,4 @@ namespace engine {
|
|||
|
||||
|
||||
}} // namespace steam::engine
|
||||
#endif
|
||||
#endif /*STEAM_ENGINE_BUFFR_LOCAL_TAG_H*/
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
#include "include/logging.h"
|
||||
#include "steam/streamtype.hpp"
|
||||
#include "steam/engine/type-handler.hpp"
|
||||
#include "steam/engine/buffer-local-key.hpp"
|
||||
#include "steam/engine/buffer-local-tag.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
|
||||
#include <unordered_map>
|
||||
|
|
|
|||
|
|
@ -46,8 +46,9 @@
|
|||
#include "lib/symbol.hpp"
|
||||
#include "lib/hash-value.h"
|
||||
#include "steam/engine/buffhandle.hpp"
|
||||
#include "steam/engine/engine-ctx.hpp"
|
||||
#include "steam/engine/type-handler.hpp"
|
||||
#include "steam/engine/buffer-local-key.hpp"
|
||||
#include "steam/engine/buffer-local-tag.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
|
||||
#include <utility>
|
||||
|
|
@ -173,4 +174,4 @@ namespace engine {
|
|||
|
||||
|
||||
}} // namespace steam::engine
|
||||
#endif
|
||||
#endif /*STEAM_ENGINE_BUFFR_PROVIDER_H*/
|
||||
|
|
|
|||
73
src/steam/engine/engine-ctx.hpp
Normal file
73
src/steam/engine/engine-ctx.hpp
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
/*
|
||||
ENGINE-CTX.hpp - Services and parameters used globally within the render engine
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2024, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
/** @file engine-ctx.hpp
|
||||
** Dependency context to hold global parameters and services for the render engine.
|
||||
** Notably the services to provide access to working buffers are linked directly into the
|
||||
** render node connectivity, where they are used for each invocation of a render job.
|
||||
**
|
||||
** The EngineCtx itself is meant to be [dependency injected](\ref lib::Depend), so that
|
||||
** tests can use suitably adapted variants for verifications.
|
||||
** @todo who is responsible for setup of the services for the actual render engine?
|
||||
** Might be closely related to brining up façade interfaces.
|
||||
** @todo WIP 8/2024 provide render node structures
|
||||
**
|
||||
** @see buffer-provider.hpp
|
||||
** @see buffhandle.hpp
|
||||
*/
|
||||
|
||||
#ifndef STEAM_ENGINE_ENGINE_CTX_H
|
||||
#define STEAM_ENGINE_ENGINE_CTX_H
|
||||
|
||||
|
||||
#include "lib/depend.hpp"
|
||||
#include "steam/engine/buffhandle.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
|
||||
//#include <utility>
|
||||
#include <memory>
|
||||
|
||||
|
||||
namespace steam {
|
||||
namespace engine {
|
||||
|
||||
// using lib::Literal;
|
||||
using std::unique_ptr;
|
||||
// using std::forward;
|
||||
|
||||
class EngineCtx
|
||||
: util::NonCopyable
|
||||
{
|
||||
public:
|
||||
BufferProvider& mem;
|
||||
BufferProvider& cache;
|
||||
BufferProvider& output;
|
||||
|
||||
class Services;
|
||||
|
||||
EngineCtx();
|
||||
};
|
||||
|
||||
|
||||
|
||||
}} // namespace steam::engine
|
||||
#endif /*STEAM_ENGINE_ENGINE_CTX_H*/
|
||||
|
|
@ -41,6 +41,7 @@
|
|||
//#include "vault/gear/job.h"
|
||||
#include "lib/several-builder.hpp"
|
||||
#include "steam/engine/turnout.hpp"
|
||||
#include "steam/engine/engine-ctx.hpp"
|
||||
#include "steam/engine/buffer-provider.hpp"
|
||||
//#include "lib/util-foreach.hpp"
|
||||
//#include "lib/iter-adapter.hpp"
|
||||
|
|
|
|||
|
|
@ -88552,10 +88552,11 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721956892200" ID="ID_1451110951" MODIFIED="1722384486637" TEXT="strukturell wäre das Spezial-Tag die beste Lösung">
|
||||
<node COLOR="#5b280f" CREATED="1721956892200" ID="ID_1451110951" MODIFIED="1722470788939" TEXT="strukturell wäre das Spezial-Tag die beste Lösung">
|
||||
<arrowlink COLOR="#4395d3" DESTINATION="ID_1329080039" ENDARROW="Default" ENDINCLINATION="-105;0;" ID="Arrow_ID_1999279188" STARTARROW="None" STARTINCLINATION="6;-21;"/>
|
||||
<arrowlink COLOR="#414bc3" DESTINATION="ID_603785440" ENDARROW="Default" ENDINCLINATION="-465;-28;" ID="Arrow_ID_1386315858" STARTARROW="None" STARTINCLINATION="-31;500;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node COLOR="#435e98" CREATED="1721957000178" ID="ID_917881726" MODIFIED="1721962405933" TEXT="fragt sich nur: ist das möglich...?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1721957022223" ID="ID_936909569" MODIFIED="1722091785735" TEXT="stelle fest: damals habe ich einen »LocalKey« eingeführt">
|
||||
|
|
@ -88640,8 +88641,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721962419154" ID="ID_197438854" MODIFIED="1721962438994" TEXT="zu überlegen: wann im Lebenszyklus muß diese Info gegeben werden">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#5b280f" CREATED="1721962419154" ID="ID_197438854" MODIFIED="1722470869273" TEXT="zu überlegen: wann im Lebenszyklus muß diese Info gegeben werden">
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1722005002357" ID="ID_1859901064" MODIFIED="1722005054298" TEXT="im Kern ist es eine spezielle Marke für jeden einzelnen Aufruf"/>
|
||||
<node CREATED="1722005137995" ID="ID_1498833312" MODIFIED="1722005163168" TEXT="damit kann sie stets nur für die einzelne Job-Invocation gegeben sein"/>
|
||||
<node CREATED="1722005561810" ID="ID_605283552" MODIFIED="1722005604557" TEXT="zu dem Zeitpunkt haben wir einen Buffer-Descriptor vorliegen">
|
||||
|
|
@ -88681,7 +88683,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#980e5e" CREATED="1722129450311" ID="ID_584023703" MODIFIED="1722129479340" TEXT="hab ein ganz ungutes Gefühl hier">
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1722129503142" ID="ID_791304404" MODIFIED="1722210017088" TEXT="Gefahr, einen bereits bestehenden Eintrag nicht mehr zu finden">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1722129503142" FOLDED="true" ID="ID_791304404" MODIFIED="1722470733127" TEXT="Gefahr, einen bereits bestehenden Eintrag nicht mehr zu finden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -88844,7 +88846,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<arrowlink DESTINATION="ID_743923267" ENDARROW="Default" ENDINCLINATION="9;90;" ID="Arrow_ID_674912377" STARTARROW="None" STARTINCLINATION="189;8;"/>
|
||||
<arrowlink COLOR="#8e30c2" DESTINATION="ID_128884200" ENDARROW="Default" ENDINCLINATION="53;-3;" ID="Arrow_ID_182326182" STARTARROW="None" STARTINCLINATION="-9;58;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1722392552172" HGAP="40" ID="ID_1570989783" MODIFIED="1722392597788" TEXT="es bleiben aber Zweifel" VSHIFT="21">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1722392552172" HGAP="40" ID="ID_1570989783" MODIFIED="1722470706776" TEXT="es bleiben aber Zweifel" VSHIFT="21">
|
||||
<arrowlink COLOR="#ff0c4e" DESTINATION="ID_93208083" ENDARROW="Default" ENDINCLINATION="2326;0;" ID="Arrow_ID_1577193633" STARTARROW="Default" STARTINCLINATION="-344;36;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1722392616475" ID="ID_946046395" MODIFIED="1722392747592" TEXT="diese ganze Lösung erscheint mir als unsaubere Manipulation">
|
||||
|
|
@ -88862,10 +88864,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1722393055292" ID="ID_1420696816" MODIFIED="1722393080929" TEXT="gibt es denn wirklich keinen direkten Zugang für diesen einen Spezialfall?">
|
||||
<node COLOR="#435e98" CREATED="1722393055292" ID="ID_1420696816" MODIFIED="1722470703558" TEXT="gibt es denn wirklich keinen direkten Zugang für diesen einen Spezialfall?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1722393091606" ID="ID_1834757825" MODIFIED="1722393104456" TEXT="ich weiß daß es der top-Level-Aufruf ist"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722393128569" ID="ID_403641521" MODIFIED="1722393479947" TEXT="und wenn man nun doch den Buffer hier direkt injiziert?">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1722393128569" ID="ID_403641521" MODIFIED="1722470695946" TEXT="und wenn man nun doch den Buffer hier direkt injiziert?">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -88875,6 +88877,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#ff2d7f" DESTINATION="ID_327945127" ENDARROW="Default" ENDINCLINATION="3056;127;" ID="Arrow_ID_824161116" STARTARROW="None" STARTINCLINATION="309;-17;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1722444761326" ID="ID_1520971495" MODIFIED="1722445151092" TEXT="man könnte tatsächlich den Aufruf mit zusätzlichem Argument ermöglichen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -88884,11 +88887,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
dieser würde dann nur von top-Level aus so erfolgen, womit der Spezialfall ganz natürlich ausgewählt wäre
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1722393034722" ID="ID_1964241515" MODIFIED="1722393053508" TEXT="Eine Nacht darüber schlafen!">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#ff0000" CREATED="1722393034722" ID="ID_1964241515" MODIFIED="1722470683538" TEXT="Eine Nacht darüber schlafen!">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1722444566657" ID="ID_901551782" MODIFIED="1722444590633" TEXT="Es genügt, den OutputBufferProvider anders einzubinden">
|
||||
|
|
@ -88900,8 +88902,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
...d.h. daß man das Output-Protokoll hinter einem BufferProvider versteckt, um einen uniformen Zugriff zu ermöglichen.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1722444704965" ID="ID_329807269" MODIFIED="1722444730742" TEXT="Aber: nicht den BufferProvider austauschen, sondern bloß das BuffHandle"/>
|
||||
<node CREATED="1722445156984" ID="ID_204443476" MODIFIED="1722445177473" TEXT="der spezielle BufferProvider würde außerhalb, im Top-Level verwendet"/>
|
||||
|
|
@ -88997,6 +88998,71 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1722470806994" ID="ID_1582495836" MODIFIED="1722470851140" TEXT="letztlich andere Lösung gewählt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
nämlich den OutputBufferProvider explizit eine Ebene darüber verwenden und dann das BuffHandle direkt in den weave()-Aufruf geben
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1722612598373" ID="ID_1824837145" MODIFIED="1722612697640" TEXT="Fazit: damit ist ein globaler Scope möglich">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Den OutputBufferProvider handhaben wir jetzt eine Ebene höher, und dort können wir direkt ein LocalTag setzen und dann ein zugehöriges BuffHandle erstellen, das nur an einen bestimmten Buffer im Output-system gebunden ist. Alle anderen Use-Cases (Memory-Blöcke und Cache) sind ohnehin global für die gesamte RenderEngine
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1722612720083" ID="ID_990757618" MODIFIED="1722612743013" TEXT="brauche nun Name und Ort für den »ServiceCtx«">
|
||||
<node CREATED="1722613854403" ID="ID_492566303" MODIFIED="1722647335650" TEXT="also nehmen wir mal »EngineCtx«">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1722612834244" ID="ID_1346948140" LINK="#ID_1426982855" MODIFIED="1722612929319" TEXT="der (einfallslose) Name »Engine-Service« ist bereits vergeben">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
wenngleich auch dort Zweifel zum Namen bestehen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1722647413798" ID="ID_1607895967" MODIFIED="1722647418305" TEXT="Struktur">
|
||||
<node CREATED="1722647419605" ID="ID_1700431737" MODIFIED="1722647426928" TEXT="ein Front-End mit Referenzen"/>
|
||||
<node CREATED="1722647429699" ID="ID_1374967687" MODIFIED="1722647484152" TEXT="ein (opaque) Services-Objekt"/>
|
||||
<node CREATED="1722647819006" ID="ID_1544083902" MODIFIED="1722647825463" TEXT="Anforderungen">
|
||||
<node CREATED="1722647826990" ID="ID_1595414802" MODIFIED="1722647863118" TEXT="EngineCtx soll default-konstruierbar sein">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
damit lib::Depend ohne Weiteres einfach funktioniert
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1722648096856" ID="ID_1675656022" MODIFIED="1722648117988" TEXT="kann explizit einen Kontext für die RenderEngine hochfahren"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -89008,18 +89074,21 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#3159bc" DESTINATION="ID_1809654586" ENDARROW="Default" ENDINCLINATION="151;-415;" ID="Arrow_ID_946061354" SOURCE="ID_537635442" STARTARROW="None" STARTINCLINATION="-305;0;"/>
|
||||
<icon BUILTIN="edit"/>
|
||||
<node CREATED="1722384964234" ID="ID_1078579384" MODIFIED="1722384990515" TEXT="der OutputBufferProvider funktioniert rein als Proxy"/>
|
||||
<node CREATED="1722384991671" ID="ID_74035909" MODIFIED="1722385019119" TEXT="man gibt hierfür die Referenz auf eine OutputSink verpackt in ein LocalTag mit"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1722385049647" ID="ID_657216791" MODIFIED="1722385115272" TEXT="zu klären bleibt: wie kommt das LocalTag genau an die richtige Stelle?">
|
||||
<node CREATED="1722384991671" ID="ID_74035909" MODIFIED="1722470465381" TEXT="er ermöglicht Zugriff auf den Output-Buffer durch ein BuffHandle"/>
|
||||
<node COLOR="#5b280f" CREATED="1722385049647" ID="ID_657216791" MODIFIED="1722470540470" TEXT="zu klären bleibt: wie kommt dieses Handle an die richtige Stelle">
|
||||
<linktarget COLOR="#932840" DESTINATION="ID_657216791" ENDARROW="Default" ENDINCLINATION="103;-2;" ID="Arrow_ID_1546346335" SOURCE="ID_438526459" STARTARROW="None" STARTINCLINATION="-431;18;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1722470545556" HGAP="29" ID="ID_983108939" MODIFIED="1722470577738" TEXT="Antwort: wir geben es direkt in den top-Level Aufruf" VSHIFT="7">
|
||||
<arrowlink DESTINATION="ID_1622065787" ENDARROW="Default" ENDINCLINATION="221;0;" ID="Arrow_ID_1811024321" STARTARROW="None" STARTINCLINATION="206;12;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1722385152329" ID="ID_1882977627" MODIFIED="1722385161927" TEXT="Problem: Aufrufstruktur">
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1722385152329" ID="ID_1882977627" MODIFIED="1722470581306" TEXT="Problem: Aufrufstruktur">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1722385165975" ID="ID_59108048" MODIFIED="1722385176210" TEXT="die Formulierung ist generisch-rekursiv"/>
|
||||
<node CREATED="1722385177230" ID="ID_795154055" MODIFIED="1722385231890" TEXT="das LocalTag wird aber nur an einer Stelle (top-Level) gebraucht">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722385605151" ID="ID_519028808" MODIFIED="1722385612920" TEXT="Markieren des Output-Slot">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1722385177230" ID="ID_795154055" MODIFIED="1722385231890" TEXT="das LocalTag wird aber nur an einer Stelle (top-Level) gebraucht"/>
|
||||
<node COLOR="#5b280f" CREATED="1722385605151" ID="ID_519028808" MODIFIED="1722470379074" TEXT="Markieren des Output-Slot">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1722389530744" ID="ID_1277418704" MODIFIED="1722389536610" TEXT="zu unterscheiden">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1722389538361" ID="ID_35436842" MODIFIED="1722389799354" TEXT="der resultSlot (auf jeder Ebene)">
|
||||
|
|
@ -89079,13 +89148,14 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<node CREATED="1722445348793" ID="ID_1622065787" MODIFIED="1722445364447" TEXT="zusätzliches Argument: optional<BuffHandle>"/>
|
||||
<node CREATED="1722445348793" ID="ID_1622065787" MODIFIED="1722470577738" TEXT="zusätzliches Argument: optional<BuffHandle>">
|
||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1622065787" ENDARROW="Default" ENDINCLINATION="221;0;" ID="Arrow_ID_1811024321" SOURCE="ID_983108939" STARTARROW="None" STARTINCLINATION="206;12;"/>
|
||||
</node>
|
||||
<node CREATED="1722445366619" ID="ID_1805188384" MODIFIED="1722445398466" TEXT="wenn gegeben ⟹ der für den Slot konfigurierte BufferProvider wird überhaupt nicht verwendet"/>
|
||||
<node CREATED="1722445400526" ID="ID_270562222" MODIFIED="1722445411968" TEXT="dafür ist nur ein einziger Eingriff in shed() notwendig"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721003681836" ID="ID_536010685" MODIFIED="1721061587708" TEXT="erst mal: Bulk-Konfig für alle">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue