Invocation: draft setup for engine context and config

Prototyping and analysis revealed that some aspects of the render node wiring
refers to effectively global services and can thus be taken out of the picture
by relying on classical ''Dependency Injection''

Consequently, `EngineCtx` needs a default implementation, which brings up
a simplistic fall-back version of those services in support for prototyping.
Moreover, dedicated lifecycle functionality must be provided to bring up
and shut down the actual service instances intended for operational use.
This commit is contained in:
Fischlurch 2024-10-11 16:57:10 +02:00
parent a02873a015
commit 4a83f97c9e
6 changed files with 266 additions and 64 deletions

View file

@ -46,7 +46,7 @@
#include "lib/symbol.hpp" #include "lib/symbol.hpp"
#include "lib/hash-value.h" #include "lib/hash-value.h"
#include "steam/engine/buffhandle.hpp" #include "steam/engine/buffhandle.hpp"
#include "steam/engine/engine-ctx.hpp" //#include "steam/engine/engine-ctx.hpp"
#include "steam/engine/type-handler.hpp" #include "steam/engine/type-handler.hpp"
#include "steam/engine/buffer-local-tag.hpp" #include "steam/engine/buffer-local-tag.hpp"
#include "lib/nocopy.hpp" #include "lib/nocopy.hpp"

View file

@ -0,0 +1,77 @@
/*
EngineCtxFacilities - Implementation of global render engine operational services
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-facilities.hpp
** Implementation parts of render engine operational services.
** @warning as of 10/2024 a preliminary integration of Render-Engine underway ////////////////////////////////////////TICKET #1367
*/
#include "steam/engine/engine-ctx-facilities.hpp"
//#include <string>
//#include <memory>
//#include <functional>
namespace steam {
namespace engine{
// using std::string;
// using lumiera::Subsys;
// using std::function;
// using std::bind;
// using std::ref;
namespace { // hidden local details of the service implementation....
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Temp Placeholder
BufferProvider* kabooom{nullptr};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Temp Placeholder
} // (End) hidden service impl details
/** storage for the EngineService interface object */
lib::Depend<EngineCtx> EngineCtx::access;
/** */
EngineCtx::EngineCtx()
: mem{*kabooom}
, cache{*kabooom}
{ }
/** core operation: blah blubb....
*/
}} // namespace steam::engine

View file

@ -0,0 +1,62 @@
/*
ENGINE-CTX-FACILITIES.hpp - Implementation of global render engine operational services
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-facilities.hpp
** Implementation of render engine operational configuration and services.
** Without further setup, [dependency injection](\ref depend.hpp) will establish a
** minimalistic default instantiation of these services, sufficient for demonstration
** and tests. For the real render engine however, dedicated service instances will be
** created and managed actively.
** @todo and we'll have yet to »figure out« what specifically to do for these
** services and how to start an active render engine for productive use.
** @todo WIP-WIP 10/2024 strive at first complete prototypical engine usage ////////////////////////////////////////TICKET #1367
**
** @see engine-ctx.hpp
** @see weaving-pattern-builder.hpp
*/
#ifndef STEAM_ENGINE_ENGINE_CTX_FACILITIES_H
#define STEAM_ENGINE_ENGINE_CTX_FACILITIES_H
#include "steam/engine/engine-ctx.hpp"
//#include <utility>
//#include <memory>
namespace steam {
namespace engine {
// using lib::Literal;
// using std::unique_ptr;
// using std::forward;
class EngineCtx::Facilities
{
public:
};
}} // namespace steam::engine
#endif /*STEAM_ENGINE_ENGINE_CTX_FACILITIES_H*/

View file

