BufferProvider: simplify tracking information -- first successful test
The drafted setup for capturing tracking information was indeed way to elaborate. Notably I wanted to capture the actual `BuffHandle` -- and that caused a host of visibility and access problems, since that handle was meant to be used as a front-end to the BufferTracker, and only that. Now we just capture the hash-IDs and the storage size, and we do not even keep relations or record a state-ENUM; we just smash a copy of that data into a registry vector for each state separately, which allows to do a lookup, count the number of handled allocations and access the memory.
This commit is contained in:
parent
945636c446
commit
2ca763bce3
3 changed files with 164 additions and 66 deletions
|
|
@ -51,25 +51,18 @@ namespace engine {
|
||||||
|
|
||||||
/* ====== Accounting API ====== */
|
/* ====== Accounting API ====== */
|
||||||
|
|
||||||
Block::Block (BuffDescr typeDescriptor, Key stateKey, Buff* mem)
|
Block::Block (Key key, Buff* mem)
|
||||||
: handle{typeDescriptor, mem}
|
: typeKey{mem? key.parentKey(): HashVal(key)}
|
||||||
|
, stateKey{mem? key : Key::INVALID}
|
||||||
|
, buffSize{key.storageSize()}
|
||||||
, storage{mem}
|
, storage{mem}
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
Block::Block (BuffDescr const& descr)
|
|
||||||
: handle{descr}
|
|
||||||
{ }
|
|
||||||
|
|
||||||
void
|
|
||||||
StateReg::record (PBlock blockRef)
|
|
||||||
{
|
|
||||||
reg_.emplace_back (move (blockRef));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
StateReg::record (Block block)
|
StateReg::record (Block block)
|
||||||
{
|
{
|
||||||
record (std::make_shared<Block> (block));
|
reg_.emplace_back (move (block));
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
|
|
@ -82,7 +75,7 @@ namespace engine {
|
||||||
StateReg::operator[] (size_t seqNr) const
|
StateReg::operator[] (size_t seqNr) const
|
||||||
{
|
{
|
||||||
if (seqNr < cnt())
|
if (seqNr < cnt())
|
||||||
return * reg_[seqNr];
|
return reg_[seqNr];
|
||||||
else
|
else
|
||||||
return error::Invalid(_Fmt{"no Buffer with seq-nr %d (%d known entries)"}
|
return error::Invalid(_Fmt{"no Buffer with seq-nr %d (%d known entries)"}
|
||||||
% seqNr % cnt()
|
% seqNr % cnt()
|
||||||
|
|
@ -92,10 +85,10 @@ namespace engine {
|
||||||
StateReg::Result
|
StateReg::Result
|
||||||
StateReg::byHandle (HashVal handle) const
|
StateReg::byHandle (HashVal handle) const
|
||||||
{
|
{
|
||||||
if (auto pos = find_if (reg_, [&](auto& entry){ return handle == HashVal(*entry); })
|
if (auto pos = find_if (reg_, [&](auto& entry){ return handle == HashVal(entry); })
|
||||||
;pos != reg_.end()
|
;pos != reg_.end()
|
||||||
)
|
)
|
||||||
return **pos;
|
return *pos;
|
||||||
else
|
else
|
||||||
return error::Invalid("requested Buffer never encountered"
|
return error::Invalid("requested Buffer never encountered"
|
||||||
, LERR_(BOTTOM_VALUE));
|
, LERR_(BOTTOM_VALUE));
|
||||||
|
|
@ -120,10 +113,22 @@ namespace engine {
|
||||||
StateReg released;
|
StateReg released;
|
||||||
|
|
||||||
void
|
void
|
||||||
record_locked (BuffDescr typeDescriptor, Key stateKey, Buff* mem)
|
record_locked (Key stateKey, Buff* mem)
|
||||||
{
|
{
|
||||||
REQUIRE (not created.contains (typeDescriptor));
|
REQUIRE (not created.contains (stateKey));
|
||||||
created.record (Block{typeDescriptor, stateKey, mem});
|
created.record (Block{stateKey, mem});
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
record_emitted (HashVal id)
|
||||||
|
{
|
||||||
|
emitted.record (created.byHandle (id));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
record_released (HashVal id)
|
||||||
|
{
|
||||||
|
released.record (created.byHandle (id));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -163,20 +168,24 @@ namespace engine {
|
||||||
mark_locked (ID typeKey, Buff* storage, LocalTag implMark) override
|
mark_locked (ID typeKey, Buff* storage, LocalTag implMark) override
|
||||||
{
|
{
|
||||||
ID stateKey = stage_->mark_locked (typeKey, storage, implMark);
|
ID stateKey = stage_->mark_locked (typeKey, storage, implMark);
|
||||||
tracker_.record_locked (provider_.buildDescriptor(stateKey), stateKey, storage);
|
tracker_.record_locked (stateKey, storage);
|
||||||
return stateKey;
|
return stateKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
ID
|
ID
|
||||||
mark_emitted (HashVal stateKey) override
|
mark_emitted (HashVal id) override
|
||||||
{
|
{
|
||||||
return stage_->mark_emitted (stateKey);
|
ID stateKey = stage_->mark_emitted (id);
|
||||||
|
tracker_.record_emitted (stateKey);
|
||||||
|
return stateKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
ID
|
ID
|
||||||
mark_released (HashVal stateKey) override
|
mark_released (HashVal id) override
|
||||||
{
|
{
|
||||||
return stage_->mark_released (stateKey);
|
ID stateKey = stage_->mark_released (id);
|
||||||
|
tracker_.record_released (stateKey);
|
||||||
|
return stateKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
ID
|
ID
|
||||||
|
|
|
||||||
|
|
@ -47,21 +47,21 @@ namespace engine {
|
||||||
/** represent the status of one allocation */
|
/** represent the status of one allocation */
|
||||||
struct Block
|
struct Block
|
||||||
{
|
{
|
||||||
BuffHandle handle;
|
HashVal typeKey{0};
|
||||||
|
HashVal stateKey{0};
|
||||||
|
size_t buffSize{0};
|
||||||
Buff* storage{nullptr};
|
Buff* storage{nullptr};
|
||||||
Buff* accessMemory() const { return storage; }
|
Buff* accessMemory() const { return storage; }
|
||||||
|
|
||||||
Block (BuffDescr, metadata::Key, Buff* mem);
|
Block (metadata::Key, Buff* mem);
|
||||||
Block (BuffDescr const&);
|
operator HashVal() const { return storage? stateKey:typeKey; }
|
||||||
operator HashVal() const { return handle; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class StateReg
|
class StateReg
|
||||||
: util::NonCopyable
|
: util::NonCopyable
|
||||||
{
|
{
|
||||||
using PBlock = std::shared_ptr<Block>;
|
using Registry = std::vector<Block>;
|
||||||
using Registry = std::vector<PBlock>;
|
|
||||||
Registry reg_;
|
Registry reg_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
@ -74,17 +74,24 @@ namespace engine {
|
||||||
|
|
||||||
/* ========= Accounting API ========= */
|
/* ========= Accounting API ========= */
|
||||||
void record (Block);
|
void record (Block);
|
||||||
void record (PBlock);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}//(End)diagnostic descriptors.
|
}//(End)diagnostic descriptors.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************//**
|
/********************************************************************//**
|
||||||
* Helper for unit tests: Buffer provider reference implementation.
|
* Helper for unit tests: Buffer provider that tracks state transitions.
|
||||||
|
* This is a variant of the _naive_ heap based BufferProvider implementation,
|
||||||
|
* with additional tracking hooks to record the IDs and further information
|
||||||
|
* of all allocations encountered at a state transition.
|
||||||
*
|
*
|
||||||
* @todo write type comment
|
* Test code should keep track of the BufferProvider instance used, and may
|
||||||
|
* attach through a special [diagnostics access](\ref watch(BufferProvider&)),
|
||||||
|
* to extract the recorded information while or after the allocated buffers
|
||||||
|
* are used. Since the underlying "naive" implementation does not actually
|
||||||
|
* discard any allocated memory block, it is possible to look into memory
|
||||||
|
* contents after invoking the test subject.
|
||||||
*/
|
*/
|
||||||
class DiagnosticBufferProvider
|
class DiagnosticBufferProvider
|
||||||
: public NaiveBufferSetup
|
: public NaiveBufferSetup
|
||||||
|
|
|
||||||
|
|
@ -111956,6 +111956,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node BACKGROUND_COLOR="#eae2af" COLOR="#690f14" CREATED="1770947507396" ID="ID_1663548893" MODIFIED="1770947541484" TEXT="läuft nun bis auf fehlendes Tracking...">
|
<node BACKGROUND_COLOR="#eae2af" COLOR="#690f14" CREATED="1770947507396" ID="ID_1663548893" MODIFIED="1770947541484" TEXT="läuft nun bis auf fehlendes Tracking...">
|
||||||
<font NAME="SansSerif" SIZE="11"/>
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
</node>
|
</node>
|
||||||
|
<node COLOR="#338800" CREATED="1771288608604" ID="ID_50124984" LINK="#ID_1760377258" MODIFIED="1771288636428" TEXT="rudimentäres Tracking läuft">
|
||||||
|
<font NAME="SansSerif" SIZE="10"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#2c619a" CREATED="1770835671749" ID="ID_661880079" MODIFIED="1770939247723" TEXT="der buildHandle()-Aufruf muß entflochten werden">
|
<node COLOR="#2c619a" CREATED="1770835671749" ID="ID_661880079" MODIFIED="1770939247723" TEXT="der buildHandle()-Aufruf muß entflochten werden">
|
||||||
<arrowlink COLOR="#3a91fe" DESTINATION="ID_1511113078" ENDARROW="Default" ENDINCLINATION="243;15;" ID="Arrow_ID_1668459979" STARTARROW="None" STARTINCLINATION="820;0;"/>
|
<arrowlink COLOR="#3a91fe" DESTINATION="ID_1511113078" ENDARROW="Default" ENDINCLINATION="243;15;" ID="Arrow_ID_1668459979" STARTARROW="None" STARTINCLINATION="820;0;"/>
|
||||||
|
|
@ -112044,8 +112047,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1770765035161" ID="ID_763895589" MODIFIED="1770765044567" TEXT="wie generisch wird das sein?">
|
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1770765035161" ID="ID_763895589" MODIFIED="1771288587739" TEXT="wie generisch wird das sein?">
|
||||||
<icon BUILTIN="help"/>
|
<icon BUILTIN="help"/>
|
||||||
|
<icon BUILTIN="hourglass"/>
|
||||||
<node CREATED="1770765047151" ID="ID_1369329762" MODIFIED="1771274464468">
|
<node CREATED="1770765047151" ID="ID_1369329762" MODIFIED="1771274464468">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
|
|
@ -112107,23 +112111,23 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1770765595718" ID="ID_962837679" MODIFIED="1770766950666" TEXT="zunächst wird aber nur die einfachste Lösung implementiert (KISS)">
|
<node CREATED="1770765595718" ID="ID_962837679" MODIFIED="1770766950666" TEXT="zunächst wird aber nur die einfachste Lösung implementiert (KISS)">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1770765611528" ID="ID_930758460" MODIFIED="1770766965294" TEXT="und das wäre, direkt von NaiveBufferSetup zu erben">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770765611528" ID="ID_930758460" MODIFIED="1771288582723" TEXT="und das wäre, direkt von NaiveBufferSetup zu erben">
|
||||||
<icon BUILTIN="forward"/>
|
<icon BUILTIN="forward"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1770765634549" ID="ID_802045878" MODIFIED="1770827019510" TEXT="Konsequenz ⟹ BufferProviderSetup muß die Dekorations-Mechanik generisch anbieten">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770765634549" ID="ID_802045878" MODIFIED="1771288547100" TEXT="Konsequenz ⟹ BufferProviderSetup muß die Dekorations-Mechanik generisch anbieten">
|
||||||
<arrowlink COLOR="#703882" DESTINATION="ID_733817882" ENDARROW="Default" ENDINCLINATION="22;-92;" ID="Arrow_ID_1318279542" STARTARROW="None" STARTINCLINATION="-149;5;"/>
|
<arrowlink COLOR="#703882" DESTINATION="ID_733817882" ENDARROW="Default" ENDINCLINATION="22;-92;" ID="Arrow_ID_1318279542" STARTARROW="None" STARTINCLINATION="-149;5;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1770765700160" ID="ID_1579675471" LINK="https://en.cppreference.com/w/cpp/language/access.html#Protected_member_access" MODIFIED="1770766571232" TEXT="Thema: Sichtbarkeit von protected elements">
|
<node COLOR="#1807a6" CREATED="1770765700160" ID="ID_1579675471" LINK="https://en.cppreference.com/w/cpp/language/access.html#Protected_member_access" MODIFIED="1771288575047" TEXT="Thema: Sichtbarkeit von protected elements">
|
||||||
<arrowlink COLOR="#4f5d8f" DESTINATION="ID_1070045765" ENDARROW="Default" ENDINCLINATION="-1154;119;" ID="Arrow_ID_484648111" STARTARROW="None" STARTINCLINATION="-1340;84;"/>
|
<arrowlink COLOR="#4f5d8f" DESTINATION="ID_1070045765" ENDARROW="Default" ENDINCLINATION="-1154;119;" ID="Arrow_ID_484648111" STARTARROW="None" STARTINCLINATION="-1340;84;"/>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1770766854965" ID="ID_164565147" MODIFIED="1771276504239" TEXT="man muß einen unique_ptr eines Dekorators erzeugen können">
|
<node COLOR="#338800" CREATED="1770766854965" ID="ID_164565147" MODIFIED="1771276504239" TEXT="man muß einen unique_ptr eines Dekorators erzeugen können">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770766872225" ID="ID_1590901542" MODIFIED="1771276650864" TEXT="dieser Dekorator muß den ursprünglichen unique_ptr „huckepack“ nehmen">
|
<node COLOR="#338800" CREATED="1770766872225" ID="ID_1590901542" MODIFIED="1771288555022" TEXT="dieser Dekorator muß den ursprünglichen unique_ptr „huckepack“ nehmen">
|
||||||
<arrowlink COLOR="#1334c3" DESTINATION="ID_1462598861" ENDARROW="Default" ENDINCLINATION="-63;-1181;" ID="Arrow_ID_169512531" STARTARROW="None" STARTINCLINATION="-588;23;"/>
|
<arrowlink COLOR="#1334c3" DESTINATION="ID_1462598861" ENDARROW="Default" ENDINCLINATION="-63;-1181;" ID="Arrow_ID_169512531" STARTARROW="None" STARTINCLINATION="-588;23;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770766910933" ID="ID_1255549720" MODIFIED="1771276508584" TEXT="damit kann sich eine abgeleitete Klasse in bestehende Chains »einschleifen«">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770766910933" ID="ID_1255549720" MODIFIED="1771288560290" TEXT="damit kann sich eine abgeleitete Klasse in bestehende Chains »einschleifen«">
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -112149,6 +112153,10 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1770771513515" ID="ID_1719397050" MODIFIED="1770771523955" TEXT="provider.accessAs<Type>(nr)"/>
|
<node CREATED="1770771513515" ID="ID_1719397050" MODIFIED="1770771523955" TEXT="provider.accessAs<Type>(nr)"/>
|
||||||
<node CREATED="1770771552023" ID="ID_1783764547" MODIFIED="1770771558695" TEXT="provider.emittedCnt()"/>
|
<node CREATED="1770771552023" ID="ID_1783764547" MODIFIED="1770771558695" TEXT="provider.emittedCnt()"/>
|
||||||
</node>
|
</node>
|
||||||
|
<node COLOR="#338800" CREATED="1771288479408" ID="ID_1760377258" MODIFIED="1771288651595" TEXT="Konzept geht auf ⟹ erster Testfall umgestellt">
|
||||||
|
<linktarget COLOR="#00ce05" DESTINATION="ID_1760377258" ENDARROW="Default" ENDINCLINATION="422;359;" ID="Arrow_ID_1963224116" SOURCE="ID_92329444" STARTARROW="None" STARTINCLINATION="1800;235;"/>
|
||||||
|
<icon BUILTIN="button_ok"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -112193,8 +112201,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<icon BUILTIN="button_cancel"/>
|
<icon BUILTIN="button_cancel"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770859982196" ID="ID_1152522813" MODIFIED="1770921648034" TEXT="muß inhaltlichen Konflikt beachten bzgl. Value/Referenz-Semantik">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770859982196" ID="ID_1152522813" MODIFIED="1771286380392" TEXT="muß inhaltlichen Konflikt beachten bzgl. Value/Referenz-Semantik">
|
||||||
<arrowlink COLOR="#8c3a3e" DESTINATION="ID_1760077956" ENDARROW="Default" ENDINCLINATION="49;-76;" ID="Arrow_ID_366613644" STARTARROW="None" STARTINCLINATION="-340;-17;"/>
|
<arrowlink COLOR="#8c3a3e" DESTINATION="ID_1760077956" ENDARROW="Default" ENDINCLINATION="49;-76;" ID="Arrow_ID_366613644" STARTARROW="None" STARTINCLINATION="-340;-17;"/>
|
||||||
|
<linktarget COLOR="#d51c44" DESTINATION="ID_1152522813" ENDARROW="Default" ENDINCLINATION="528;416;" ID="Arrow_ID_1402167917" SOURCE="ID_1752065151" STARTARROW="None" STARTINCLINATION="1319;62;"/>
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
<node CREATED="1770921692922" ID="ID_1434529048" MODIFIED="1770921803421" TEXT="der Block verfolgt und reflektiert einen mutable State">
|
<node CREATED="1770921692922" ID="ID_1434529048" MODIFIED="1770921803421" TEXT="der Block verfolgt und reflektiert einen mutable State">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
|
@ -112287,22 +112296,33 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770859611807" ID="ID_456313294" MODIFIED="1770859630657" TEXT="stellt eine Einzel-Resource dar (incl.Lebenszyklus)"/>
|
<node CREATED="1770859611807" ID="ID_456313294" MODIFIED="1770859630657" TEXT="stellt eine Einzel-Resource dar (incl.Lebenszyklus)"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770860961496" ID="ID_1760077956" MODIFIED="1770921635616" TEXT="technisch: Referenz-Semantik">
|
<node COLOR="#5b280f" CREATED="1770860961496" ID="ID_1760077956" MODIFIED="1771286549524" TEXT="technisch: Referenz-Semantik">
|
||||||
<linktarget COLOR="#8c3a3e" DESTINATION="ID_1760077956" ENDARROW="Default" ENDINCLINATION="49;-76;" ID="Arrow_ID_366613644" SOURCE="ID_1152522813" STARTARROW="None" STARTINCLINATION="-340;-17;"/>
|
<linktarget COLOR="#8c3a3e" DESTINATION="ID_1760077956" ENDARROW="Default" ENDINCLINATION="49;-76;" ID="Arrow_ID_366613644" SOURCE="ID_1152522813" STARTARROW="None" STARTINCLINATION="-340;-17;"/>
|
||||||
|
<icon BUILTIN="button_cancel"/>
|
||||||
<node CREATED="1770861069029" ID="ID_1893898325" MODIFIED="1770921599567" TEXT="per shared-ptr in diverse Registries eintragen">
|
<node CREATED="1770861069029" ID="ID_1893898325" MODIFIED="1770921599567" TEXT="per shared-ptr in diverse Registries eintragen">
|
||||||
<arrowlink COLOR="#24699b" DESTINATION="ID_629461762" ENDARROW="Default" ENDINCLINATION="249;-22;" ID="Arrow_ID_933021141" STARTARROW="None" STARTINCLINATION="324;20;"/>
|
<arrowlink COLOR="#24699b" DESTINATION="ID_629461762" ENDARROW="Default" ENDINCLINATION="249;-22;" ID="Arrow_ID_933021141" STARTARROW="None" STARTINCLINATION="324;20;"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770861098209" ID="ID_456581264" MODIFIED="1770861177491" TEXT="diese müssen nun allesamt an den DiagnosticBufferProvider gebunden sein">
|
<node CREATED="1770861098209" ID="ID_456581264" MODIFIED="1771286539394" TEXT="diese müssen nun allesamt an den DiagnosticBufferProvider gebunden sein">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
sonst werden Konsistenz-Fragen schnell zum Albtraum
|
....sonst werden Konsistenz-Fragen schnell zum Albtraum;
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Und in der Tat: das war der Fehler an diesem ganzen Design...
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_456581264" ENDARROW="Default" ENDINCLINATION="265;10;" ID="Arrow_ID_290939532" SOURCE="ID_705247847" STARTARROW="None" STARTINCLINATION="257;0;"/>
|
<linktarget COLOR="#a9b4c1" DESTINATION="ID_456581264" ENDARROW="Default" ENDINCLINATION="265;10;" ID="Arrow_ID_290939532" SOURCE="ID_705247847" STARTARROW="None" STARTINCLINATION="257;0;"/>
|
||||||
</node>
|
</node>
|
||||||
|
<node COLOR="#5b280f" CREATED="1771286481605" ID="ID_1476728642" MODIFIED="1771286584676" TEXT="das mit den Referenzen ist ein Schnapps-Idee">
|
||||||
|
<linktarget COLOR="#970f4a" DESTINATION="ID_1476728642" ENDARROW="Default" ENDINCLINATION="409;25;" ID="Arrow_ID_679648394" SOURCE="ID_800184351" STARTARROW="None" STARTINCLINATION="241;-287;"/>
|
||||||
|
<icon BUILTIN="stop-sign"/>
|
||||||
|
<node COLOR="#970f60" CREATED="1771286552973" ID="ID_1398289104" MODIFIED="1771286569551" TEXT="das ist richtig over-engieered">
|
||||||
|
<icon BUILTIN="smiley-angry"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770836136083" ID="ID_673584101" MODIFIED="1770857822211" TEXT="man möchte State-Transitions nachvollziehen">
|
<node CREATED="1770836136083" ID="ID_673584101" MODIFIED="1770857822211" TEXT="man möchte State-Transitions nachvollziehen">
|
||||||
|
|
@ -112684,8 +112704,8 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1770917107132" ID="ID_1518034296" MODIFIED="1770923603446" TEXT="Tracking">
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1770917107132" ID="ID_1518034296" MODIFIED="1770923603446" TEXT="Tracking">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1770949936866" ID="ID_1114022707" MODIFIED="1770949946920" TEXT="geeignete Tracking-Punkte identifizieren">
|
<node COLOR="#338800" CREATED="1770949936866" ID="ID_1114022707" MODIFIED="1771288363588" TEXT="geeignete Tracking-Punkte identifizieren">
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1770949948582" ID="ID_808227487" MODIFIED="1770949983379" TEXT="idealerweise sitzen die auf dem BufferStore-API">
|
<node CREATED="1770949948582" ID="ID_808227487" MODIFIED="1770949983379" TEXT="idealerweise sitzen die auf dem BufferStore-API">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
|
|
@ -112697,20 +112717,20 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770949985342" ID="ID_1826916276" MODIFIED="1770950002859" TEXT="und zudem sollte man an alle Daten für das BuffHandle gelangen können"/>
|
<node CREATED="1770949985342" ID="ID_1826916276" MODIFIED="1770950002859" TEXT="und zudem sollte man an alle Daten für das BuffHandle gelangen können"/>
|
||||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1770950008410" ID="ID_1843260494" MODIFIED="1770950105874" TEXT="konkret ist das noch nicht der Fall">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770950008410" ID="ID_1843260494" MODIFIED="1771288332154" TEXT="konkret ist das noch nicht der Fall">
|
||||||
<icon BUILTIN="broken-line"/>
|
<icon BUILTIN="broken-line"/>
|
||||||
<node CREATED="1770950020300" ID="ID_1046414776" MODIFIED="1770950042077" TEXT="es gibt nur State-Transitions auf dem Store-API"/>
|
<node CREATED="1770950020300" ID="ID_1046414776" MODIFIED="1770950042077" TEXT="es gibt nur State-Transitions auf dem Store-API"/>
|
||||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1770950043240" ID="ID_1352986332" MODIFIED="1770950068389" TEXT="vorher wird direkt per Seiteneffekt auf den Type-Registry-Entry zugegriffen">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770950043240" ID="ID_1352986332" MODIFIED="1771288329651" TEXT="vorher wird direkt per Seiteneffekt auf den Type-Registry-Entry zugegriffen">
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1770950078043" ID="ID_1126044596" MODIFIED="1770950096275" TEXT="und bisweilen hat man das Handle nur auf dem front-End-Interface">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770950078043" ID="ID_1126044596" MODIFIED="1771288329651" TEXT="und bisweilen hat man das Handle nur auf dem front-End-Interface">
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1770950250610" ID="ID_1856993589" MODIFIED="1770950370620" TEXT="API-Umbauten anlegen">
|
<node COLOR="#338800" CREATED="1770950250610" ID="ID_1856993589" MODIFIED="1771288358355" TEXT="API-Umbauten anlegen">
|
||||||
<arrowlink COLOR="#da0a3e" DESTINATION="ID_853313306" ENDARROW="Default" ENDINCLINATION="-78;-118;" ID="Arrow_ID_1809426775" STARTARROW="None" STARTINCLINATION="-315;35;"/>
|
<arrowlink COLOR="#0a5cda" DESTINATION="ID_853313306" ENDARROW="Default" ENDINCLINATION="-78;-118;" ID="Arrow_ID_1809426775" STARTARROW="None" STARTINCLINATION="-315;35;"/>
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1770950897150" ID="ID_1423801932" MODIFIED="1770950902060" TEXT="BufferProvider::lockBuffer (BuffDescr)">
|
<node COLOR="#435e98" CREATED="1770950897150" ID="ID_1423801932" MODIFIED="1771288371663" TEXT="BufferProvider::lockBuffer (BuffDescr)">
|
||||||
<node CREATED="1770950938273" ID="ID_252841945" MODIFIED="1770950942530" TEXT="holt sich den Typ-Entry"/>
|
<node CREATED="1770950938273" ID="ID_252841945" MODIFIED="1770950942530" TEXT="holt sich den Typ-Entry"/>
|
||||||
<node CREATED="1770950943851" ID="ID_543062847" MODIFIED="1770950985286" TEXT="entnimmt Size und loalKey ⟶ store.provideBuffer()"/>
|
<node CREATED="1770950943851" ID="ID_543062847" MODIFIED="1770950985286" TEXT="entnimmt Size und loalKey ⟶ store.provideBuffer()"/>
|
||||||
<node CREATED="1770950988149" ID="ID_583610733" MODIFIED="1770950994093" TEXT="ruft dann buildHandle auf">
|
<node CREATED="1770950988149" ID="ID_583610733" MODIFIED="1770950994093" TEXT="ruft dann buildHandle auf">
|
||||||
|
|
@ -112736,13 +112756,13 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1771036053719" ID="ID_1581736705" MODIFIED="1771036090040" TEXT="Entry-hashKey + storage ⟹ BuffHandle"/>
|
<node CREATED="1771036053719" ID="ID_1581736705" MODIFIED="1771036090040" TEXT="Entry-hashKey + storage ⟹ BuffHandle"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770950391834" ID="ID_342050575" MODIFIED="1770950395940" TEXT="BufferProvider::emitBuffer (BuffHandle)">
|
<node COLOR="#435e98" CREATED="1770950391834" ID="ID_342050575" MODIFIED="1771288371662" TEXT="BufferProvider::emitBuffer (BuffHandle)">
|
||||||
<node CREATED="1770950417399" ID="ID_572237980" MODIFIED="1770951342867" TEXT="holt sich den Detail-Entry (zum BuffHandle)"/>
|
<node CREATED="1770950417399" ID="ID_572237980" MODIFIED="1770951342867" TEXT="holt sich den Detail-Entry (zum BuffHandle)"/>
|
||||||
<node CREATED="1770950504106" ID="ID_155003695" MODIFIED="1770950542657" TEXT="store->mark_emitted (size, typ, localKey)">
|
<node CREATED="1770950504106" ID="ID_155003695" MODIFIED="1770950542657" TEXT="store->mark_emitted (size, typ, localKey)">
|
||||||
<node CREATED="1770950544262" ID="ID_1083216675" MODIFIED="1771010265261" TEXT="Achtung: hier Typ ≙ parentKey">
|
<node CREATED="1770950544262" ID="ID_1083216675" MODIFIED="1771010265261" TEXT="Achtung: hier Typ ≙ parentKey">
|
||||||
<arrowlink COLOR="#b10e16" DESTINATION="ID_1576060790" ENDARROW="Default" ENDINCLINATION="33;-68;" ID="Arrow_ID_1649427563" STARTARROW="Default" STARTINCLINATION="70;4;"/>
|
<arrowlink COLOR="#b10e16" DESTINATION="ID_1576060790" ENDARROW="Default" ENDINCLINATION="33;-68;" ID="Arrow_ID_1649427563" STARTARROW="Default" STARTINCLINATION="70;4;"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1770950580157" ID="ID_705928599" MODIFIED="1770950873207" TEXT="Vorsicht: dieser Aufruf wird mutmaßlich doch dauerhaft gebraucht">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770950580157" ID="ID_705928599" MODIFIED="1771288344623" TEXT="Vorsicht: dieser Aufruf wird mutmaßlich doch dauerhaft gebraucht">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -112759,7 +112779,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770951123696" ID="ID_130775850" MODIFIED="1770951126843" TEXT="BufferProvider::releaseBuffer (BuffHandle)">
|
<node COLOR="#435e98" CREATED="1770951123696" ID="ID_130775850" MODIFIED="1771288371627" TEXT="BufferProvider::releaseBuffer (BuffHandle)">
|
||||||
<node CREATED="1770950417399" ID="ID_123312886" MODIFIED="1770951335447" TEXT="holt sich den Detail-Entry (zum BuffHandle)"/>
|
<node CREATED="1770950417399" ID="ID_123312886" MODIFIED="1770951335447" TEXT="holt sich den Detail-Entry (zum BuffHandle)"/>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770951191103" ID="ID_381220092" MODIFIED="1770951201974" TEXT="macht direkt metaEntry.mark(FREE)">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770951191103" ID="ID_381220092" MODIFIED="1770951201974" TEXT="macht direkt metaEntry.mark(FREE)">
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
|
|
@ -112770,7 +112790,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1771019736596" ID="ID_237612170" MODIFIED="1771019753098" TEXT="BufferProvider::emergencyCleanup (BuffHandle, invokeDtor)">
|
<node COLOR="#286376" CREATED="1771019736596" ID="ID_237612170" MODIFIED="1771288392008" TEXT="BufferProvider::emergencyCleanup (BuffHandle, invokeDtor)">
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1771019755474" ID="ID_1838086923" MODIFIED="1771019773564" TEXT="wird derzeit nicht (mehr) verwendet">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1771019755474" ID="ID_1838086923" MODIFIED="1771019773564" TEXT="wird derzeit nicht (mehr) verwendet">
|
||||||
<icon BUILTIN="help"/>
|
<icon BUILTIN="help"/>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -112837,15 +112857,26 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1771032666980" ID="ID_782188811" MODIFIED="1771032679305" TEXT="hinzu kommen Informations-Funktionen"/>
|
<node COLOR="#286376" CREATED="1771032666980" ID="ID_782188811" MODIFIED="1771288392008" TEXT="hinzu kommen Informations-Funktionen"/>
|
||||||
<node CREATED="1771032680433" ID="ID_49382511" MODIFIED="1771032697968" TEXT="und die Typ-Registrierung via Buffer-Descriptor"/>
|
<node COLOR="#286376" CREATED="1771032680433" ID="ID_49382511" MODIFIED="1771288392007" TEXT="und die Typ-Registrierung via Buffer-Descriptor"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1770950134226" ID="ID_210815021" MODIFIED="1771202650391" TEXT="muß die korrekte Tracker-Registry ansprechen">
|
<node COLOR="#5b280f" CREATED="1770950134226" ID="ID_210815021" MODIFIED="1771288314535" TEXT="muß die korrekte Tracker-Registry ansprechen">
|
||||||
<icon BUILTIN="flag-pink"/>
|
<icon BUILTIN="yes"/>
|
||||||
|
<icon BUILTIN="button_cancel"/>
|
||||||
<node CREATED="1770950151506" ID="ID_1595932224" MODIFIED="1770950161653" TEXT="eigentlich immer zuerst die created-Registry"/>
|
<node CREATED="1770950151506" ID="ID_1595932224" MODIFIED="1770950161653" TEXT="eigentlich immer zuerst die created-Registry"/>
|
||||||
<node CREATED="1770950167400" ID="ID_1883755499" MODIFIED="1770950182484" TEXT="die Tracking-Funktion muß den Zustandsübergang erkennen"/>
|
<node CREATED="1770950167400" ID="ID_1883755499" MODIFIED="1770950182484" TEXT="die Tracking-Funktion muß den Zustandsübergang erkennen"/>
|
||||||
<node CREATED="1770950209162" ID="ID_1174437807" MODIFIED="1770950232620" TEXT="und dann den Block aktualisieren und in die emitted/released-Registry übernehmen"/>
|
<node CREATED="1770950209162" ID="ID_1174437807" MODIFIED="1770950232620" TEXT="und dann den Block aktualisieren und in die emitted/released-Registry übernehmen"/>
|
||||||
|
<node COLOR="#e91501" CREATED="1771286622521" ID="ID_356102114" MODIFIED="1771286661170" TEXT="Stop! Stop! Stop! total overengineered das alles">
|
||||||
|
<linktarget COLOR="#fe011a" DESTINATION="ID_356102114" ENDARROW="Default" ENDINCLINATION="198;0;" ID="Arrow_ID_257005144" SOURCE="ID_800184351" STARTARROW="None" STARTINCLINATION="28;-130;"/>
|
||||||
|
<icon BUILTIN="closed"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1771286675059" ID="ID_1937028144" MODIFIED="1771288121184" TEXT="einfach bei jedem Recording eine Kopie speichern und keine Updates mehr">
|
||||||
|
<icon BUILTIN="flag-pink"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1771286702020" ID="ID_1635749936" MODIFIED="1771288121184" TEXT="auch weg mit den shared-ptr!">
|
||||||
|
<icon BUILTIN="flag-pink"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1771276599801" ID="ID_1205105935" MODIFIED="1771276627247" TEXT="Einschleifen der Instrumentierung">
|
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1771276599801" ID="ID_1205105935" MODIFIED="1771276627247" TEXT="Einschleifen der Instrumentierung">
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="pencil"/>
|
||||||
|
|
@ -112855,11 +112886,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1771276666297" ID="ID_80656960" MODIFIED="1771276686235" TEXT="mit dem nun angelegten API genügt es, die BufferStage zu dekorieren">
|
<node CREATED="1771276666297" ID="ID_80656960" MODIFIED="1771276686235" TEXT="mit dem nun angelegten API genügt es, die BufferStage zu dekorieren">
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1771282492426" ID="ID_1137207493" MODIFIED="1771284960337" TEXT="muß auch die zugehörige (umschließende) DiagnosticBufferProvider-Instanz zugänglich machen">
|
<node COLOR="#5b280f" CREATED="1771282492426" ID="ID_1137207493" MODIFIED="1771288194048" TEXT="muß auch die zugehörige (umschließende) DiagnosticBufferProvider-Instanz zugänglich machen">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head>
|
<head/>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<p>
|
<p>
|
||||||
...und zwar, weil wir ein BuffHandle speichern wollen, das einen BufferProvider einschließt. Dazu brauchen wir die Rückreferenz auf den Provider. Und das darf eigentlich nur BufferProvider selber...
|
...und zwar, weil wir ein BuffHandle speichern wollen, das einen BufferProvider einschließt. Dazu brauchen wir die Rückreferenz auf den Provider. Und das darf eigentlich nur BufferProvider selber...
|
||||||
|
|
@ -112867,14 +112896,67 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
</richcontent>
|
</richcontent>
|
||||||
|
<arrowlink COLOR="#8f3733" DESTINATION="ID_1818084511" ENDARROW="Default" ENDINCLINATION="113;-5;" ID="Arrow_ID_563529884" STARTARROW="None" STARTINCLINATION="-19;22;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
|
<icon BUILTIN="button_cancel"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1771282534052" ID="ID_1418547018" MODIFIED="1771282553829" TEXT="es gibt eigentlich nur eine Konstruktor-Funktion: beim Locking"/>
|
<node CREATED="1771282534052" ID="ID_1418547018" MODIFIED="1771282553829" TEXT="es gibt eigentlich nur eine Konstruktor-Funktion: beim Locking"/>
|
||||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1771282627528" ID="ID_1818084511" MODIFIED="1771282645961" TEXT="Sichtbarkeits-Problem: nur BufferProvider kann einen BuffDescr erzeugen">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1771282627528" ID="ID_1818084511" MODIFIED="1771288198657" TEXT="Sichtbarkeits-Problem: nur BufferProvider kann einen BuffDescr erzeugen">
|
||||||
|
<linktarget COLOR="#8f3733" DESTINATION="ID_1818084511" ENDARROW="Default" ENDINCLINATION="113;-5;" ID="Arrow_ID_563529884" SOURCE="ID_1137207493" STARTARROW="None" STARTINCLINATION="-19;22;"/>
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
<node CREATED="1771282651196" ID="ID_1065300465" MODIFIED="1771282682996" TEXT="klarer Fall: muß die Funktion per protected-API zugänglich machen"/>
|
<node CREATED="1771282651196" ID="ID_1065300465" MODIFIED="1771282682996" TEXT="klarer Fall: muß die Funktion per protected-API zugänglich machen"/>
|
||||||
<node CREATED="1771282684240" ID="ID_1294774953" MODIFIED="1771282696183" TEXT="kann dann auch überall im BufferProvider selber verwendet werden"/>
|
<node CREATED="1771282684240" ID="ID_1294774953" MODIFIED="1771282696183" TEXT="kann dann auch überall im BufferProvider selber verwendet werden"/>
|
||||||
|
<node COLOR="#5b280f" CREATED="1771288202059" ID="ID_565570030" MODIFIED="1771288237284" TEXT="wird jetzt eigentlich nicht mehr benötigt">
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#435e98" CREATED="1771288213545" ID="ID_495472249" MODIFIED="1771288232078" TEXT="war aber trotzdem eine gute idee — belassen">
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#c9ada9" COLOR="#1c32a6" CREATED="1771286037009" ID="ID_1849383210" MODIFIED="1771288268586" TEXT="hier stimmt was nicht mit dem Design">
|
||||||
|
<icon BUILTIN="broken-line"/>
|
||||||
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1771286046304" ID="ID_90341795" MODIFIED="1771286103392" TEXT="warum ist es so mühsam, die Parameter aufzuzeichnen?">
|
||||||
|
<font NAME="SansSerif" SIZE="12"/>
|
||||||
|
<icon BUILTIN="help"/>
|
||||||
|
<node CREATED="1771286068288" ID="ID_1928975942" MODIFIED="1771286076037" TEXT="liegt es an dem Subklassen-Konstrukt??"/>
|
||||||
|
<node CREATED="1771286076674" ID="ID_1701885318" MODIFIED="1771286100526" TEXT="nein: es liegt daran, daß ich ein BuffHanlde speichere">
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1771286106184" ID="ID_1681488234" MODIFIED="1771286123278" TEXT="BuffHandle (und Descr) sind nur auf die Front-End-Klasse zugeschnitten">
|
||||||
|
<node CREATED="1771286128865" ID="ID_475750888" MODIFIED="1771286151920" TEXT="sie sollten in der Implementierung keine große Rolle spielen"/>
|
||||||
|
<node CREATED="1771286152913" ID="ID_1045425866" MODIFIED="1771286164812" TEXT="und auch die Informations-Funktionen sind (inzwischen) zweitrangig"/>
|
||||||
|
<node COLOR="#5b280f" CREATED="1771286165935" ID="ID_1752065151" MODIFIED="1771286380392" TEXT="für Diagnose/Instrumentierung sind sie sogar irreführend">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
weil wir hierfür einen »snapshot« der Daten aufzeichnen und aktualisieren sollten, und keinen Zugrff über irgendwelche lookup-Funktionen in die Metadaten bieten
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<arrowlink COLOR="#d51c44" DESTINATION="ID_1152522813" ENDARROW="Default" ENDINCLINATION="528;416;" ID="Arrow_ID_1402167917" STARTARROW="None" STARTINCLINATION="1319;62;"/>
|
||||||
|
<icon BUILTIN="stop-sign"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1771286402022" ID="ID_1801029151" MODIFIED="1771288286661" TEXT="auch die Storage ist viel zu raffiniert">
|
||||||
|
<icon BUILTIN="stop-sign"/>
|
||||||
|
<node BACKGROUND_COLOR="#ddad85" COLOR="#690f14" CREATED="1771286426345" ID="ID_800184351" MODIFIED="1771286666866" TEXT="wozu eigentlich diese Referenzen">
|
||||||
|
<arrowlink COLOR="#970f4a" DESTINATION="ID_1476728642" ENDARROW="Default" ENDINCLINATION="409;25;" ID="Arrow_ID_679648394" STARTARROW="None" STARTINCLINATION="241;-287;"/>
|
||||||
|
<arrowlink COLOR="#fe011a" DESTINATION="ID_356102114" ENDARROW="Default" ENDINCLINATION="198;0;" ID="Arrow_ID_257005144" STARTARROW="None" STARTINCLINATION="28;-130;"/>
|
||||||
|
<icon BUILTIN="help"/>
|
||||||
|
<icon BUILTIN="button_cancel"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1771286435967" ID="ID_1999034756" MODIFIED="1771288279718" TEXT="das führt nur dazu, daß ich dann State-Updates machen muß">
|
||||||
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#174956" COLOR="#8dfd49" CREATED="1771288408298" ID="ID_92329444" MODIFIED="1771288651595" STYLE="bubble" TEXT="erster Testfall läuft!!">
|
||||||
|
<edge COLOR="#61fe5b" STYLE="bezier" WIDTH="thin"/>
|
||||||
|
<arrowlink COLOR="#00ce05" DESTINATION="ID_1760377258" ENDARROW="Default" ENDINCLINATION="422;359;" ID="Arrow_ID_1963224116" STARTARROW="None" STARTINCLINATION="1800;235;"/>
|
||||||
|
<font NAME="SansSerif" SIZE="15"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -113092,7 +113174,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770950337384" ID="ID_853313306" MODIFIED="1770950365227" TEXT="Vorgriff auf das Stage-API">
|
<node CREATED="1770950337384" ID="ID_853313306" MODIFIED="1770950365227" TEXT="Vorgriff auf das Stage-API">
|
||||||
<linktarget COLOR="#da0a3e" DESTINATION="ID_853313306" ENDARROW="Default" ENDINCLINATION="-78;-118;" ID="Arrow_ID_1809426775" SOURCE="ID_1856993589" STARTARROW="None" STARTINCLINATION="-315;35;"/>
|
<linktarget COLOR="#0a5cda" DESTINATION="ID_853313306" ENDARROW="Default" ENDINCLINATION="-78;-118;" ID="Arrow_ID_1809426775" SOURCE="ID_1856993589" STARTARROW="None" STARTINCLINATION="-315;35;"/>
|
||||||
<node CREATED="1771010303963" ID="ID_1721405713" MODIFIED="1771010319964" TEXT="alle relevanten Zustandsübergänge laufen über diese Schnittstelle"/>
|
<node CREATED="1771010303963" ID="ID_1721405713" MODIFIED="1771010319964" TEXT="alle relevanten Zustandsübergänge laufen über diese Schnittstelle"/>
|
||||||
<node CREATED="1771018683269" ID="ID_778980845" MODIFIED="1771018692947" TEXT="zudem: für das Tracking/Diagnose brauchen wir...">
|
<node CREATED="1771018683269" ID="ID_778980845" MODIFIED="1771018692947" TEXT="zudem: für das Tracking/Diagnose brauchen wir...">
|
||||||
<node CREATED="1771018695111" ID="ID_1593141461" MODIFIED="1771018712314" TEXT="eindeutig was der nächste Zustand sein wird"/>
|
<node CREATED="1771018695111" ID="ID_1593141461" MODIFIED="1771018712314" TEXT="eindeutig was der nächste Zustand sein wird"/>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue