Invocation: now able to pass simple buffer case

Can now invoke the FeedManifold with
- either only one output buffer pointer
- or an input and output buffer pointer

With the new support tooling developed yesterday,
the decision logic is now stright-forward to express

__NOTE__ there is a known problem with type-handler registration in the `BufferProvider`;
basically all functors with the same signature are treated as ''identical type'',
which does not account for the fact that functors may hold captured data:
in the example here the second buffer is created with the constructor arguments
given to the first one, ignoring all further sets of similar arguments
This commit is contained in:
Fischlurch 2024-12-18 17:04:30 +01:00
parent 844aa7f3d7
commit d5bbec6519
3 changed files with 115 additions and 80 deletions

View file

@ -113,6 +113,7 @@ namespace engine {
using lib::meta::enable_if;
using lib::meta::is_Structured;
using lib::meta::forEachIDX;
using lib::meta::ElmTypes;
using lib::meta::TySeq;
using std::is_pointer;
using std::is_reference;
@ -266,7 +267,7 @@ namespace engine {
struct _Case<SIG, enable_if<is_BinaryFun<SIG>>>
{
enum{ SLOT_O = 1
, SLOT_I = is_StructBuffs<_Arg<SIG,0>>::value? 0 : 1 ////////OOO maybe derive directly from std::conditional?
, SLOT_I = typename ElmTypes<_Arg<SIG,0>>::template AndAll<is_Buffer>()? 0 : 1
};
};
template<class SIG>

View file

@ -88,24 +88,6 @@ namespace test {
using T4 = int*;
using T5 = lib::HeteroData<int*,long,double*>;
/////////////////////////////////////////////////////////////////////////////////TODO
using lib::meta::ElmTypes;
using S1 = ElmTypes<T5>;
SHOW_TYPE(S1)
SHOW_TYPE(S1::Seq)
SHOW_TYPE(S1::Tup)
SHOW_TYPE(S1::Idx)
using S1A = S1::Apply<is_Buffer>;
SHOW_TYPE(S1A)
using S1AR = ElmTypes<S1A>::Rebind<std::__and_>;
SHOW_TYPE(S1AR)
SHOW_EXPR(S1AR::value)
using S1AA = S1::AndAll<is_Buffer>;
SHOW_TYPE(S1AA)
SHOW_EXPR(bool(S1AA()))
using S1OA = S1::OrAll<is_Buffer>;
SHOW_TYPE(S1OA)
SHOW_EXPR(S1OA::value)
auto fun_singleOut = [&](Buffer* buff) { *buff = r1; };
// Example-1: a FeedManifold to adapt a simple generator function
@ -120,7 +102,7 @@ SHOW_EXPR(S1OA::value)
// CHECK (m1.param );
BufferProvider& provider = DiagnosticBufferProvider::build();
BuffHandle buff = provider.lockBufferFor<long> (-55);
BuffHandle buff = provider.lockBufferFor<Buffer> (-55);
CHECK (buff.isValid());
CHECK (buff.accessAs<long>() == -55);
@ -136,19 +118,46 @@ SHOW_EXPR(S1OA::value)
CHECK (buff.accessAs<long>() == r1); // result: the random number r1 was written into the buffer.
// Example-2: adapt a function to process input -> output buffer
auto fun_singleInOut = [](Buffer* in, Buffer* out) { *out = *in; };
auto fun_singleInOut = [](Buffer* in, Buffer* out) { *out = *in + 1; };
using M2 = FeedManifold<decltype(fun_singleInOut)>;
CHECK ( M2::hasInput());///////////////////////////TODO broken due to overly convoluted logic!!!!
CHECK ( M2::hasInput());
CHECK (not M2::hasParam());
CHECK (1 == M2::FAN_I);
CHECK (1 == M2::FAN_O);
// instantiate...
M2 m2{fun_singleInOut};
// CHECK (1 == m2.inBuff.array().size()); ///////////TODO : need to »lift« plain types for simplfied logic!!!!
CHECK (1 == m2.inBuff.array().size());
CHECK (1 == m2.outBuff.array().size());
// CHECK (nullptr == m2.inArgs );
CHECK (nullptr == m2.inArgs );
CHECK (nullptr == m2.outArgs );
// use the result of the preceding Example-1 as input
// and get a new buffer to capture the output
BuffHandle buffOut = provider.lockBufferFor<Buffer> (-99);
CHECK (buff.accessAs<long>() == r1);
SHOW_EXPR(buff.accessAs<long>())
SHOW_EXPR(buffOut.accessAs<long>())
CHECK (buffOut.accessAs<long>() == -55); ///////////////////////////////////////OOO should be -99 --> aliasing of buffer meta records due to bug with hash generation
// configure the Manifold-2 with this input and output buffer
m2.inBuff.createAt (0, buff);
m2.outBuff.createAt(0, buffOut);
CHECK (m2.inBuff[0].isValid());
CHECK (m2.inBuff[0].accessAs<long>() == r1 );
CHECK (m2.outBuff[0].isValid());
CHECK (m2.outBuff[0].accessAs<long>() == -55); ////////////////////////////////OOO should be -99
// connect arguments to buffers
m2.connect();
CHECK (isSameAdr (m2.inArgs, *buff));
CHECK (isSameAdr (m2.outArgs, *buffOut));
CHECK (*m2.outArgs == -55); ////////////////////////////////OOO should be -99
m2.invoke();
SHOW_EXPR(r1)
SHOW_EXPR(*m1.outArgs)
SHOW_EXPR(*m2.outArgs)
CHECK (buffOut.accessAs<long>() == r1+1);
}
};

View file

@ -25030,9 +25030,7 @@
<node CREATED="1612001686428" ID="ID_1708452319" MODIFIED="1612001730290" TEXT="&#x2192; gtk_layout_put() in gtklayout.c, line 462"/>
<node CREATED="1612001824933" ID="ID_1012337567" MODIFIED="1612001854632" TEXT="konstruiert neuen Entry und f&#xfc;gt ihn an interne Liste an">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...and &quot;realizes&quot; the widget
@ -25634,9 +25632,7 @@
</node>
<node CREATED="1569711798770" ID="ID_27191288" MODIFIED="1584888645436">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
erm&#246;glicht (abstrahierten) Zugang zum Canvas &#252;ber einen <b>ViewHook</b>
@ -26268,9 +26264,7 @@
<node CREATED="1576755445747" ID="ID_858059536" MODIFIED="1576755448918" TEXT="wo?"/>
<node CREATED="1576755498409" ID="ID_1656418231" MODIFIED="1576756316761">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
nur wenn DisplayFrame selber ein ViewHook <i>w&#228;re</i>
@ -26986,9 +26980,7 @@
</node>
<node CREATED="1677243789088" ID="ID_1550304217" MODIFIED="1677243866319" TEXT="aber man kann nicht einen Parameter &#xe4;ndern und die Konstruktion als Solche erhalten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
wenn man nachtr&#228;glich einzelne Objekte modifiziert, &#228;ndern sicn nur diese, aber keine davon abh&#228;ngigen weiteren Schritte der Konstruktion
@ -27175,9 +27167,7 @@
<node CREATED="1677283226896" ID="ID_1105190200" MODIFIED="1677283257013" TEXT="als Skizze verwendet &#x27f9; die Hilfslinien fehlen"/>
<node CREATED="1677283259677" ID="ID_1713241605" MODIFIED="1677283331779" TEXT="Export als &#xbb;Flat SVG&#xab; scheitert mit einem Logikfehler">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
a bytes-like object is required, not &quot;str&quot;
@ -28055,9 +28045,7 @@
<icon BUILTIN="help"/>
<node CREATED="1677626041993" ID="ID_1160252640" MODIFIED="1677626192299">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
<u>gegeben...</u>
@ -30045,9 +30033,7 @@
</node>
<node COLOR="#435e98" CREATED="1674506884449" ID="ID_651254620" MODIFIED="1674510162022">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
demnach <b>&#228;ndern</b>&#160;wir jetzt den Contrakt
@ -31743,9 +31729,7 @@
<node CREATED="1554516555943" ID="ID_1554446719" MODIFIED="1557498707230" TEXT="Argument = vertikal in Pixeln"/>
<node CREATED="1554516578588" ID="ID_520338948" MODIFIED="1576282358050" TEXT="Spannen inklusive Dekoration">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
warum?
@ -34179,9 +34163,7 @@
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1584229199851" HGAP="47" ID="ID_1146096669" MODIFIED="1584229499004" TEXT="Vorsicht: Darstellung von Spuren und Effekten im Clip" VSHIFT="2">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
wir verwenden das ClipDelegate aber auch, um in Clips eingebettete Effekte oder die einzelnen Spuren darzustellen. Die Logik f&#252;r den Anzeigestil mu&#223; das mit ber&#252;cksichtigen
@ -35491,9 +35473,7 @@
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1504200878312" ID="ID_1934842950" MODIFIED="1576282358037" TEXT="...f&#xfc;r #1099 DemoGuiRoundtrip">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...um mal was im UI anzeigen zu k&#246;nnen
@ -35598,9 +35578,7 @@
<node CREATED="1477342711442" ID="ID_500847959" MODIFIED="1518487921084" TEXT="wenn letztes Fenster zu, dann Main-&gt;quit"/>
<node CREATED="1477342816853" ID="ID_205499879" MODIFIED="1576282358037" TEXT="steuert Zusand von Menu&gt;Window&gt;CloseWindow">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...nur <i>enabled</i>&#160;wenn
@ -36328,9 +36306,7 @@
</node>
<node CREATED="1532789198999" ID="ID_270727305" MODIFIED="1576282358029" TEXT="lt. Kommentar insges. ehr ein Legacy-Feature">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...f&#252;r Signale, die nicht automatisch detached werden k&#246;nnen
@ -36817,9 +36793,7 @@
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477784813895" ID="ID_791449946" MODIFIED="1557498707233">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
<u>Aufgabe</u>: <i><font color="#821b58" size="4">inject dummy content</font></i>
@ -37280,9 +37254,7 @@
<node CREATED="1614543982261" ID="ID_268537549" MODIFIED="1614544001288" TEXT="der ClipPresenter hat keinen direkten Zugriff auf das konkrete ClipDelegate"/>
<node CREATED="1614544072432" ID="ID_624148025" MODIFIED="1614544294924" TEXT="der Anzeigestil wird relativ autonom im ClipDelegate gew&#xe4;hlt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...wobei das auch noch halbfertig ist; sp&#228;ter einmal mu&#223; es hier eine Abstimmung mit dem Layout-Manager geben, aber diese Abstimmung sollte eigentlich nicht &#252;ber den ClipPresenter laufen
@ -88526,11 +88498,14 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734310118603" ID="ID_1954508996" MODIFIED="1734310510263" TEXT="Feed-Manifold: Eigenschaften demonstrieren">
<linktarget COLOR="#406cd3" DESTINATION="ID_1954508996" ENDARROW="Default" ENDINCLINATION="-484;30;" ID="Arrow_ID_640616380" SOURCE="ID_1710382999" STARTARROW="None" STARTINCLINATION="-2974;268;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1734310213994" ID="ID_691754137" MODIFIED="1734310241708" TEXT="mehrere Varianten von Funktions-Signaturen vorstellen">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734310245306" ID="ID_1881940952" MODIFIED="1734310329959" TEXT="reiner Output mit einem Buffer">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1734310213994" ID="ID_691754137" MODIFIED="1734536050291" TEXT="mehrere Varianten von Funktions-Signaturen vorstellen">
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1734310245306" ID="ID_1881940952" MODIFIED="1734535951144" TEXT="reiner Output mit einem Buffer">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734310278618" ID="ID_1569263616" MODIFIED="1734310327545" TEXT="Input &#x27fc; Output mit einem Buffer">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734310278618" ID="ID_1569263616" MODIFIED="1734536988389" TEXT="Input &#x27fc; Output mit einem Buffer">
<arrowlink COLOR="#f70b4e" DESTINATION="ID_1455684253" ENDARROW="Default" ENDINCLINATION="-91;-6;" ID="Arrow_ID_490366864" STARTARROW="None" STARTINCLINATION="-130;10;"/>
<linktarget COLOR="#78b893" DESTINATION="ID_1569263616" ENDARROW="Default" ENDINCLINATION="406;32;" ID="Arrow_ID_1856379869" SOURCE="ID_745699305" STARTARROW="None" STARTINCLINATION="-602;56;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734310306689" ID="ID_246862993" MODIFIED="1734310327544" TEXT="Input &#x27fc; Output mit einem Buffer mit einem Parameter">
@ -88888,8 +88863,18 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734536128602" ID="ID_1455684253" MODIFIED="1734537003904" TEXT="(bekannt) Problem mit Buffer-Type-Handler">
<arrowlink COLOR="#eb0448" DESTINATION="ID_1196748413" ENDARROW="Default" ENDINCLINATION="-588;25;" ID="Arrow_ID_267737237" STARTARROW="None" STARTINCLINATION="1358;88;"/>
<linktarget COLOR="#f70b4e" DESTINATION="ID_1455684253" ENDARROW="Default" ENDINCLINATION="-91;-6;" ID="Arrow_ID_490366864" SOURCE="ID_1569263616" STARTARROW="None" STARTINCLINATION="-130;10;"/>
<icon BUILTIN="broken-line"/>
</node>
</node>
<node COLOR="#338800" CREATED="1734310359146" ID="ID_1656582564" MODIFIED="1734536053863" TEXT="aufrufen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1734536056005" ID="ID_1117694687" MODIFIED="1734536064492" TEXT="Adressen &#xfc;berpr&#xfc;fen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1734310359146" ID="ID_1656582564" MODIFIED="1734310361422" TEXT="aufrufen"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733525831136" ID="ID_1553180375" MODIFIED="1733527489987" TEXT="NodeBuilder_test">
@ -91853,8 +91838,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
...wenn m&#246;glich alles auf strukturierte Typen <i>heben</i>
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<linktarget COLOR="#c8022e" DESTINATION="ID_1884890390" ENDARROW="Default" ENDINCLINATION="-1263;97;" ID="Arrow_ID_232119446" SOURCE="ID_1086476352" STARTARROW="None" STARTINCLINATION="-517;-18;"/>
<icon BUILTIN="yes"/>
<node COLOR="#236883" CREATED="1734496443007" ID="ID_1580496045" LINK="#ID_1734731182" MODIFIED="1734496487271" TEXT="generisches Verarbeitungs-Schema: ElmTypes&lt;TUP&gt;">
@ -92413,8 +92397,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<i>das</i>&#160;ist doch der Teil der immer so m&#252;hsam ist....
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1734495414985" ID="ID_210402667" MODIFIED="1734495431237" TEXT="k&#xf6;nnte man analog zu meinen Index-Sequenz-Buildern aufbauen"/>
<node CREATED="1734495432991" ID="ID_1441320520" MODIFIED="1734495457547" TEXT="es braucht nur ein einziges nested-Pattern-Matching-Template">
@ -92437,8 +92420,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<u>extrahiert</u>:&#160;&#160;<font face="Monospaced" color="#3220a2"><b>ElmTypes</b></font><font face="Monospaced" color="#a18383">&lt;</font><font face="Monospaced" color="#992525">X</font><font face="Monospaced" color="#a18383">&gt;</font>&#160;&#160;in variadic-helper.hpp
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<linktarget COLOR="#458adc" DESTINATION="ID_894985782" ENDARROW="Default" ENDINCLINATION="-2245;0;" ID="Arrow_ID_1598804519" SOURCE="ID_1890096800" STARTARROW="None" STARTINCLINATION="5222;1394;"/>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1734495808108" ID="ID_1573254062" MODIFIED="1734495987215" TEXT="Verwendung...">
<icon BUILTIN="forward"/>
@ -92462,6 +92444,17 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1734496383891" ID="ID_352066932" MODIFIED="1734496422850" TEXT="damit sollte hoffentlich das _ProcFun-Traits-Template wesentlich einfacher werden....">
<icon BUILTIN="idea"/>
<node COLOR="#338800" CREATED="1734537123396" ID="ID_1099344573" MODIFIED="1734537142599" TEXT="Fehlsteuerung in der Use-Case-Erkennung jetzt einfach zu beheben">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1734535852731" ID="ID_745699305" MODIFIED="1734537109150" TEXT="Test: Einzel-Buffer IN &#x27f6; OUT">
<arrowlink COLOR="#78b893" DESTINATION="ID_1569263616" ENDARROW="Default" ENDINCLINATION="406;32;" ID="Arrow_ID_1856379869" STARTARROW="None" STARTINCLINATION="-602;56;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#f9debf" COLOR="#690f14" CREATED="1734536128602" ID="ID_1474324892" MODIFIED="1734537104353" TEXT="bekanntes Problem mit Buffer-Type-Handler manifestiert sich">
<arrowlink COLOR="#eb0448" DESTINATION="ID_1196748413" ENDARROW="Default" ENDINCLINATION="-588;25;" ID="Arrow_ID_1543545580" STARTARROW="None" STARTINCLINATION="820;39;"/>
<icon BUILTIN="broken-line"/>
</node>
</node>
</node>
@ -93732,21 +93725,53 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1731889931661" ID="ID_1395902368" MODIFIED="1731889940288" TEXT="es geht um zwei Belange">
<node CREATED="1731889941660" ID="ID_650277364" MODIFIED="1731889948910" TEXT="der Buffer mu&#xdf; gro&#xdf; genug sein"/>
<node CREATED="1731889949959" ID="ID_1771707287" MODIFIED="1731889961215" TEXT="es mu&#xdf; u.U ein passender Inlay-Typ erzeugt werden">
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1731889967768" ID="ID_373306612" MODIFIED="1731890085619" TEXT="hier w&#xfc;rde dieses Problem u.U relevant">
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1731889967768" ID="ID_373306612" MODIFIED="1734536674483" TEXT="hier wird dieses Problem relevant">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
irgendwie binden wir hier einen Handler ein, der &#187;hinten rum&#171; am Lib-Plugin h&#228;ngt und daf&#252;r einen (privaten) Datentyp konstruiert &#10233; <b>diese</b>&#160; Info mu&#223; in den Prototyp eingehen
irgendwie binden wir hier einen Handler ein, der &#187;hinten rum&#171; am Lib-Plugin h&#228;ngt und daf&#252;r einen (privaten) Datentyp konstruiert &#10233; <b>diese</b> Information mu&#223; in den Prototyp eingehen
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#fe94b0" DESTINATION="ID_332390608" ENDARROW="Default" ENDINCLINATION="148;0;" ID="Arrow_ID_1663547738" STARTARROW="None" STARTINCLINATION="140;9;"/>
<linktarget COLOR="#df0449" DESTINATION="ID_373306612" ENDARROW="Default" ENDINCLINATION="-44;-51;" ID="Arrow_ID_937144137" SOURCE="ID_1126512651" STARTARROW="None" STARTINCLINATION="151;7;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734536275792" ID="ID_1196748413" MODIFIED="1734537092860" TEXT="Problem zeigt sich im Test &#x27f9; zuert verwendeter Konstruktor sticht">
<linktarget COLOR="#eb0448" DESTINATION="ID_1196748413" ENDARROW="Default" ENDINCLINATION="-588;25;" ID="Arrow_ID_267737237" SOURCE="ID_1455684253" STARTARROW="None" STARTINCLINATION="1358;88;"/>
<linktarget COLOR="#eb0448" DESTINATION="ID_1196748413" ENDARROW="Default" ENDINCLINATION="-588;25;" ID="Arrow_ID_1543545580" SOURCE="ID_1474324892" STARTARROW="None" STARTINCLINATION="820;39;"/>
<icon BUILTIN="clanbomber"/>
<node CREATED="1734536321786" ID="ID_642962083" MODIFIED="1734536340339" TEXT="1.Testfall: gibt Konstruktor-Argument(e) mit an">
<node CREATED="1734536352558" ID="ID_853150718" MODIFIED="1734536536103" TEXT="provider.lockBufferFor&lt;long&gt; (-55)">
<linktarget COLOR="#ed0b53" DESTINATION="ID_853150718" ENDARROW="Default" ENDINCLINATION="62;-1;" ID="Arrow_ID_797666031" SOURCE="ID_1847448404" STARTARROW="None" STARTINCLINATION="-4;-46;"/>
</node>
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1734536374779" ID="ID_228357466" MODIFIED="1734536455524" TEXT="alles wie erwartet: im Buffer liegt ein long(-55)">
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1734536395176" ID="ID_661059317" MODIFIED="1734536509988" TEXT="2.Testfall: gibt andere ctor-Argumente an">
<node CREATED="1734536419169" ID="ID_1842966329" MODIFIED="1734536493718" TEXT="provider.lockBufferFor&lt;Buffer&gt; (-99)">
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734536470141" ID="ID_1847448404" MODIFIED="1734536540857" TEXT="&#x27f9; hat also den gleichen Typ-Deskriptor bekommen">
<arrowlink COLOR="#ed0b53" DESTINATION="ID_853150718" ENDARROW="Default" ENDINCLINATION="62;-1;" ID="Arrow_ID_797666031" STARTARROW="None" STARTINCLINATION="-4;-46;"/>
</node>
</node>
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1734536427233" ID="ID_332390608" MODIFIED="1734536566019" TEXT="&#xdc;berraschung: im Buffer liegt ein long(-55)">
<linktarget COLOR="#fe94b0" DESTINATION="ID_332390608" ENDARROW="Default" ENDINCLINATION="148;0;" ID="Arrow_ID_1663547738" SOURCE="ID_373306612" STARTARROW="None" STARTINCLINATION="140;9;"/>
<icon BUILTIN="broken-line"/>
</node>
<node BACKGROUND_COLOR="#f3d6ab" COLOR="#690f14" CREATED="1734536766214" ID="ID_478606704" MODIFIED="1734536807299" TEXT="wenn man hier kein Argument angibt &#x27f9; anderer Typ-Deskriptor">
<icon BUILTIN="idea"/>
<node COLOR="#435e98" CREATED="1734536828296" ID="ID_1776909596" MODIFIED="1734536850723" TEXT="(dann liegt im buffer ein long(0)">
<font NAME="SansSerif" SIZE="11"/>
<icon BUILTIN="info"/>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1731889562472" ID="ID_1782397614" MODIFIED="1731889575163" TEXT="welche Typ-Information wird ben&#xf6;tigt?">
<icon BUILTIN="help"/>