@ -26,11 +26,13 @@
** render node connectivity, where they are used for each invocation of a render job. ** 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 ** The EngineCtx itself is meant to be [dependency injected](\ref lib::Depend), so that
** tests can use suitably adapted variants for verifications. ** tests can use suitably adapted variants for verifications. The default instantiation
** provides a naive self-contained implementation suitable for demonstration and test.
** @todo who is responsible for setup of the services for the actual render engine? ** @todo who is responsible for setup of the services for the actual render engine?
** Might be closely related to brining up façade interfaces. ** Might be closely related to brining up façade interfaces.
** @todo WIP 8/2024 provide render node structures ** @todo WIP-WIP 10/2024 provide render node structures
** **
** @see engine-ctx-facilities.hpp implementation
** @see buffer-provider.hpp ** @see buffer-provider.hpp
** @see buffhandle.hpp ** @see buffhandle.hpp
*/ */
@ -44,14 +46,14 @@
#include "lib/nocopy.hpp" #include "lib/nocopy.hpp"
//#include <utility> //#include <utility>
#include <memory> //#include <memory>
namespace steam { namespace steam {
namespace engine { namespace engine {
// using lib::Literal; // using lib::Literal;
using std::unique_ptr; // using std::unique_ptr;
// using std::forward; // using std::forward;
class EngineCtx class EngineCtx
@ -60,11 +62,16 @@ namespace engine {
public: public:
BufferProvider& mem; BufferProvider& mem;
BufferProvider& cache; BufferProvider& cache;
BufferProvider& output; // BufferProvider& output; /////////////////////////OOO presumably no longer necessary
class Services; class Facilities;
static lib::Depend<EngineCtx> access;
private:
EngineCtx(); EngineCtx();
friend class lib::DependencyFactory<EngineCtx>;
}; };

View file

@ -280,9 +280,9 @@ namespace engine {
* the input and output data feeds (buffers) into a processing function. * the input and output data feeds (buffers) into a processing function.
* @tparam CONF a configuration / policy base class * @tparam CONF a configuration / policy base class
* @note assumptions made regarding the overall structure * @note assumptions made regarding the overall structure
* - CONF::Feed defines an _invocation adapter_ for the processing function * - `CONF::Feed` defines an _invocation adapter_ for the processing function
* - CONF::buildFeed is a functor to (repeatedly) build `Feed` instances * - `CONF::buildFeed()` is a functor to (repeatedly) build `Feed` instances
* - this adapter in turn embeds a `FeedManifold<N>` to hold * - the _invocation adapter_ in turn embeds a `FeedManifold<N>` to hold
* + an array of input buffer pointers * + an array of input buffer pointers
* + an array of output buffer pointers * + an array of output buffer pointers
* + `CONF::MAX_SIZ` limits both arrays * + `CONF::MAX_SIZ` limits both arrays

View file

@ -7199,9 +7199,7 @@
<node CREATED="1506180752104" ID="ID_534962278" MODIFIED="1506180752104" TEXT="extend the path by ...creates uncovered extension sequence"/> <node CREATED="1506180752104" ID="ID_534962278" MODIFIED="1506180752104" TEXT="extend the path by ...creates uncovered extension sequence"/>
<node CREATED="1506180752104" ID="ID_552405160" MODIFIED="1576282358128" TEXT="create suitable children"> <node CREATED="1506180752104" ID="ID_552405160" MODIFIED="1576282358128" TEXT="create suitable children">
<richcontent TYPE="NOTE"><html> <richcontent TYPE="NOTE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
...halten wir besser raus aus diesem Design. ...halten wir besser raus aus diesem Design.
@ -7255,9 +7253,7 @@
</node> </node>
<node CREATED="1504458255403" FOLDED="true" HGAP="41" ID="ID_246632028" MODIFIED="1576282358127" TEXT="F&#xe4;lle" VSHIFT="9"> <node CREATED="1504458255403" FOLDED="true" HGAP="41" ID="ID_246632028" MODIFIED="1576282358127" TEXT="F&#xe4;lle" VSHIFT="9">
<richcontent TYPE="NOTE"><html> <richcontent TYPE="NOTE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
...was f&#252;r verschiedene Arten von Zugriff ...was f&#252;r verschiedene Arten von Zugriff
@ -7292,9 +7288,7 @@
<arrowlink COLOR="#535189" DESTINATION="ID_1448696607" ENDARROW="Default" ENDINCLINATION="-391;179;" ID="Arrow_ID_1194909838" STARTARROW="None" STARTINCLINATION="691;-200;"/> <arrowlink COLOR="#535189" DESTINATION="ID_1448696607" ENDARROW="Default" ENDINCLINATION="-391;179;" ID="Arrow_ID_1194909838" STARTARROW="None" STARTINCLINATION="691;-200;"/>
<node CREATED="1504479456449" ID="ID_959239388" MODIFIED="1518487921063"> <node CREATED="1504479456449" ID="ID_959239388" MODIFIED="1518487921063">
<richcontent TYPE="NODE"><html> <richcontent TYPE="NODE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
m&#246;gliche m&#246;gliche
@ -7404,9 +7398,7 @@
<node CREATED="1508109233808" ID="ID_816587529" MODIFIED="1518487921064" TEXT="erfordert gemeinsames Interface"/> <node CREATED="1508109233808" ID="ID_816587529" MODIFIED="1518487921064" TEXT="erfordert gemeinsames Interface"/>
<node CREATED="1508109252574" ID="ID_1185099286" MODIFIED="1518487921064"> <node CREATED="1508109252574" ID="ID_1185099286" MODIFIED="1518487921064">
<richcontent TYPE="NODE"><html> <richcontent TYPE="NODE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
betrachte ich als <i>ungesund</i> betrachte ich als <i>ungesund</i>
@ -7483,9 +7475,7 @@
<icon BUILTIN="help"/> <icon BUILTIN="help"/>
<node CREATED="1507940046234" ID="ID_577613088" MODIFIED="1561827464792"> <node CREATED="1507940046234" ID="ID_577613088" MODIFIED="1561827464792">
<richcontent TYPE="NODE"><html> <richcontent TYPE="NODE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
auf welche Eigenschaften auf welche Eigenschaften
@ -8012,9 +8002,7 @@
<icon BUILTIN="button_ok"/> <icon BUILTIN="button_ok"/>
<node CREATED="1508539226014" ID="ID_1714773115" MODIFIED="1576282358122" TEXT="informell..."> <node CREATED="1508539226014" ID="ID_1714773115" MODIFIED="1576282358122" TEXT="informell...">
<richcontent TYPE="NOTE"><html> <richcontent TYPE="NOTE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
Tiefensuche &#252;ber die reale UI-Topologie Tiefensuche &#252;ber die reale UI-Topologie
@ -8513,9 +8501,7 @@
</node> </node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510446221317" HGAP="52" ID="ID_1590483406" MODIFIED="1535892751360" VSHIFT="42"> <node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510446221317" HGAP="52" ID="ID_1590483406" MODIFIED="1535892751360" VSHIFT="42">
<richcontent TYPE="NODE"><html> <richcontent TYPE="NODE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
sind Monaden sind Monaden
@ -9674,9 +9660,7 @@
<icon BUILTIN="idea"/> <icon BUILTIN="idea"/>
<node CREATED="1512440307185" ID="ID_1513737160" MODIFIED="1512440431319" TEXT="weil das doch nicht gecheckt werden kann"> <node CREATED="1512440307185" ID="ID_1513737160" MODIFIED="1512440431319" TEXT="weil das doch nicht gecheckt werden kann">
<richcontent TYPE="NOTE"><html> <richcontent TYPE="NOTE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
...ohne da&#223; die Funktionen auch virtuell sind, ...ohne da&#223; die Funktionen auch virtuell sind,
@ -11847,9 +11831,7 @@
<node CREATED="1514340273349" ID="ID_1117812340" MODIFIED="1514908827230" TEXT="kein match"/> <node CREATED="1514340273349" ID="ID_1117812340" MODIFIED="1514908827230" TEXT="kein match"/>
<node BACKGROUND_COLOR="#e2f2c8" CREATED="1514340293010" ID="ID_108821287" MODIFIED="1514908880409"> <node BACKGROUND_COLOR="#e2f2c8" CREATED="1514340293010" ID="ID_108821287" MODIFIED="1514908880409">
<richcontent TYPE="NODE"><html> <richcontent TYPE="NODE"><html>
<head> <head/>
</head>
<body> <body>
<p> <p>
ist <i>keine </i>L&#246;sung ist <i>keine </i>L&#246;sung
@ -15774,9 +15756,7 @@
<node CREATED="1504479807066" ID="ID_1318651039" MODIFIED="1518487921072" TEXT="m&#xe4;&#xdf;ig komplex"/> <node CREATED="1504479807066" ID="ID_1318651039" MODIFIED="1518487921072" TEXT="m&#xe4;&#xdf;ig komplex"/>
<node CREATED="1504479813553" ID="ID_141842675" MODIFIED="1576282358111" TEXT="ehr effizient"> <node CREATED="1504479813553" ID="ID_141842675" MODIFIED="1576282358111" TEXT="ehr effizient">
<richcontent TYPE="NOTE"><html> <richcontent TYPE="NOTE"><html>
<head> <head/>
</head>
<body> <body>
<ul> <ul>
<li> <li>
@ -85795,15 +85775,25 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node> </node>
</node> </node>
</node> </node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1714181482947" ID="ID_845562088" MODIFIED="1714181555132" TEXT="Ticket #905 als Anker verwenden"> <node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1714181482947" ID="ID_845562088" LINK="https://issues.lumiera.org/ticket/905" MODIFIED="1728656690658" TEXT="Ticket #905 als Anker verwenden">
<linktarget COLOR="#c80a37" DESTINATION="ID_845562088" ENDARROW="Default" ENDINCLINATION="-130;10;" ID="Arrow_ID_66382855" SOURCE="ID_943908122" STARTARROW="None" STARTINCLINATION="42;-31;"/> <linktarget COLOR="#c80a37" DESTINATION="ID_845562088" ENDARROW="Default" ENDINCLINATION="-130;10;" ID="Arrow_ID_66382855" SOURCE="ID_943908122" STARTARROW="None" STARTINCLINATION="42;-31;"/>
<icon BUILTIN="yes"/> <icon BUILTIN="yes"/>
<node COLOR="#435e98" CREATED="1714181927456" ID="ID_7655935" MODIFIED="1714181946722" TEXT="Tracking-Ticket #1364 &#xbb;Render Node Network&#xab;"> <node COLOR="#435e98" CREATED="1714181927456" ID="ID_7655935" LINK="https://issues.lumiera.org/ticket/1364" MODIFIED="1728656675946" TEXT="Tracking-Ticket #1364 &#xbb;Render Node Network&#xab;">
<icon BUILTIN="info"/> <icon BUILTIN="info"/>
</node> </node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1718845242691" ID="ID_377937950" MODIFIED="1718845248435" TEXT="#1367 build a node invocation"> <node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728656618228" ID="ID_562698637" LINK="https://issues.lumiera.org/ticket/826" MODIFIED="1728656658677" TEXT="#826 render nodes invocation sequence">
<icon BUILTIN="flag-yellow"/> <icon BUILTIN="flag-yellow"/>
<node CREATED="1718845256006" ID="ID_130047105" MODIFIED="1718845263388" TEXT="als direkter Treiber f&#xfc;r die n&#xe4;chsten Arbeiten"/> </node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1718845242691" ID="ID_377937950" LINK="https://issues.lumiera.org/ticket/1367" MODIFIED="1728656683891" TEXT="#1367 build a node invocation">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1718845256006" ID="ID_130047105" MODIFIED="1718845263388" TEXT="als direkter Treiber f&#xfc;r die n&#xe4;chsten Arbeiten">
<node CREATED="1728657539476" ID="ID_953218363" MODIFIED="1728657553150" TEXT="mu&#xdf; den NodeBuilder und PortBuilder konstruieren k&#xf6;nnen"/>
<node CREATED="1728657554481" ID="ID_1763878258" MODIFIED="1728658107738" TEXT="brauche ein Default-Setup f&#xfc;r EngineCtx">
<arrowlink COLOR="#496d98" DESTINATION="ID_980783783" ENDARROW="Default" ENDINCLINATION="-1507;-94;" ID="Arrow_ID_11368875" STARTARROW="None" STARTINCLINATION="392;28;"/>
</node>
<node CREATED="1728657599660" ID="ID_1919244666" MODIFIED="1728657606815" TEXT="mu&#xdf; einfache Node bauen k&#xf6;nnen"/>
<node CREATED="1728657607703" ID="ID_1131573155" MODIFIED="1728657612430" TEXT="mu&#xdf; Node aufrufen k&#xf6;nnen"/>
</node>
<node CREATED="1718845263947" ID="ID_1747091374" MODIFIED="1718845332197" TEXT="Ziel: den NodeLinkage_test aufbauen"> <node CREATED="1718845263947" ID="ID_1747091374" MODIFIED="1718845332197" TEXT="Ziel: den NodeLinkage_test aufbauen">
<arrowlink COLOR="#fe018a" DESTINATION="ID_673154392" ENDARROW="Default" ENDINCLINATION="3;-16;" ID="Arrow_ID_894402730" STARTARROW="None" STARTINCLINATION="-151;11;"/> <arrowlink COLOR="#fe018a" DESTINATION="ID_673154392" ENDARROW="Default" ENDINCLINATION="3;-16;" ID="Arrow_ID_894402730" STARTARROW="None" STARTINCLINATION="-151;11;"/>
<icon BUILTIN="yes"/> <icon BUILTIN="yes"/>
@ -88425,8 +88415,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1721834025376" ID="ID_853984700" MODIFIED="1721834036731" TEXT="aus zus&#xe4;tzlichen &#xdc;berlegungen zum Caching"/> <node CREATED="1721834025376" ID="ID_853984700" MODIFIED="1721834036731" TEXT="aus zus&#xe4;tzlichen &#xdc;berlegungen zum Caching"/>
<node CREATED="1721834044974" ID="ID_1751951250" MODIFIED="1721834055712" TEXT="und als Fallback: ein generischer Memory-Buffer-Provider"/> <node CREATED="1721834044974" ID="ID_1751951250" MODIFIED="1721834055712" TEXT="und als Fallback: ein generischer Memory-Buffer-Provider"/>
</node> </node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721835912891" ID="ID_174258961" MODIFIED="1721835947007" TEXT="Aufgabe f&#xfc;r die Builder-Mechanik"> <node COLOR="#338800" CREATED="1721835912891" ID="ID_174258961" MODIFIED="1728654004568" TEXT="Aufgabe f&#xfc;r die Builder-Mechanik">
<icon BUILTIN="flag-yellow"/> <icon BUILTIN="button_ok"/>
<node CREATED="1721835960018" ID="ID_393730575" MODIFIED="1721835975204" TEXT="der BufferDescriptor gilt als opaques Handle"/> <node CREATED="1721835960018" ID="ID_393730575" MODIFIED="1721835975204" TEXT="der BufferDescriptor gilt als opaques Handle"/>
<node CREATED="1721835976166" ID="ID_1045731243" MODIFIED="1721835984813" TEXT="er ist implizit an den BufferProvider gebunden"> <node CREATED="1721835976166" ID="ID_1045731243" MODIFIED="1721835984813" TEXT="er ist implizit an den BufferProvider gebunden">
<node COLOR="#5b280f" CREATED="1721835986478" ID="ID_131800806" MODIFIED="1721836014435" TEXT="man k&#xf6;nnte das lockern"> <node COLOR="#5b280f" CREATED="1721835986478" ID="ID_131800806" MODIFIED="1721836014435" TEXT="man k&#xf6;nnte das lockern">
@ -88454,7 +88444,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</html></richcontent> </html></richcontent>
</node> </node>
</node> </node>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1721838715106" ID="ID_742042797" MODIFIED="1721838751008" TEXT="unangenehme Konsequenz &#x27f9; Provider mu&#xdf; vor derm Descriptor festgelegt sein"> <node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1721838715106" ID="ID_742042797" MODIFIED="1728654001444" TEXT="unangenehme Konsequenz &#x27f9; Provider mu&#xdf; vor derm Descriptor festgelegt sein">
<icon BUILTIN="messagebox_warning"/> <icon BUILTIN="messagebox_warning"/>
<node CREATED="1721838753885" ID="ID_117794585" MODIFIED="1721838768742" TEXT="das widerspricht unimttelbar der Builder-API-Logik"/> <node CREATED="1721838753885" ID="ID_117794585" MODIFIED="1721838768742" TEXT="das widerspricht unimttelbar der Builder-API-Logik"/>
<node CREATED="1721838769522" ID="ID_230120050" MODIFIED="1721838872487" TEXT="und stellt eine l&#xe4;stige / problematische Einschr&#xe4;nkung dar"> <node CREATED="1721838769522" ID="ID_230120050" MODIFIED="1721838872487" TEXT="und stellt eine l&#xe4;stige / problematische Einschr&#xe4;nkung dar">
@ -88547,7 +88537,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="forward"/> <icon BUILTIN="forward"/>
</node> </node>
</node> </node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721842271062" ID="ID_957156267" MODIFIED="1721842285156" TEXT="zweite L&#xf6;sung gem&#xe4;&#xdf; YAGNI"> <node COLOR="#435e98" CREATED="1721842271062" ID="ID_957156267" MODIFIED="1728653995190" TEXT="zweite L&#xf6;sung gem&#xe4;&#xdf; YAGNI">
<icon BUILTIN="yes"/> <icon BUILTIN="yes"/>
</node> </node>
</node> </node>
@ -88557,7 +88547,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node COLOR="#338800" CREATED="1721842328021" ID="ID_1494182835" MODIFIED="1721844743382" TEXT="selectOutputSlot()"> <node COLOR="#338800" CREATED="1721842328021" ID="ID_1494182835" MODIFIED="1721844743382" TEXT="selectOutputSlot()">
<icon BUILTIN="button_ok"/> <icon BUILTIN="button_ok"/>
</node> </node>
<node CREATED="1721842335404" ID="ID_1250028316" MODIFIED="1721842383194" TEXT="setAllCached()"/> <node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721842335404" ID="ID_1250028316" MODIFIED="1728654030097" TEXT="setAllCached()">
<icon BUILTIN="bell"/>
</node>
<node CREATED="1721842384902" ID="ID_533404449" MODIFIED="1721842395765" TEXT="setCached(i...i)"/> <node CREATED="1721842384902" ID="ID_533404449" MODIFIED="1721842395765" TEXT="setCached(i...i)"/>
</node> </node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721842523924" ID="ID_1665424296" MODIFIED="1721842678142" TEXT="zudem: &#xbb;Service-Kontext&#xab; bereitstellen"> <node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721842523924" ID="ID_1665424296" MODIFIED="1721842678142" TEXT="zudem: &#xbb;Service-Kontext&#xab; bereitstellen">
@ -88566,8 +88558,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722274451779" ID="ID_1072443707" LINK="https://issues.lumiera.org/ticket/1373" MODIFIED="1722274484633" TEXT="#1373 Default-BufferProvider"> <node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722274451779" ID="ID_1072443707" LINK="https://issues.lumiera.org/ticket/1373" MODIFIED="1722274484633" TEXT="#1373 Default-BufferProvider">
<icon BUILTIN="flag-yellow"/> <icon BUILTIN="flag-yellow"/>
</node> </node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722274502942" ID="ID_1076067994" LINK="https://issues.lumiera.org/ticket/1374" MODIFIED="1722275936824" TEXT="#1374 Output-BufferProvider"> <node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722274502942" ID="ID_1076067994" LINK="https://issues.lumiera.org/ticket/1374" MODIFIED="1728653444493" TEXT="#1374 Output-BufferProvider">
<arrowlink COLOR="#861f49" DESTINATION="ID_80799942" ENDARROW="Default" ENDINCLINATION="-75;-520;" ID="Arrow_ID_1180739231" STARTARROW="None" STARTINCLINATION="1006;82;"/> <arrowlink COLOR="#1f4486" DESTINATION="ID_80799942" ENDARROW="Default" ENDINCLINATION="-75;-520;" ID="Arrow_ID_1180739231" STARTARROW="None" STARTINCLINATION="1006;82;"/>
<icon BUILTIN="flag-yellow"/> <icon BUILTIN="flag-yellow"/>
</node> </node>
</node> </node>
@ -88597,7 +88589,18 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<arrowlink COLOR="#426b9b" DESTINATION="ID_1427714372" ENDARROW="Default" ENDINCLINATION="-959;175;" ID="Arrow_ID_770296022" STARTARROW="None" STARTINCLINATION="-446;-54;"/> <arrowlink COLOR="#426b9b" DESTINATION="ID_1427714372" ENDARROW="Default" ENDINCLINATION="-959;175;" ID="Arrow_ID_770296022" STARTARROW="None" STARTINCLINATION="-446;-54;"/>
<node CREATED="1719162514087" ID="ID_416948245" MODIFIED="1719162521740" TEXT="f&#xfc;r Working Buffers"/> <node CREATED="1719162514087" ID="ID_416948245" MODIFIED="1719162521740" TEXT="f&#xfc;r Working Buffers"/>
<node CREATED="1719162522590" ID="ID_545575789" MODIFIED="1719162528681" TEXT="als Front-End f&#xfc;r den Cache"/> <node CREATED="1719162522590" ID="ID_545575789" MODIFIED="1719162528681" TEXT="als Front-End f&#xfc;r den Cache"/>
<node CREATED="1720485474864" ID="ID_1518497515" MODIFIED="1720485489986" TEXT="als Front-End f&#xfc;r OutputSlot / DataSink"/> <node COLOR="#5b280f" CREATED="1720485474864" ID="ID_1518497515" MODIFIED="1728653276605" TEXT="als Front-End f&#xfc;r OutputSlot / DataSink">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
nein! jetzt direkt im Aufruf gel&#246;st
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="button_cancel"/>
</node>
</node> </node>
<node CREATED="1721059527488" ID="ID_824337184" MODIFIED="1721059685476" TEXT="tats&#xe4;chlich liegt diese Info bereits im BufferDescriptor"> <node CREATED="1721059527488" ID="ID_824337184" MODIFIED="1721059685476" TEXT="tats&#xe4;chlich liegt diese Info bereits im BufferDescriptor">
<arrowlink COLOR="#516883" DESTINATION="ID_562004793" ENDARROW="Default" ENDINCLINATION="-1136;1066;" ID="Arrow_ID_1799901944" STARTARROW="None" STARTINCLINATION="-504;-31;"/> <arrowlink COLOR="#516883" DESTINATION="ID_562004793" ENDARROW="Default" ENDINCLINATION="-1136;1066;" ID="Arrow_ID_1799901944" STARTARROW="None" STARTINCLINATION="-504;-31;"/>
@ -88612,7 +88615,17 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1721866481394" ID="ID_1853457963" MODIFIED="1721866534078" TEXT="zu kl&#xe4;ren: Scope zur Verdrahtung dieser Services"> <node CREATED="1721866481394" ID="ID_1853457963" MODIFIED="1721866534078" TEXT="zu kl&#xe4;ren: Scope zur Verdrahtung dieser Services">
<icon BUILTIN="yes"/> <icon BUILTIN="yes"/>
<node CREATED="1721866537521" ID="ID_1964460392" MODIFIED="1721866548867" TEXT="sie sind effektiv global"/> <node CREATED="1721866537521" ID="ID_1964460392" MODIFIED="1721866548867" TEXT="sie sind effektiv global"/>
<node CREATED="1721866551423" ID="ID_779602459" MODIFIED="1721866584882" TEXT="problematisch dabei: der Output-BufferProivder"> <node COLOR="#5b280f" CREATED="1721866551423" ID="ID_779602459" MODIFIED="1728654358835" TEXT="problematisch dabei: der Output-BufferProivder">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
ja: ist problematisch &#8212; und genau deshalb ziehe ich jetzt vor, den Output-Buffer direkt &#252;ber den Aufruf bereitzustellen; dieser Aspekt spielt damit f&#252;r das Thema Dependency-Injection keine Rolle mehr
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="button_cancel"/>
<node CREATED="1721866589257" ID="ID_1094487880" MODIFIED="1721866862199" TEXT="dieser mu&#xdf; allerdings einen konkreten Bezug herstellen"> <node CREATED="1721866589257" ID="ID_1094487880" MODIFIED="1721866862199" TEXT="dieser mu&#xdf; allerdings einen konkreten Bezug herstellen">
<richcontent TYPE="NOTE"><html> <richcontent TYPE="NOTE"><html>
<head/> <head/>
@ -88679,7 +88692,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</html></richcontent> </html></richcontent>
</node> </node>
</node> </node>
<node COLOR="#5b280f" CREATED="1721956892200" ID="ID_1451110951" MODIFIED="1722470788939" TEXT="strukturell w&#xe4;re das Spezial-Tag die beste L&#xf6;sung"> <node COLOR="#5b280f" CREATED="1721956892200" FOLDED="true" ID="ID_1451110951" MODIFIED="1722470788939" TEXT="strukturell w&#xe4;re das Spezial-Tag die beste L&#xf6;sung">
<arrowlink COLOR="#4395d3" DESTINATION="ID_1329080039" ENDARROW="Default" ENDINCLINATION="-105;0;" ID="Arrow_ID_1999279188" STARTARROW="None" STARTINCLINATION="6;-21;"/> <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;"/> <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="yes"/>
@ -88776,12 +88789,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1722005561810" ID="ID_605283552" MODIFIED="1722005604557" TEXT="zu dem Zeitpunkt haben wir einen Buffer-Descriptor vorliegen"> <node CREATED="1722005561810" ID="ID_605283552" MODIFIED="1722005604557" TEXT="zu dem Zeitpunkt haben wir einen Buffer-Descriptor vorliegen">
<icon BUILTIN="idea"/> <icon BUILTIN="idea"/>
</node> </node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1722006966966" ID="ID_80799942" MODIFIED="1722275926136" TEXT="neues API ben&#xf6;tigt"> <node COLOR="#338800" CREATED="1722006966966" ID="ID_80799942" MODIFIED="1728653437446" TEXT="neues API ben&#xf6;tigt">
<linktarget COLOR="#861f49" DESTINATION="ID_80799942" ENDARROW="Default" ENDINCLINATION="-75;-520;" ID="Arrow_ID_1180739231" SOURCE="ID_1076067994" STARTARROW="None" STARTINCLINATION="1006;82;"/> <linktarget COLOR="#1f4486" DESTINATION="ID_80799942" ENDARROW="Default" ENDINCLINATION="-75;-520;" ID="Arrow_ID_1180739231" SOURCE="ID_1076067994" STARTARROW="None" STARTINCLINATION="1006;82;"/>
<icon BUILTIN="flag-pink"/> <icon BUILTIN="button_ok"/>
<node CREATED="1722006974253" ID="ID_1472014079" MODIFIED="1722006984025" TEXT="aufrufbar auf/mit einem BufferDescriptor"/> <node CREATED="1722006974253" ID="ID_1472014079" MODIFIED="1722006984025" TEXT="aufrufbar auf/mit einem BufferDescriptor"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1722006984755" ID="ID_1802025811" MODIFIED="1722092863044" TEXT="kann ein LocalTag setzen"> <node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1722006984755" ID="ID_1802025811" MODIFIED="1728653433016" TEXT="kann ein LocalTag setzen">
<icon BUILTIN="pencil"/> <icon BUILTIN="button_ok"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1722092776817" ID="ID_1178263086" MODIFIED="1722092793427" TEXT="Bezugspunkt: BufferMetadata::lock()"> <node CREATED="1722092776817" ID="ID_1178263086" MODIFIED="1722092793427" TEXT="Bezugspunkt: BufferMetadata::lock()">
<node CREATED="1722092795833" ID="ID_444477764" MODIFIED="1722092803241" TEXT="konstruiert einen abgeleiteten Entry"/> <node CREATED="1722092795833" ID="ID_444477764" MODIFIED="1722092803241" TEXT="konstruiert einen abgeleiteten Entry"/>
<node CREATED="1722092804037" ID="ID_696205920" MODIFIED="1722092813545" TEXT="konstruiert dabei einen abgeleiteten Key"/> <node CREATED="1722092804037" ID="ID_696205920" MODIFIED="1722092813545" TEXT="konstruiert dabei einen abgeleiteten Key"/>
@ -89070,10 +89084,11 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node> </node>
</node> </node>
</node> </node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1722384533324" ID="ID_128884200" MODIFIED="1722392116636" TEXT="API-Erg&#xe4;nzung: LocalTag durchreichen"> <node COLOR="#435e98" CREATED="1722384533324" ID="ID_128884200" MODIFIED="1728654385202" TEXT="API-Erg&#xe4;nzung: LocalTag durchreichen">
<arrowlink COLOR="#8c1444" DESTINATION="ID_450967698" ENDARROW="Default" ENDINCLINATION="-313;-10;" ID="Arrow_ID_414353144" STARTARROW="None" STARTINCLINATION="-367;0;"/> <arrowlink COLOR="#8c1444" DESTINATION="ID_450967698" ENDARROW="Default" ENDINCLINATION="-313;-10;" ID="Arrow_ID_414353144" STARTARROW="None" STARTINCLINATION="-367;0;"/>
<linktarget COLOR="#8e30c2" DESTINATION="ID_128884200" ENDARROW="Default" ENDINCLINATION="53;-3;" ID="Arrow_ID_182326182" SOURCE="ID_70781847" STARTARROW="None" STARTINCLINATION="-9;58;"/> <linktarget COLOR="#8e30c2" DESTINATION="ID_128884200" ENDARROW="Default" ENDINCLINATION="53;-3;" ID="Arrow_ID_182326182" SOURCE="ID_70781847" STARTARROW="None" STARTINCLINATION="-9;58;"/>
<icon BUILTIN="flag-pink"/> <icon BUILTIN="yes"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1722392284686" ID="ID_1073120762" MODIFIED="1722392451719" TEXT="mu&#xdf; das wohl doch in den Buffer-Descriptor einbauen"> <node CREATED="1722392284686" ID="ID_1073120762" MODIFIED="1722392451719" TEXT="mu&#xdf; das wohl doch in den Buffer-Descriptor einbauen">
<richcontent TYPE="NOTE"><html> <richcontent TYPE="NOTE"><html>
<head/> <head/>
@ -89085,6 +89100,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</html></richcontent> </html></richcontent>
</node> </node>
<node CREATED="1722392313295" ID="ID_854136592" MODIFIED="1722392349478" TEXT="allerdings nur transient &#x2014; damit eine andere Type-ID ankommt"/> <node CREATED="1722392313295" ID="ID_854136592" MODIFIED="1722392349478" TEXT="allerdings nur transient &#x2014; damit eine andere Type-ID ankommt"/>
<node CREATED="1728654390651" ID="ID_1271433973" LINK="#ID_475931392" MODIFIED="1728654403283" TEXT="(letzten Endes anders gel&#xf6;st)"/>
</node> </node>
</node> </node>
</node> </node>
@ -89117,9 +89133,22 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<linktarget COLOR="#8c1444" DESTINATION="ID_450967698" ENDARROW="Default" ENDINCLINATION="-313;-10;" ID="Arrow_ID_414353144" SOURCE="ID_128884200" STARTARROW="None" STARTINCLINATION="-367;0;"/> <linktarget COLOR="#8c1444" DESTINATION="ID_450967698" ENDARROW="Default" ENDINCLINATION="-313;-10;" ID="Arrow_ID_414353144" SOURCE="ID_128884200" STARTARROW="None" STARTINCLINATION="-367;0;"/>
</node> </node>
<node CREATED="1722445242908" ID="ID_1389873312" MODIFIED="1722445279859" TEXT="allerdings wird dieses speziell pr&#xe4;parierte BuffHandle besser direkt eingef&#xfc;gt"/> <node CREATED="1722445242908" ID="ID_1389873312" MODIFIED="1722445279859" TEXT="allerdings wird dieses speziell pr&#xe4;parierte BuffHandle besser direkt eingef&#xfc;gt"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1722384890441" ID="ID_438526459" MODIFIED="1722385120612" TEXT="zu kl&#xe4;ren bleibt: wie wird diese Info genau eingebunden?"> <node COLOR="#5b280f" CREATED="1722384890441" ID="ID_438526459" MODIFIED="1728653318306" TEXT="zu kl&#xe4;ren bleibt: wie wird diese Info genau eingebunden?">
<arrowlink COLOR="#932840" DESTINATION="ID_657216791" ENDARROW="Default" ENDINCLINATION="103;-2;" ID="Arrow_ID_1546346335" STARTARROW="None" STARTINCLINATION="-431;18;"/> <arrowlink COLOR="#932840" DESTINATION="ID_657216791" ENDARROW="Default" ENDINCLINATION="103;-2;" ID="Arrow_ID_1546346335" STARTARROW="None" STARTINCLINATION="-431;18;"/>
<icon BUILTIN="help"/> <icon BUILTIN="help"/>
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1728653320962" ID="ID_965156506" MODIFIED="1728653416812" TEXT="Antwort: gar nicht"/>
<node CREATED="1728653327912" ID="ID_475931392" LINK="#ID_1963170563" MODIFIED="1728654411295" TEXT="hab dann letztlich diese L&#xf6;sung doch verworfen">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
...es ist zwar gut, da&#223; es das LocalTag gibt, aber f&#252;r diesen Fall ist das eine unsinnige Trickserei; es ist viel besser, an der einzigen Stelle, wo das ben&#246;tigt wird (n&#228;mlich auf top-Level) explizit eine Flag zu setzen und dann den Buffer zu entnehmen
</p>
</body>
</html>
</richcontent>
</node>
</node> </node>
</node> </node>
</node> </node>
@ -89136,12 +89165,15 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</html></richcontent> </html></richcontent>
</node> </node>
</node> </node>
<node CREATED="1722612598373" ID="ID_1824837145" MODIFIED="1722612697640" TEXT="Fazit: damit ist ein globaler Scope m&#xf6;glich"> <node CREATED="1722612598373" ID="ID_1824837145" MODIFIED="1728654533346" TEXT="Fazit: damit ist ein globaler Scope m&#xf6;glich">
<richcontent TYPE="NOTE"><html> <richcontent TYPE="NOTE"><html>
<head/> <head/>
<body> <body>
<p> <p>
Den OutputBufferProvider handhaben wir jetzt eine Ebene h&#246;her, und dort k&#246;nnen wir direkt ein LocalTag setzen und dann ein zugeh&#246;riges BuffHandle erstellen, das nur an einen bestimmten Buffer im Output-system gebunden ist. Alle anderen Use-Cases (Memory-Bl&#246;cke und Cache) sind ohnehin global f&#252;r die gesamte RenderEngine Den OutputBufferProvider handhaben wir jetzt eine Ebene h&#246;her; genauer, wir hanhaben ihn direkt, denn es ist nur ein einziger Buffer auf top-Level.
</p>
<p>
Alle anderen Use-Cases (Memory-Bl&#246;cke und Cache) sind ohnehin global f&#252;r die gesamte RenderEngine, und damit handhabbar mit den normalen DI-Mechanismen
</p> </p>
</body> </body>
</html></richcontent> </html></richcontent>
@ -89164,6 +89196,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node> </node>
</node> </node>
<node CREATED="1722647413798" ID="ID_1607895967" MODIFIED="1722647418305" TEXT="Struktur"> <node CREATED="1722647413798" ID="ID_1607895967" MODIFIED="1722647418305" TEXT="Struktur">
<linktarget COLOR="#626f93" DESTINATION="ID_1607895967" ENDARROW="Default" ENDINCLINATION="54;426;" ID="Arrow_ID_1301744172" SOURCE="ID_478319632" STARTARROW="None" STARTINCLINATION="720;24;"/>
<node CREATED="1722647419605" ID="ID_1700431737" MODIFIED="1722647426928" TEXT="ein Front-End mit Referenzen"/> <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="1722647429699" ID="ID_1374967687" MODIFIED="1722647484152" TEXT="ein (opaque) Services-Objekt"/>
<node CREATED="1722647819006" ID="ID_1544083902" MODIFIED="1722647825463" TEXT="Anforderungen"> <node CREATED="1722647819006" ID="ID_1544083902" MODIFIED="1722647825463" TEXT="Anforderungen">
@ -89180,6 +89213,22 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1722648096856" ID="ID_1675656022" MODIFIED="1722648117988" TEXT="kann explizit einen Kontext f&#xfc;r die RenderEngine hochfahren"/> <node CREATED="1722648096856" ID="ID_1675656022" MODIFIED="1722648117988" TEXT="kann explizit einen Kontext f&#xfc;r die RenderEngine hochfahren"/>
</node> </node>
</node> </node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728654667677" ID="ID_202980797" MODIFIED="1728654672230" TEXT="Implementierung">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1728654679810" ID="ID_180965419" MODIFIED="1728654697576" TEXT="Header: steam/engine/engine-ctx.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728655382477" ID="ID_980783783" MODIFIED="1728658107738" TEXT="Implementierung: engine-ctx-facilities.hpp|cpp">
<linktarget COLOR="#496d98" DESTINATION="ID_980783783" ENDARROW="Default" ENDINCLINATION="-1507;-94;" ID="Arrow_ID_11368875" SOURCE="ID_1763878258" STARTARROW="None" STARTINCLINATION="392;28;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728658365910" ID="ID_831264983" MODIFIED="1728658406545" TEXT="brauche L&#xf6;sung um die Referenz-Member direkt auf eine Service-Instanz zu binden">
<icon BUILTIN="flag-pink"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728658390507" ID="ID_1131398613" MODIFIED="1728658406545" TEXT="Implementierung vom default-ctor mu&#xdf; eine Dummy-Impl hochziehen">
<icon BUILTIN="flag-pink"/>
</node>
</node>
</node>
</node> </node>
</node> </node>
</node> </node>
@ -89270,6 +89319,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1722445400526" ID="ID_270562222" MODIFIED="1722445411968" TEXT="daf&#xfc;r ist nur ein einziger Eingriff in shed() notwendig"/> <node CREATED="1722445400526" ID="ID_270562222" MODIFIED="1722445411968" TEXT="daf&#xfc;r ist nur ein einziger Eingriff in shed() notwendig"/>
</node> </node>
</node> </node>
<node CREATED="1728653092345" ID="ID_670416401" MODIFIED="1728653095731" TEXT="Fazit">
<node CREATED="1728653097295" ID="ID_1497905125" MODIFIED="1728653116584" TEXT="der Ausgabepuffer wird direkt &#xfc;ber den Aufruf herausgef&#xfc;hrt"/>
<node CREATED="1728653130694" ID="ID_1242564198" MODIFIED="1728653148596" TEXT="das ganze Konzept des OutputBufferProvider wird damit hinf&#xe4;llig"/>
<node CREATED="1728653149728" ID="ID_478319632" MODIFIED="1728653219457" TEXT="unabh&#xe4;ngig davon bleibt Dependency-Injection notwendig f&#xfc;r Cache und Buffer-Service">
<arrowlink COLOR="#626f93" DESTINATION="ID_1607895967" ENDARROW="Default" ENDINCLINATION="54;426;" ID="Arrow_ID_1301744172" STARTARROW="None" STARTINCLINATION="720;24;"/>
</node>
</node>
</node> </node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721003681836" ID="ID_536010685" MODIFIED="1721061587708" TEXT="erst mal: Bulk-Konfig f&#xfc;r alle"> <node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721003681836" ID="ID_536010685" MODIFIED="1721061587708" TEXT="erst mal: Bulk-Konfig f&#xfc;r alle">
<icon BUILTIN="flag-yellow"/> <icon BUILTIN="flag-yellow"/>