BufferProvider: complete the clean-up effort
Looking through all my work notes, it seems that all the problematic aspects are now solved in a satisfactory way. * it is clear how to dependency-inject a `BufferProvider` * the internals of the `BufferProvider` front-End have been restructured * there are now two ''pillars'' of the implementation: `BufferStage` and `BufferStore` * both can be subclassed independently * `BufferProviderSetup` exposes a proxying-mechanism (used for `DiagnosticBufferProvider`) * the `BufferMetadata` have been reviewed and some minor details were rectified * after a re-Design of `OutputSlot`, `BuffHandle` can now be used as unified front-End * both `DiagnosticBufferProvider` and `DiagnosticOutputSlot` have been rewritten * they are now independent, self-contained specialisations, layered on top Overall, what might seem like a detour, was an important step towards well-balanced structures and a better understanding of the Render Engine.
This commit is contained in:
parent
44b3dbe682
commit
4dc6885665
7 changed files with 823 additions and 103 deletions
|
|
@ -202,6 +202,20 @@ namespace out {
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
// standard copy operations acceptable
|
// standard copy operations acceptable
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builder: allocate a set of connections of the given type
|
||||||
|
* @note usually there is no need to subclass OutputSlot or AllocState,
|
||||||
|
* rather this factory should be used to establish an activated
|
||||||
|
* OutputSlot configured to use a specific OutputSlot::Connection.
|
||||||
|
*/
|
||||||
|
template<class CON, class FUN>
|
||||||
|
static OutputSlot
|
||||||
|
allocate (size_t cnt, FUN&& populator)
|
||||||
|
{
|
||||||
|
return OutputSlot{std::make_unique<AllocState<CON>> (cnt, std::forward<FUN>(populator))};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,11 @@ return: 0
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
TEST "BufferStore interface" BufferStore_test <<END
|
||||||
|
return: 0
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
PLANNED "Engine Interface basics" EngineInterface_test <<END
|
PLANNED "Engine Interface basics" EngineInterface_test <<END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,11 @@ return: 0
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
TEST "Output connection API" OutputAllocState_test <<END
|
||||||
|
return: 0
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
TEST "Output Slot Protocol" OutputSlotProtocol_test <<END
|
TEST "Output Slot Protocol" OutputSlotProtocol_test <<END
|
||||||
return: 0
|
return: 0
|
||||||
END
|
END
|
||||||
|
|
|
||||||
|
|
@ -32,13 +32,7 @@ namespace steam {
|
||||||
namespace engine{
|
namespace engine{
|
||||||
namespace test {
|
namespace test {
|
||||||
|
|
||||||
namespace { // Test fixture
|
|
||||||
|
|
||||||
|
|
||||||
}//(End) Test helpers
|
|
||||||
|
|
||||||
using LERR_(LIFECYCLE);
|
using LERR_(LIFECYCLE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -53,14 +47,6 @@ namespace test {
|
||||||
virtual void
|
virtual void
|
||||||
run (Arg)
|
run (Arg)
|
||||||
{
|
{
|
||||||
// seedRand();
|
|
||||||
simpleUsage();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
simpleUsage()
|
|
||||||
{
|
|
||||||
auto& ctx = EngineCtx::access;
|
auto& ctx = EngineCtx::access;
|
||||||
BufferProvider& provider = ctx().mem;
|
BufferProvider& provider = ctx().mem;
|
||||||
|
|
||||||
|
|
@ -81,14 +67,6 @@ namespace test {
|
||||||
CHECK (not buff.isValid());
|
CHECK (not buff.isValid());
|
||||||
VERIFY_ERROR (LIFECYCLE, buff.accessAs<int>() );
|
VERIFY_ERROR (LIFECYCLE, buff.accessAs<int>() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** @todo automagically post on X with lots of UPERCASE LETTERS */
|
|
||||||
void
|
|
||||||
verify_disaster()
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED ("general meltdown");
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
238
tests/vault/mem/buffer-store-test.cpp
Normal file
238
tests/vault/mem/buffer-store-test.cpp
Normal file
|
|
@ -0,0 +1,238 @@
|
||||||
|
/*
|
||||||
|
BufferStore(Test) - verify how the BufferStore API is invoked from BufferProvider
|
||||||
|
|
||||||
|
Copyright (C)
|
||||||
|
2026, Hermann Vosseler <Ichthyostega@web.de>
|
||||||
|
|
||||||
|
**Lumiera** 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. See the file COPYING for further details.
|
||||||
|
|
||||||
|
* *****************************************************************/
|
||||||
|
|
||||||
|
/** @file buffer-store-test.cpp
|
||||||
|
** unit test \ref BufferStore_test
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "test/run.hpp"
|
||||||
|
#include "test/event-log.hpp"
|
||||||
|
#include "test/test-helper.hpp"
|
||||||
|
#include "vault/mem/buffer-provider-setup.hpp"
|
||||||
|
#include "vault/mem/simple-buffer-state-registry.hpp"
|
||||||
|
#include "lib/format-obj.hpp"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
using test::EventLog;
|
||||||
|
using std::string;
|
||||||
|
|
||||||
|
|
||||||
|
namespace util { // add some rigged string-conversions....
|
||||||
|
using vault::mem::Buff;
|
||||||
|
using vault::mem::LocalTag;
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct StringConv<Buff*>
|
||||||
|
{
|
||||||
|
static std::string
|
||||||
|
invoke (Buff const* dummyBuff) noexcept
|
||||||
|
{
|
||||||
|
return "Mem:" + util::showHashLSB ((size_t)dummyBuff);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
template<>
|
||||||
|
struct StringConv<LocalTag>
|
||||||
|
{
|
||||||
|
static std::string
|
||||||
|
invoke (LocalTag const& localTag) noexcept
|
||||||
|
{
|
||||||
|
uint64_t dummyMark(localTag);
|
||||||
|
return "Tag:" + util::showHashLSB (dummyMark);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace vault::mem::test {
|
||||||
|
|
||||||
|
|
||||||
|
namespace { // test fixture...
|
||||||
|
/**
|
||||||
|
* Dummy implementation of the BufferProvider interface.
|
||||||
|
* Instead of a real storage backend, this test setup uses
|
||||||
|
* an embedded EventLog to mark all calls received by the
|
||||||
|
* BufferStore API-functions. Furthermore, the value
|
||||||
|
* transported in the LocalTag is returned as buffer address.
|
||||||
|
*/
|
||||||
|
class TestProvider
|
||||||
|
: public BufferProviderSetup
|
||||||
|
{
|
||||||
|
|
||||||
|
class LoggingBufferStore
|
||||||
|
: public BufferProviderSetup::Store
|
||||||
|
{
|
||||||
|
/** interpret the LocalTag as buffer address */
|
||||||
|
Buff*
|
||||||
|
asBuffer (LocalTag targetMarker)
|
||||||
|
{
|
||||||
|
void* buffMem{targetMarker};
|
||||||
|
return static_cast<Buff*> (buffMem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* =========== BufferStore interface =========== */
|
||||||
|
|
||||||
|
uint
|
||||||
|
prepareBuffers (HashVal typeID, uint cnt,size_t siz) override
|
||||||
|
{
|
||||||
|
log.call ("TestProvider", "prepareBuffers", typeID,cnt,siz);
|
||||||
|
return cnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
BuffAlloc
|
||||||
|
provideBuffer (HashVal typeID, size_t siz, LocalTag localTag, int64_t customArg) override
|
||||||
|
{
|
||||||
|
log.call ("TestProvider", "provideBuffer", typeID,siz,localTag,customArg);
|
||||||
|
|
||||||
|
Buff* storage = asBuffer (localTag);
|
||||||
|
log.event ("allocate").addAttrib("mem", util::toString(storage))
|
||||||
|
.addAttrib("tag", util::toString(localTag))
|
||||||
|
;
|
||||||
|
// A real BufferStore would perform the allocation task here...
|
||||||
|
BuffAlloc storageSlot{storage, siz, localTag};
|
||||||
|
return storageSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
mark_emitted (HashVal typeID, BuffAlloc storageSlot) override
|
||||||
|
{
|
||||||
|
auto& [storage,siz,localTag] = storageSlot;
|
||||||
|
log.call ("TestProvider", "mark_emitted", typeID,storage,siz,localTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
detachBuffer (HashVal typeID, BuffAlloc storageSlot) override
|
||||||
|
{
|
||||||
|
auto& [storage,siz,localTag] = storageSlot;
|
||||||
|
log.call ("TestProvider", "detachBuffer", typeID,storage,siz,localTag);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
TestProvider()
|
||||||
|
: BufferProviderSetup{*this}
|
||||||
|
{
|
||||||
|
log.event("Setup");
|
||||||
|
}
|
||||||
|
|
||||||
|
auto buildStage() { return std::make_unique<SimpleBufferStateRegistry> ("BufferStore_test"); }
|
||||||
|
auto buildStore() { return std::make_unique<LoggingBufferStore>(); }
|
||||||
|
|
||||||
|
|
||||||
|
static EventLog log;
|
||||||
|
|
||||||
|
|
||||||
|
/** prepare a specifically rigged »buffer type« that passes the given \a mark
|
||||||
|
* as a LocalTag to the BufferStore, which will return it as buffer "address" */
|
||||||
|
BuffDescr
|
||||||
|
specifyBufferType (size_t siz, uint64_t mark)
|
||||||
|
{
|
||||||
|
auto& typeKey = bufferStage_->defineBufferType (siz, TypeHandler::RAW, LocalTag(mark));
|
||||||
|
return buildDescriptor (typeKey);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
EventLog TestProvider::log("static BufferStore_test");
|
||||||
|
|
||||||
|
|
||||||
|
}//(End) test fixture
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************//**
|
||||||
|
* @test demonstrate how usage of the BufferProvider interface
|
||||||
|
* translates into calls on the internal BufferStore API.
|
||||||
|
* - use an embedded EventLog to verify sequence of events
|
||||||
|
* - use a rigged BufferStore implementation that logs invocations
|
||||||
|
* - perform a typical buffer usage cycle
|
||||||
|
* @see BufferProviderProtocol_test
|
||||||
|
* @see EventLog_test
|
||||||
|
*/
|
||||||
|
class BufferStore_test : public Test
|
||||||
|
{
|
||||||
|
|
||||||
|
virtual void
|
||||||
|
run (Arg)
|
||||||
|
{
|
||||||
|
auto& log = TestProvider::log;
|
||||||
|
log.clear ("Start BufferStore_test");
|
||||||
|
|
||||||
|
const size_t BUFFSIZ = 55;
|
||||||
|
const size_t ANOUNCE = 23;
|
||||||
|
const int64_t ARG = 88;
|
||||||
|
const uint64_t MARK = 42;
|
||||||
|
|
||||||
|
// this is how the packaged mark will be rendered...
|
||||||
|
const string TAG = util::toString (LocalTag{MARK});
|
||||||
|
const string MEM = util::toString ((Buff*) MARK);
|
||||||
|
|
||||||
|
|
||||||
|
TestProvider pro;
|
||||||
|
|
||||||
|
BuffDescr descr = pro.specifyBufferType(BUFFSIZ, MARK);
|
||||||
|
HashVal typeID{descr};
|
||||||
|
|
||||||
|
log.event ("announce buffers");
|
||||||
|
descr.announce (ANOUNCE);
|
||||||
|
|
||||||
|
log.event ("lock a buffer");
|
||||||
|
BuffHandle han = descr.lockBuffer (ARG);
|
||||||
|
CHECK (han.isAllotted());
|
||||||
|
|
||||||
|
Buff* mem = han.rawStorage();
|
||||||
|
CHECK (MARK == (uint64_t)mem );
|
||||||
|
|
||||||
|
log.event ("emit buffer");
|
||||||
|
han.emit();
|
||||||
|
|
||||||
|
log.event ("release buffer");
|
||||||
|
han.release();
|
||||||
|
CHECK (not han.isValid());
|
||||||
|
|
||||||
|
|
||||||
|
cout << "____Event-Log_________________\n"
|
||||||
|
<< util::join(log, "\n")
|
||||||
|
<< "\n───╼━━━━━━━━━━━╾──────────────"<<endl;
|
||||||
|
|
||||||
|
CHECK (log.verify ("Start BufferStore_test")
|
||||||
|
.beforeEvent("Setup")
|
||||||
|
|
||||||
|
.beforeEvent("announce buffers")
|
||||||
|
.beforeCall ("prepareBuffers").on("TestProvider").arg(typeID, ANOUNCE, BUFFSIZ)
|
||||||
|
|
||||||
|
.beforeEvent("lock a buffer")
|
||||||
|
.beforeCall ("provideBuffer") .on("TestProvider").arg(typeID, BUFFSIZ, TAG, ARG)
|
||||||
|
.beforeEvent("allocate") .attrib("mem", MEM)
|
||||||
|
.attrib("tag", TAG)
|
||||||
|
|
||||||
|
.beforeEvent("emit buffer")
|
||||||
|
.beforeCall ("mark_emitted") .on("TestProvider").arg(typeID, MEM, BUFFSIZ, TAG)
|
||||||
|
|
||||||
|
.beforeEvent("release buffer")
|
||||||
|
.beforeCall ("detachBuffer") .on("TestProvider").arg(typeID, MEM, BUFFSIZ, TAG)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/** Register this test class... */
|
||||||
|
LAUNCHER (BufferStore_test, "unit common");
|
||||||
|
|
||||||
|
|
||||||
|
}// namespace vault::mem::test
|
||||||
199
tests/vault/out/output-alloc-state-test.cpp
Normal file
199
tests/vault/out/output-alloc-state-test.cpp
Normal file
|
|
@ -0,0 +1,199 @@
|
||||||
|
/*
|
||||||
|
OutputAllocState(Test) - verify generation details
|
||||||
|
|
||||||
|
Copyright (C)
|
||||||
|
2026, Hermann Vosseler <Ichthyostega@web.de>
|
||||||
|
|
||||||
|
**Lumiera** 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. See the file COPYING for further details.
|
||||||
|
|
||||||
|
* *****************************************************************/
|
||||||
|
|
||||||
|
/** @file output-alloc-state-test.cpp
|
||||||
|
** unit test \ref OutputAllocState_test
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "test/run.hpp"
|
||||||
|
#include "test/event-log.hpp"
|
||||||
|
#include "test/test-helper.hpp"
|
||||||
|
#include "vault/mem/buffhandle.hpp"
|
||||||
|
#include "vault/out/output-slot.hpp"
|
||||||
|
#include "vault/out/output-slot-connection.hpp"
|
||||||
|
#include "lib/format-obj.hpp"
|
||||||
|
#include "lib/util.hpp"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
using std::string;
|
||||||
|
using test::EventLog;
|
||||||
|
using vault::mem::Buff;
|
||||||
|
using vault::out::FrameID;
|
||||||
|
using util::isSameAdr;
|
||||||
|
|
||||||
|
|
||||||
|
namespace vault::out::test {
|
||||||
|
|
||||||
|
namespace { // test fixture...
|
||||||
|
|
||||||
|
uint64_t DUMMY_BUFF{0xAaAaAa};
|
||||||
|
|
||||||
|
EventLog log("static OutputAllocState_test");
|
||||||
|
|
||||||
|
|
||||||
|
inline std::string
|
||||||
|
mark (void const* dummyBuff) noexcept
|
||||||
|
{
|
||||||
|
return "Mem:" + util::showHashLSB ((size_t)dummyBuff);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dummy implementation of the OutputSlot::Connection interface.
|
||||||
|
* Instead of engaging into actual output operations, this mock
|
||||||
|
* implementation protocols all received calls into an EventLog.
|
||||||
|
* A dummy memory address and buffer size is returned.
|
||||||
|
*/
|
||||||
|
class MockConnection
|
||||||
|
: public OutputSlot::Connection
|
||||||
|
{
|
||||||
|
|
||||||
|
/* === Connection API === */
|
||||||
|
|
||||||
|
size_t
|
||||||
|
getBufferSize() const override
|
||||||
|
{
|
||||||
|
log.call ("MockConnection", "getBufferSize");
|
||||||
|
return sizeof(DUMMY_BUFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
Buff*
|
||||||
|
claimBufferFor (FrameID frame) override
|
||||||
|
{
|
||||||
|
log.call ("MockConnection", "claimBufferFor", frame);
|
||||||
|
void* dummy = &DUMMY_BUFF;
|
||||||
|
return static_cast<Buff*> (dummy);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
publish (Buff* buff) override
|
||||||
|
{
|
||||||
|
log.call ("MockConnection", "publish", mark(buff));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
release (Buff* buff) override
|
||||||
|
{
|
||||||
|
log.call ("MockConnection", "release", mark(buff));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
shutDown() override
|
||||||
|
{
|
||||||
|
log.call ("MockConnection", "shutDown");
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
MockConnection() { log.call ("MockConnection", "create"); }
|
||||||
|
~MockConnection() { log.call ("MockConnection", "destroy"); }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
inline OutputSlot
|
||||||
|
makeFakeSlot()
|
||||||
|
{
|
||||||
|
const uint NUM_CONNECTIONS = 1;
|
||||||
|
return OutputSlot::allocate<MockConnection> (NUM_CONNECTIONS
|
||||||
|
,[](auto& storage)
|
||||||
|
{
|
||||||
|
storage.template create<MockConnection>();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}//(End) test fixture
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************//**
|
||||||
|
* @test demonstrate how the internal implementation hub within OutputSlot
|
||||||
|
* is connected to some OutputSlot::Connection implementation and
|
||||||
|
* exposes a BuffHandle as front-end.
|
||||||
|
* - use an embedded EventLog to verify sequence of events
|
||||||
|
* - use a rigged mock connection that logs invocations
|
||||||
|
* - perform all operations for a typical output usage
|
||||||
|
* @see OutputSlotProtocol_test
|
||||||
|
* @see EventLog_test
|
||||||
|
*/
|
||||||
|
class OutputAllocState_test : public Test
|
||||||
|
{
|
||||||
|
|
||||||
|
virtual void
|
||||||
|
run (Arg)
|
||||||
|
{
|
||||||
|
log.clear ("Start OutputAllocState_test");
|
||||||
|
|
||||||
|
const FrameCnt FRA_NO = 55;
|
||||||
|
{
|
||||||
|
log.event("create FakeSlot");
|
||||||
|
auto slot = makeFakeSlot();
|
||||||
|
|
||||||
|
log.event("retrieve DataSink");
|
||||||
|
auto sinks = slot.getOpenedSinks();
|
||||||
|
auto sink = *sinks;
|
||||||
|
++sinks;
|
||||||
|
CHECK (not sinks);
|
||||||
|
|
||||||
|
log.event("lock buffer");
|
||||||
|
BuffHandle han = sink(FRA_NO);
|
||||||
|
CHECK (han);
|
||||||
|
CHECK (han.size() == sizeof(DUMMY_BUFF));
|
||||||
|
CHECK (isSameAdr (han.rawStorage(), &DUMMY_BUFF));
|
||||||
|
|
||||||
|
log.event("emit buffer");
|
||||||
|
han.emit();
|
||||||
|
CHECK (not han);
|
||||||
|
|
||||||
|
log.event("release buffer");
|
||||||
|
han.release();
|
||||||
|
|
||||||
|
log.event("abandon FakeSlot");
|
||||||
|
}// last instance of this slot goes out of scope...
|
||||||
|
|
||||||
|
|
||||||
|
cout << "____Event-Log_________________\n"
|
||||||
|
<< util::join(log, "\n")
|
||||||
|
<< "\n───╼━━━━━━━━━━━╾──────────────"<<endl;
|
||||||
|
|
||||||
|
CHECK (log.verify ("Start OutputAllocState_test")
|
||||||
|
.beforeEvent("create FakeSlot")
|
||||||
|
.beforeCall ("create") .on("MockConnection")
|
||||||
|
|
||||||
|
.beforeEvent("retrieve DataSink")
|
||||||
|
.beforeCall ("getBufferSize") .on("MockConnection")
|
||||||
|
|
||||||
|
.beforeEvent("lock buffer")
|
||||||
|
.beforeCall ("claimBufferFor").on("MockConnection").arg(FRA_NO)
|
||||||
|
|
||||||
|
.beforeEvent("emit buffer")
|
||||||
|
.beforeCall ("publish") .on("MockConnection").arg(mark(&DUMMY_BUFF))
|
||||||
|
|
||||||
|
.beforeEvent("release buffer")
|
||||||
|
.beforeCall ("release") .on("MockConnection").arg(mark(&DUMMY_BUFF))
|
||||||
|
|
||||||
|
.beforeEvent("abandon FakeSlot")
|
||||||
|
.beforeCall ("shutDown") .on("MockConnection")
|
||||||
|
.beforeCall ("destroy") .on("MockConnection")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/** Register this test class... */
|
||||||
|
LAUNCHER (OutputAllocState_test, "unit common");
|
||||||
|
|
||||||
|
|
||||||
|
}// namespace vault::out::test
|
||||||
|
|
@ -116137,13 +116137,22 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<linktarget COLOR="#ca3e80" DESTINATION="ID_1795755773" ENDARROW="Default" ENDINCLINATION="333;-16;" ID="Arrow_ID_778082175" SOURCE="ID_1238813567" STARTARROW="None" STARTINCLINATION="-512;47;"/>
|
<linktarget COLOR="#ca3e80" DESTINATION="ID_1795755773" ENDARROW="Default" ENDINCLINATION="333;-16;" ID="Arrow_ID_778082175" SOURCE="ID_1238813567" STARTARROW="None" STARTINCLINATION="-512;47;"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1713824325760" ID="ID_1661035289" MODIFIED="1734654073268" TEXT="BufferProviderProtocol_test">
|
<node COLOR="#338800" CREATED="1713824325760" ID="ID_1661035289" MODIFIED="1776096422109" TEXT="BufferProviderProtocol_test">
|
||||||
<linktarget COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_1311080426" SOURCE="ID_769985598" STARTARROW="None" STARTINCLINATION="-1176;64;"/>
|
<linktarget COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_1311080426" SOURCE="ID_769985598" STARTARROW="None" STARTINCLINATION="-1176;64;"/>
|
||||||
<linktarget COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_728270522" SOURCE="ID_173016592" STARTARROW="None" STARTINCLINATION="-1222;49;"/>
|
<linktarget COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_728270522" SOURCE="ID_173016592" STARTARROW="None" STARTINCLINATION="-1222;49;"/>
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1713824328087" ID="ID_1065671274" MODIFIED="1769203375143" TEXT="Standard-Fall fertigstellen">
|
<node COLOR="#338800" CREATED="1713824328087" ID="ID_1065671274" MODIFIED="1776096609737" TEXT="Standard-Fall fertigstellen">
|
||||||
<arrowlink COLOR="#ce0632" DESTINATION="ID_1957618964" ENDARROW="Default" ENDINCLINATION="-1185;43;" ID="Arrow_ID_1824415534" STARTARROW="None" STARTINCLINATION="1197;118;"/>
|
<arrowlink COLOR="#0671ce" DESTINATION="ID_1957618964" ENDARROW="Default" ENDINCLINATION="-1185;43;" ID="Arrow_ID_1824415534" STARTARROW="None" STARTINCLINATION="682;64;"/>
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
|
<node COLOR="#435e98" CREATED="1776096316667" ID="ID_1361276992" LINK="#ID_389403594" MODIFIED="1776096408008" TEXT="gelungen im Zuge der Aufräumarbeiten BufferProvider / OutputSlot">
|
||||||
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#338800" CREATED="1776096485030" ID="ID_507373597" MODIFIED="1776096585298" TEXT="simulierte Verarbeitungssequenz...">
|
||||||
|
<icon BUILTIN="button_ok"/>
|
||||||
|
<node COLOR="#438c98" CREATED="1776096543510" ID="ID_1238379579" LINK="#ID_1168667446" MODIFIED="1776096676503" TEXT="identifiziert..."/>
|
||||||
|
<node COLOR="#438c98" CREATED="1776096551965" ID="ID_1894237089" LINK="#ID_779094274" MODIFIED="1776096676503" TEXT="als Test nachgebaut"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -116308,8 +116317,8 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1729445259863" ID="ID_1891578734" MODIFIED="1729445265857" TEXT="Ticket">
|
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1729445259863" ID="ID_1891578734" LINK="https://issues.lumiera.org/ticket/1423" MODIFIED="1776104186036" TEXT="#1423 support repetitive node topology">
|
||||||
<icon BUILTIN="flag-pink"/>
|
<icon BUILTIN="hourglass"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -116447,7 +116456,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1711548732719" ID="ID_1723099061" MODIFIED="1715438041053" TEXT="erster Entwurf von 2011">
|
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1711548732719" ID="ID_1723099061" MODIFIED="1715438041053" TEXT="erster Entwurf von 2011">
|
||||||
<icon BUILTIN="help"/>
|
<icon BUILTIN="help"/>
|
||||||
<node BACKGROUND_COLOR="#c59b8e" COLOR="#690f14" CREATED="1734652908335" HGAP="112" ID="ID_1155618733" MODIFIED="1770668959236" TEXT="wie ist hier eigentlich der Stand??" VSHIFT="52">
|
<node BACKGROUND_COLOR="#c59b8e" COLOR="#690f14" CREATED="1734652908335" FOLDED="true" HGAP="112" ID="ID_1155618733" MODIFIED="1776188028095" TEXT="wie ist hier eigentlich der Stand??" VSHIFT="52">
|
||||||
<arrowlink COLOR="#9b696f" DESTINATION="ID_1210803090" ENDARROW="Default" ENDINCLINATION="-1935;134;" ID="Arrow_ID_965284194" STARTARROW="None" STARTINCLINATION="-1174;81;"/>
|
<arrowlink COLOR="#9b696f" DESTINATION="ID_1210803090" ENDARROW="Default" ENDINCLINATION="-1935;134;" ID="Arrow_ID_965284194" STARTARROW="None" STARTINCLINATION="-1174;81;"/>
|
||||||
<arrowlink COLOR="#cc6e7f" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="1184;730;" ID="Arrow_ID_544228779" STARTARROW="Default" STARTINCLINATION="128;-1039;"/>
|
<arrowlink COLOR="#cc6e7f" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="1184;730;" ID="Arrow_ID_544228779" STARTARROW="Default" STARTINCLINATION="128;-1039;"/>
|
||||||
<linktarget COLOR="#2f4c6e" DESTINATION="ID_1155618733" ENDARROW="Default" ENDINCLINATION="-364;1821;" ID="Arrow_ID_783725506" SOURCE="ID_1147423103" STARTARROW="None" STARTINCLINATION="451;23;"/>
|
<linktarget COLOR="#2f4c6e" DESTINATION="ID_1155618733" ENDARROW="Default" ENDINCLINATION="-364;1821;" ID="Arrow_ID_783725506" SOURCE="ID_1147423103" STARTARROW="None" STARTINCLINATION="451;23;"/>
|
||||||
|
|
@ -116470,9 +116479,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node BACKGROUND_COLOR="#c5ac9e" COLOR="#435e98" CREATED="1721958694600" HGAP="37" ID="ID_173016592" MODIFIED="1734654190420" TEXT="Dokumentation: BufferProviderProtocol_test + BufferMetadata_test" VSHIFT="61">
|
<node BACKGROUND_COLOR="#c5ac9e" COLOR="#435e98" CREATED="1721958694600" HGAP="37" ID="ID_173016592" MODIFIED="1734654190420" TEXT="Dokumentation: BufferProviderProtocol_test + BufferMetadata_test" VSHIFT="61">
|
||||||
<arrowlink COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_728270522" STARTARROW="None" STARTINCLINATION="-1222;49;"/>
|
<arrowlink COLOR="#5387dc" DESTINATION="ID_1661035289" ENDARROW="Default" ENDINCLINATION="-1176;-93;" ID="Arrow_ID_728270522" STARTARROW="None" STARTINCLINATION="-1222;49;"/>
|
||||||
<icon BUILTIN="list"/>
|
<icon BUILTIN="list"/>
|
||||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1765479194145" ID="ID_1559489831" MODIFIED="1765479251951" TEXT="Kritik Testaufbau">
|
<node BACKGROUND_COLOR="#fec383" COLOR="#ff0000" CREATED="1765479194145" FOLDED="true" ID="ID_1559489831" MODIFIED="1776104880943" TEXT="Kritik Testaufbau">
|
||||||
<linktarget COLOR="#5e06ee" DESTINATION="ID_1559489831" ENDARROW="Default" ENDINCLINATION="-109;13;" ID="Arrow_ID_166502420" SOURCE="ID_1782436035" STARTARROW="None" STARTINCLINATION="285;-20;"/>
|
<linktarget COLOR="#5e06ee" DESTINATION="ID_1559489831" ENDARROW="Default" ENDINCLINATION="-109;13;" ID="Arrow_ID_166502420" SOURCE="ID_1782436035" STARTARROW="None" STARTINCLINATION="285;-20;"/>
|
||||||
<icon BUILTIN="flag-pink"/>
|
<icon BUILTIN="broken-line"/>
|
||||||
<node CREATED="1769137020703" ID="ID_593286874" MODIFIED="1769137022544" TEXT="BufferProviderProtocol_test">
|
<node CREATED="1769137020703" ID="ID_593286874" MODIFIED="1769137022544" TEXT="BufferProviderProtocol_test">
|
||||||
<node CREATED="1769137037154" ID="ID_642965170" MODIFIED="1769137049707" TEXT="sieht auf den ersten Blick sauber aus"/>
|
<node CREATED="1769137037154" ID="ID_642965170" MODIFIED="1769137049707" TEXT="sieht auf den ersten Blick sauber aus"/>
|
||||||
<node CREATED="1769137073733" ID="ID_1770536933" MODIFIED="1769137087079" TEXT="ist sehr high-level (was mir gut erscheint)"/>
|
<node CREATED="1769137073733" ID="ID_1770536933" MODIFIED="1769137087079" TEXT="ist sehr high-level (was mir gut erscheint)"/>
|
||||||
|
|
@ -116493,13 +116502,13 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1769203135049" ID="ID_1957618964" MODIFIED="1771372789015" TEXT="neuer Ansatz: jetzt die reale Verwendung analysieren und nachbauen">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1769203135049" ID="ID_1957618964" MODIFIED="1776096609737" TEXT="neuer Ansatz: jetzt die reale Verwendung analysieren und nachbauen">
|
||||||
<linktarget COLOR="#ce0632" DESTINATION="ID_1957618964" ENDARROW="Default" ENDINCLINATION="-1185;43;" ID="Arrow_ID_1824415534" SOURCE="ID_1065671274" STARTARROW="None" STARTINCLINATION="1197;118;"/>
|
<linktarget COLOR="#0671ce" DESTINATION="ID_1957618964" ENDARROW="Default" ENDINCLINATION="-1185;43;" ID="Arrow_ID_1824415534" SOURCE="ID_1065671274" STARTARROW="None" STARTINCLINATION="682;64;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node BACKGROUND_COLOR="#eae5a6" COLOR="#300f69" CREATED="1769203163926" ID="ID_1465055003" MODIFIED="1769203203294" TEXT="das ist der große Vorteil jetzt: das Node-Network ist implementiert">
|
<node BACKGROUND_COLOR="#eae5a6" COLOR="#300f69" CREATED="1769203163926" ID="ID_1465055003" MODIFIED="1769203203294" TEXT="das ist der große Vorteil jetzt: das Node-Network ist implementiert">
|
||||||
<icon BUILTIN="ksmiletris"/>
|
<icon BUILTIN="ksmiletris"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1769203793839" ID="ID_1591115832" MODIFIED="1769203863237" TEXT="Einstiegspunkt...">
|
<node COLOR="#435e98" CREATED="1769203793839" FOLDED="true" ID="ID_1591115832" MODIFIED="1776096691239" TEXT="Nachvollziehen anhand der Node-Tests...">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -116508,6 +116517,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="edit"/>
|
||||||
<node CREATED="1769203821518" ID="ID_1849728565" MODIFIED="1769203827777" TEXT="NodeLink_test::trigger_node_port_invocation"/>
|
<node CREATED="1769203821518" ID="ID_1849728565" MODIFIED="1769203827777" TEXT="NodeLink_test::trigger_node_port_invocation"/>
|
||||||
<node CREATED="1769205087985" ID="ID_847559343" MODIFIED="1769205103146" TEXT="Verdrahtung: Node-Operationen in diesem Test">
|
<node CREATED="1769205087985" ID="ID_847559343" MODIFIED="1769205103146" TEXT="Verdrahtung: Node-Operationen in diesem Test">
|
||||||
<node CREATED="1769205105468" ID="ID_1571335050" MODIFIED="1769205220609" TEXT="Invocation: belegt einen Buffer für TestFrame">
|
<node CREATED="1769205105468" ID="ID_1571335050" MODIFIED="1769205220609" TEXT="Invocation: belegt einen Buffer für TestFrame">
|
||||||
|
|
@ -116767,7 +116777,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#cde1be" COLOR="#338800" CREATED="1769210686565" ID="ID_1536189770" MODIFIED="1771372810747" TEXT="dieses Muster nun im Testfall nachbauen">
|
<node BACKGROUND_COLOR="#cde1be" COLOR="#338800" CREATED="1769210686565" FOLDED="true" ID="ID_1536189770" MODIFIED="1771372810747" TEXT="dieses Muster nun im Testfall nachbauen">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1769213063666" ID="ID_1804838536" MODIFIED="1769213930429" TEXT="auch bereits incl. der anounce()-Operation">
|
<node CREATED="1769213063666" ID="ID_1804838536" MODIFIED="1769213930429" TEXT="auch bereits incl. der anounce()-Operation">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
|
|
@ -116885,7 +116895,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1769303336197" ID="ID_1486480192" MODIFIED="1769303349894" TEXT="(wartet auf neue Backend-Implementierung)">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1769303336197" ID="ID_1486480192" MODIFIED="1769303349894" TEXT="(wartet auf neue Backend-Implementierung)">
|
||||||
<font NAME="SansSerif" SIZE="10"/>
|
<font NAME="SansSerif" SIZE="10"/>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1771372329207" ID="ID_1870433294" MODIFIED="1775919624252" TEXT="Nach dem Umbau: nun gibt es ein neues Diagnose-API">
|
<node COLOR="#338800" CREATED="1771372329207" ID="ID_1870433294" LINK="#ID_40466555" MODIFIED="1776096270260" TEXT="Nach dem Umbau: nun gibt es ein neues Diagnose-API">
|
||||||
<arrowlink COLOR="#1a8abc" DESTINATION="ID_613670885" ENDARROW="Default" ENDINCLINATION="855;36;" ID="Arrow_ID_1032863918" STARTARROW="None" STARTINCLINATION="712;38;"/>
|
<arrowlink COLOR="#1a8abc" DESTINATION="ID_613670885" ENDARROW="Default" ENDINCLINATION="855;36;" ID="Arrow_ID_1032863918" STARTARROW="None" STARTINCLINATION="712;38;"/>
|
||||||
<linktarget COLOR="#70f07e" DESTINATION="ID_1870433294" ENDARROW="Default" ENDINCLINATION="460;21;" ID="Arrow_ID_303606689" SOURCE="ID_711147734" STARTARROW="None" STARTINCLINATION="-9;45;"/>
|
<linktarget COLOR="#70f07e" DESTINATION="ID_1870433294" ENDARROW="Default" ENDINCLINATION="460;21;" ID="Arrow_ID_303606689" SOURCE="ID_711147734" STARTARROW="None" STARTINCLINATION="-9;45;"/>
|
||||||
<icon BUILTIN="forward"/>
|
<icon BUILTIN="forward"/>
|
||||||
|
|
@ -116897,16 +116907,19 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1769137033531" ID="ID_1591116095" MODIFIED="1769137035508" TEXT="OutputSlotProtocol_test">
|
<node CREATED="1769137033531" ID="ID_1591116095" MODIFIED="1769137035508" TEXT="OutputSlotProtocol_test">
|
||||||
<node CREATED="1769137192783" ID="ID_1017293617" MODIFIED="1769137202600" TEXT="sieht ebenfalls auf den ersten Blick sauber aus"/>
|
<node CREATED="1769137192783" ID="ID_1017293617" MODIFIED="1769137202600" TEXT="sieht ebenfalls auf den ersten Blick sauber aus"/>
|
||||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1769137203560" ID="ID_277684649" MODIFIED="1769137287028" TEXT="enthält direkt den unpassenden Aufruf">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1769137203560" ID="ID_277684649" MODIFIED="1776096709400" TEXT="enthält direkt den unpassenden Aufruf">
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1769137237778" ID="ID_332744930" MODIFIED="1769137282521" TEXT="sink1.emit (frameNr-1, buff00)">
|
<node BACKGROUND_COLOR="#cba28d" COLOR="#990033" CREATED="1769137237778" ID="ID_332744930" MODIFIED="1776096838617" TEXT="sink1.emit (frameNr-1, buff00)">
|
||||||
<font NAME="SansSerif" SIZE="12"/>
|
<font NAME="SansSerif" SIZE="12"/>
|
||||||
<icon BUILTIN="broken-line"/>
|
<icon BUILTIN="broken-line"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1769137240854" ID="ID_1824102967" MODIFIED="1769137269642" TEXT="das müßte sein: buff11.emit()">
|
<node BACKGROUND_COLOR="#dac987" COLOR="#990000" CREATED="1769137240854" ID="ID_1824102967" MODIFIED="1776096850483" TEXT="das müßte sein: buff11.emit()">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
<node COLOR="#338800" CREATED="1776096756834" ID="ID_394169870" LINK="#ID_1552790778" MODIFIED="1776096903888" TEXT="Diskrepanz nach Umbau OutputSlot behoben">
|
||||||
|
<arrowlink COLOR="#46a1e8" DESTINATION="ID_1723598039" ENDARROW="Default" ENDINCLINATION="-1296;-350;" ID="Arrow_ID_199980900" STARTARROW="None" STARTINCLINATION="549;34;"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1770577592295" ID="ID_343232968" MODIFIED="1770675210511" TEXT="verwirrend: TrackingHeapBlockProvider vs. DiagnosticBufferProvider">
|
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1770577592295" ID="ID_343232968" MODIFIED="1770675210511" TEXT="verwirrend: TrackingHeapBlockProvider vs. DiagnosticBufferProvider">
|
||||||
<linktarget COLOR="#970f69" DESTINATION="ID_343232968" ENDARROW="Default" ENDINCLINATION="139;518;" ID="Arrow_ID_1217877891" SOURCE="ID_1625465015" STARTARROW="None" STARTINCLINATION="1159;-107;"/>
|
<linktarget COLOR="#970f69" DESTINATION="ID_343232968" ENDARROW="Default" ENDINCLINATION="139;518;" ID="Arrow_ID_1217877891" SOURCE="ID_1625465015" STARTARROW="None" STARTINCLINATION="1159;-107;"/>
|
||||||
|
|
@ -116995,7 +117008,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1770580018037" ID="ID_1895645138" MODIFIED="1770675335302" TEXT="Instrumentierung und Diagnostik sollten klar als add-On forumliert sein">
|
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1770580018037" ID="ID_1895645138" MODIFIED="1770675335302" TEXT="Instrumentierung und Diagnostik sollten klar als add-On forumliert sein">
|
||||||
<arrowlink COLOR="#f71432" DESTINATION="ID_1446919050" ENDARROW="Default" ENDINCLINATION="-101;-904;" ID="Arrow_ID_1820448517" STARTARROW="None" STARTINCLINATION="-1192;48;"/>
|
<arrowlink COLOR="#980115" DESTINATION="ID_1446919050" ENDARROW="Default" ENDINCLINATION="-101;-904;" ID="Arrow_ID_1820448517" STARTARROW="None" STARTINCLINATION="-1192;48;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#dc020e" CREATED="1770675344734" HGAP="118" ID="ID_1406878697" MODIFIED="1770675393536" TEXT="(das führt mich direkt in den Kern des Problems...)" VSHIFT="2">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#dc020e" CREATED="1770675344734" HGAP="118" ID="ID_1406878697" MODIFIED="1770675393536" TEXT="(das führt mich direkt in den Kern des Problems...)" VSHIFT="2">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
|
@ -117007,6 +117020,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<font NAME="SansSerif" SIZE="11"/>
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
|
<node COLOR="#2a2a74" CREATED="1776096930355" HGAP="102" ID="ID_146286111" LINK="#ID_964595399" MODIFIED="1776097005801" TEXT="<und letztlich zur Lösung>" VSHIFT="4">
|
||||||
|
<font NAME="SansSerif" SIZE="8"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#58156d" CREATED="1770580802815" ID="ID_1033145238" MODIFIED="1770580826376" TEXT="(und sich an das DI-Schema halten)">
|
<node COLOR="#58156d" CREATED="1770580802815" ID="ID_1033145238" MODIFIED="1770580826376" TEXT="(und sich an das DI-Schema halten)">
|
||||||
|
|
@ -117014,7 +117030,8 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1769303363648" ID="ID_452649338" MODIFIED="1769303374804" TEXT="Neu: Tests für die Implementierungs-Komponenten">
|
<node COLOR="#338800" CREATED="1769303363648" ID="ID_452649338" MODIFIED="1776187966271" TEXT="Wünschenswert: Tests für die Implementierungs-Komponenten">
|
||||||
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1769303376398" ID="ID_1546764124" MODIFIED="1769303430662" TEXT="das reflektiert die Wurzel des Problems: es gab keine Komponenten">
|
<node CREATED="1769303376398" ID="ID_1546764124" MODIFIED="1769303430662" TEXT="das reflektiert die Wurzel des Problems: es gab keine Komponenten">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
|
|
@ -117025,6 +117042,20 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#63128d" CREATED="1776125747009" ID="ID_1707514677" MODIFIED="1776125883913" TEXT="(aber jetzt gibt es durchaus Komponenten die man testen kann)">
|
||||||
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1776125772219" ID="ID_1543246296" MODIFIED="1776125868133" TEXT="Idee: übersetzung der API-Aufrufe in Backend-Aufrufe zeigen">
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
<node CREATED="1776125810844" ID="ID_810657330" MODIFIED="1776125816561" TEXT="rigged implementation"/>
|
||||||
|
<node CREATED="1776125817397" ID="ID_234693697" MODIFIED="1776125821360" TEXT="EventLog verwenden"/>
|
||||||
|
<node CREATED="1776125822358" ID="ID_1184887891" MODIFIED="1776125832521" TEXT="Sequenz der Events verifizieren"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1776125834934" ID="ID_342600455" MODIFIED="1776125861027" TEXT="abgedeckte Komponenten">
|
||||||
|
<icon BUILTIN="info"/>
|
||||||
|
<node COLOR="#435e98" CREATED="1776125843314" ID="ID_1664720546" MODIFIED="1776125857625" TEXT="BufferStore ⟹ BufferStore_test"/>
|
||||||
|
<node COLOR="#435e98" CREATED="1776186025629" ID="ID_1249789512" MODIFIED="1776186046647" TEXT="AllocState ⟹ OutputAllocState_test"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1769303576693" ID="ID_623188672" MODIFIED="1769303591585" TEXT="die Zustandsübergänge der Metadaten wurden damals nicht richtig bedacht">
|
<node CREATED="1769303576693" ID="ID_623188672" MODIFIED="1769303591585" TEXT="die Zustandsübergänge der Metadaten wurden damals nicht richtig bedacht">
|
||||||
|
|
@ -117094,10 +117125,10 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1769303977673" ID="ID_105336756" MODIFIED="1769306583888" TEXT="zu klären ist in welcher Weise ein OutputSlot ein BuffHandle braucht">
|
<node COLOR="#435e98" CREATED="1769303977673" ID="ID_105336756" MODIFIED="1776105440079" TEXT="zu klären ist in welcher Weise ein OutputSlot ein BuffHandle braucht">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1769304014980" ID="ID_1365956476" MODIFIED="1769304033686" TEXT="denn daran hängt, wie die Protokolle aufeinander aufbauen können"/>
|
<node CREATED="1769304014980" ID="ID_1365956476" MODIFIED="1769304033686" TEXT="denn daran hängt, wie die Protokolle aufeinander aufbauen können"/>
|
||||||
<node CREATED="1769304034546" ID="ID_1802954526" MODIFIED="1769304123751" TEXT="es gab sicherlich einen Grund dafür, warum ich sie damals nicht kongruent gemacht habe">
|
<node CREATED="1769304034546" ID="ID_1802954526" MODIFIED="1776105903354" TEXT="es gab wohl einen Grund dafür, warum ich sie damals nicht kongruent gemacht habe">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -117106,6 +117137,45 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="help"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1776105495930" ID="ID_14212834" MODIFIED="1776105898246" TEXT="Die Analyse zeigt zwei Gründe auf...">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
zunächst einmal war der BufferProvider selber zu kohäsiv, und hatte keine Innen-Struktur; insofern war es schwierig, konkrete Varianten durch Subclassing zu schaffen — wodurch es nahezu unmöglich wurde, eine Proxy-Variante zu schaffen, die etwas anderes macht als »point-and-shot« direkt in ein Memory-Management
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
und zudem hing das Thema »OutputSlot« komplett in der Luft, und der DiagnosticOutputSlot war die einzige Implementierung, die sich mit vertretbarem Aufwand realisieren ließ. Dieser erhebliche Aufwand hat mich unter Druck gesetzt, und deshalb habe ich die Arbeit abgekürzt, und direkt die Dummy-Implementierung des BufferProvider huckepack genommen (teilweise sogar am DiagnosticBufferProivder vorbei). Wegen dem ersten Problem aber konnte ich an der Stelle nicht direkt delegieren, und hab stattdessen neue API-Funktionen auf der DataSink geschaffen
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Insofern gab es <i>keine guten Gründe</i> — aber ich hab's nicht besser hinbekommen damals, und ich hab die Bedeutung dieser Kongruenz auch noch nicht wirklich verstanden (weil die Engine nie soweit durchentwickelt worden war).
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="info"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1776105913602" ID="ID_1762818867" MODIFIED="1776106105671" TEXT="Stand nach Umbau: braucht es gar nicht mehr">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Dazu ist zweierlei festzustellen
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
der OutputSlot verwendet nun ein BuffHandle als front-End für das Protokoll. Das ist fest verdrahtet, und so bekommt es der user von der DataSink
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
allerdings <i>zur Implementierung</i> wird keinerlei Vorgabe mehr gemacht; tatsächlich ist der OutputSlot nun komplett von der Implementierung des Output-Mechanismus <i>abstrahiert.</i> Stattdessen muß nun die <i>Implementierung des Interface OutputSlot::Connection</i> dafür sorgen, irgendwo eine Buffer-Addresse herzubekommen. Dafür kann sie, muß aber nicht, intern einen BufferProvider ansprechen
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1769304142533" ID="ID_1886652999" MODIFIED="1771179986963" TEXT="außerdem hatte ich beim Design des Protokolls das Thema »Concurrency« übersehen">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1769304142533" ID="ID_1886652999" MODIFIED="1771179986963" TEXT="außerdem hatte ich beim Design des Protokolls das Thema »Concurrency« übersehen">
|
||||||
|
|
@ -117119,10 +117189,45 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<icon BUILTIN="messagebox_warning"/>
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
</node>
|
</node>
|
||||||
|
<node COLOR="#435e98" CREATED="1776104921781" ID="ID_771742248" MODIFIED="1776105423833">
|
||||||
|
<richcontent TYPE="NODE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
<u>Fazit 3/26</u>: nach Überarbeitung gilt dieses Thema als befriedigend gelöst
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Der bestehende Stand der Entwürfe von 2012 war problematisch, und schwer zu greifen; es war eine zähe und schwierige Aufgabe, das entstandene Geflecht systematisch auseinanderzunehmen. Als Ergebnis ist nun
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<i>im</i> BufferProvider eine Implementierungs-Struktur definiert, welche Metadaten (BufferStage) und Storage-Handling (BufferStore) sauber trennt und sparat erweiterbar macht
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
nach einem kompletten re-Design die Implementierung des OutputSlot generisch und muß nicht mehr durch Subclassing für den jeweilgen Fall eingerichtet werden
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
die Möglichkeit geschaffen, durch das Buffer-Handle als front-End die Protokoll-Schritte über einen Proxy-Buffer-Provider durchzureichen
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
die Test/Diagnose-Implementierung in beiden Fällen komplett neu geschrieben worden, und zwar als eigenständiger Layer oberhalb einer nun ebenfalls eigenständigen default-Implementierung
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Insgesamt habe ich nun den Eindruck, daß dieses Design insgesamt eine Errungenschaft ist, und ich mich damit durchaus blicken lassen kann
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1765477795772" ID="ID_1729025521" MODIFIED="1765477801600" TEXT="Lösungsweg finden">
|
<node CREATED="1765477795772" ID="ID_1729025521" MODIFIED="1765477801600" TEXT="Lösungsweg finden">
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#bf0297" CREATED="1765477803087" ID="ID_588438295" MODIFIED="1770828460086" TEXT="Oh weh ... kann mich schon wieder an fast gar nix mehr erinnern">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#bf0297" CREATED="1765477803087" FOLDED="true" ID="ID_588438295" MODIFIED="1770828460086" TEXT="Oh weh ... kann mich schon wieder an fast gar nix mehr erinnern">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -117131,7 +117236,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<arrowlink COLOR="#ae0f58" DESTINATION="ID_98767082" ENDARROW="Default" ENDINCLINATION="132;-933;" ID="Arrow_ID_747040279" STARTARROW="None" STARTINCLINATION="170;573;"/>
|
<arrowlink COLOR="#ae0f58" DESTINATION="ID_98767082" ENDARROW="Default" ENDINCLINATION="-622;-143;" ID="Arrow_ID_747040279" STARTARROW="None" STARTINCLINATION="-301;114;"/>
|
||||||
<linktarget COLOR="#ce2ca4" DESTINATION="ID_588438295" ENDARROW="Default" ENDINCLINATION="-1824;71;" ID="Arrow_ID_1583870066" SOURCE="ID_310075674" STARTARROW="None" STARTINCLINATION="-1484;-73;"/>
|
<linktarget COLOR="#ce2ca4" DESTINATION="ID_588438295" ENDARROW="Default" ENDINCLINATION="-1824;71;" ID="Arrow_ID_1583870066" SOURCE="ID_310075674" STARTARROW="None" STARTINCLINATION="-1484;-73;"/>
|
||||||
<icon BUILTIN="smily_bad"/>
|
<icon BUILTIN="smily_bad"/>
|
||||||
<node COLOR="#6b2f01" CREATED="1765477893150" ID="ID_1841000105" MODIFIED="1765477957923" TEXT="das sieht nach einem »Knoten« aus...">
|
<node COLOR="#6b2f01" CREATED="1765477893150" ID="ID_1841000105" MODIFIED="1765477957923" TEXT="das sieht nach einem »Knoten« aus...">
|
||||||
|
|
@ -117216,28 +117321,28 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<icon BUILTIN="hourglass"/>
|
<icon BUILTIN="hourglass"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1769134503678" ID="ID_1525655107" MODIFIED="1769134511862" TEXT=" #1395 resolve integration of BufferProvider with DataSink ">
|
<node COLOR="#338800" CREATED="1769134503678" ID="ID_1525655107" LINK="https://issues.lumiera.org/ticket/1395" MODIFIED="1776106146309" TEXT=" #1395 resolve integration of BufferProvider with DataSink ">
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1770674862520" ID="ID_242088122" LINK="https://issues.lumiera.org/ticket/1410" MODIFIED="1775919683082" TEXT="#1410 clean-up BufferProvider base implementation ">
|
<node COLOR="#338800" CREATED="1770674862520" ID="ID_242088122" LINK="https://issues.lumiera.org/ticket/1410" MODIFIED="1776111247150" TEXT="#1410 clean-up BufferProvider base implementation ">
|
||||||
<arrowlink COLOR="#8e2e41" DESTINATION="ID_372794836" ENDARROW="Default" ENDINCLINATION="-1285;-48;" ID="Arrow_ID_1159201552" STARTARROW="None" STARTINCLINATION="681;36;"/>
|
<arrowlink COLOR="#8e2e41" DESTINATION="ID_372794836" ENDARROW="Default" ENDINCLINATION="-632;0;" ID="Arrow_ID_1159201552" STARTARROW="None" STARTINCLINATION="693;38;"/>
|
||||||
<linktarget COLOR="#005bb9" DESTINATION="ID_242088122" ENDARROW="Default" ENDINCLINATION="929;17;" ID="Arrow_ID_1904693647" SOURCE="ID_666177174" STARTARROW="Default" STARTINCLINATION="-1427;92;"/>
|
<linktarget COLOR="#005bb9" DESTINATION="ID_242088122" ENDARROW="Default" ENDINCLINATION="929;17;" ID="Arrow_ID_1904693647" SOURCE="ID_666177174" STARTARROW="Default" STARTINCLINATION="-1427;92;"/>
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1769310540214" ID="ID_1005260492" MODIFIED="1769310544850" TEXT="Allokations-Schema">
|
<node CREATED="1769310540214" ID="ID_1005260492" MODIFIED="1769310544850" TEXT="Allokations-Schema">
|
||||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1769310548133" ID="ID_98767082" MODIFIED="1769310727903" TEXT="Ansatzpunkt: Requirements">
|
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1769310548133" ID="ID_98767082" MODIFIED="1776112747756" TEXT="Ansatzpunkt: Requirements">
|
||||||
<linktarget COLOR="#ae0f58" DESTINATION="ID_98767082" ENDARROW="Default" ENDINCLINATION="132;-933;" ID="Arrow_ID_747040279" SOURCE="ID_588438295" STARTARROW="None" STARTINCLINATION="170;573;"/>
|
<linktarget COLOR="#ae0f58" DESTINATION="ID_98767082" ENDARROW="Default" ENDINCLINATION="-622;-143;" ID="Arrow_ID_747040279" SOURCE="ID_588438295" STARTARROW="None" STARTINCLINATION="-301;114;"/>
|
||||||
<font NAME="SansSerif" SIZE="12"/>
|
<font NAME="SansSerif" SIZE="12"/>
|
||||||
<icon BUILTIN="forward"/>
|
<icon BUILTIN="forward"/>
|
||||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1769310572218" ID="ID_320895633" MODIFIED="1769310684591" TEXT="muß per DI eingebracht werden">
|
<node COLOR="#435e98" CREATED="1769310572218" FOLDED="true" ID="ID_320895633" MODIFIED="1776112673793" TEXT="muß per DI eingebracht werden">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1769310586327" ID="ID_1386377456" MODIFIED="1770421620338" TEXT="EngineCtx : Möglichkeit für eine Service-Instanz schaffen">
|
<node COLOR="#338800" CREATED="1769310586327" ID="ID_1386377456" MODIFIED="1776106991760" TEXT="EngineCtx : Möglichkeit für eine Service-Instanz schaffen">
|
||||||
<linktarget COLOR="#7f2472" DESTINATION="ID_1386377456" ENDARROW="Default" ENDINCLINATION="174;-1962;" ID="Arrow_ID_246209401" SOURCE="ID_1653845059" STARTARROW="None" STARTINCLINATION="-1022;78;"/>
|
<linktarget COLOR="#7f2472" DESTINATION="ID_1386377456" ENDARROW="Default" ENDINCLINATION="174;-1962;" ID="Arrow_ID_246209401" SOURCE="ID_1653845059" STARTARROW="None" STARTINCLINATION="-1022;78;"/>
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node COLOR="#338800" CREATED="1769310605533" ID="ID_1532935661" MODIFIED="1769310614222" TEXT="brauche erst mal einen Unit-Test">
|
<node COLOR="#338800" CREATED="1769310605533" ID="ID_1532935661" MODIFIED="1769310614222" TEXT="brauche erst mal einen Unit-Test">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1769310701150" ID="ID_1034034754" MODIFIED="1770675111636" TEXT="(als wäre damit irgendwas gewonnen...)">
|
<node BACKGROUND_COLOR="#f3f3dc" COLOR="#c50164" CREATED="1769310701150" ID="ID_1034034754" MODIFIED="1776112545576" TEXT="(als wäre damit irgendwas gewonnen...)">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -117246,9 +117351,23 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<arrowlink COLOR="#5729c1" DESTINATION="ID_363795542" ENDARROW="Default" ENDINCLINATION="-21;-79;" ID="Arrow_ID_118340299" STARTARROW="None" STARTINCLINATION="-21;106;"/>
|
<arrowlink COLOR="#7c7acd" DESTINATION="ID_363795542" ENDARROW="Default" ENDINCLINATION="-82;-7;" ID="Arrow_ID_118340299" STARTARROW="None" STARTINCLINATION="-198;13;"/>
|
||||||
|
<node COLOR="#435e98" CREATED="1776107511046" HGAP="218" ID="ID_706361643" MODIFIED="1776110943534" TEXT="tatsächlich gibt es hier nix zu sehen..." VSHIFT="4">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
...insofern reicht der einfache Testfall, denn der Rest sind generische Mechanismen.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
.....grade eben wollte ich <i>clever werden</i> und einen raffinierten Testfall demonstrieren, in dem ctx().mem durch einen DiagnostricBufferProvider ausgetauscht wird; es zeigte sich, daß <i>das tatsächlich unmöglich ist,</i> weil ich auf mehreren Ebenen das Design »zugenagelt« habe. Und zwar aus der Motivation, daß es niemals gut sein kann, in solchen Angelegenheiten der Applikations-Struktur »clever« zu werden
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<font NAME="SansSerif" SIZE="10"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770415033015" ID="ID_1710866424" MODIFIED="1770415064080" TEXT="EngineCtx::access wäre ein lib::Depend">
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770415033015" FOLDED="true" ID="ID_1710866424" MODIFIED="1776112548360" TEXT="EngineCtx::access wäre ein lib::Depend">
|
||||||
<icon BUILTIN="broken-line"/>
|
<icon BUILTIN="broken-line"/>
|
||||||
<node CREATED="1770415066215" ID="ID_1719444645" MODIFIED="1770415104294" TEXT="warum aber habe ich dann diese EngineCtx::Facilities eingeführt?"/>
|
<node CREATED="1770415066215" ID="ID_1719444645" MODIFIED="1770415104294" TEXT="warum aber habe ich dann diese EngineCtx::Facilities eingeführt?"/>
|
||||||
<node CREATED="1770415105210" ID="ID_900701495" MODIFIED="1770415175073" TEXT="ist das der Versuch, ein bereits gelöstes Problem nochmal „besonders geschickt“ zu lösen??"/>
|
<node CREATED="1770415105210" ID="ID_900701495" MODIFIED="1770415175073" TEXT="ist das der Versuch, ein bereits gelöstes Problem nochmal „besonders geschickt“ zu lösen??"/>
|
||||||
|
|
@ -117329,12 +117448,12 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#971571" CREATED="1770419974790" ID="ID_1600145986" MODIFIED="1770503639789" TEXT="Kritik: das bestehende Design ist übermäßig flexibel">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#971571" CREATED="1770419974790" FOLDED="true" ID="ID_1600145986" MODIFIED="1770503639789" TEXT="Kritik: das bestehende Design ist übermäßig flexibel">
|
||||||
<icon BUILTIN="smily_bad"/>
|
<icon BUILTIN="smily_bad"/>
|
||||||
<node CREATED="1770420004181" ID="ID_1964207644" MODIFIED="1770420018989" TEXT="man könnte mit einer Subklasse den Konstruktor manipulieren"/>
|
<node CREATED="1770420004181" ID="ID_1964207644" MODIFIED="1770420018989" TEXT="man könnte mit einer Subklasse den Konstruktor manipulieren"/>
|
||||||
<node CREATED="1770420022731" ID="ID_1691530462" MODIFIED="1770420038474" TEXT="man könnte aber auch eine Subklasse der Faciities verwenden"/>
|
<node CREATED="1770420022731" ID="ID_1691530462" MODIFIED="1770420038474" TEXT="man könnte aber auch eine Subklasse der Faciities verwenden"/>
|
||||||
<node CREATED="1770420040505" ID="ID_504163818" MODIFIED="1770420050963" TEXT="man könnte das sogar dynamisch konfigurierbar machen"/>
|
<node CREATED="1770420040505" ID="ID_504163818" MODIFIED="1770420050963" TEXT="man könnte das sogar dynamisch konfigurierbar machen"/>
|
||||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1770432826023" ID="ID_1551691272" MODIFIED="1770502751324" TEXT="Problem "virtual Constructor"">
|
<node BACKGROUND_COLOR="#f0c5de" COLOR="#670e65" CREATED="1770432826023" FOLDED="true" ID="ID_1551691272" MODIFIED="1776106235329" TEXT="Problem "virtual Constructor"">
|
||||||
<arrowlink COLOR="#e5273b" DESTINATION="ID_823794124" ENDARROW="Default" ENDINCLINATION="-9;194;" ID="Arrow_ID_980223480" STARTARROW="None" STARTINCLINATION="249;-98;"/>
|
<arrowlink COLOR="#e5273b" DESTINATION="ID_823794124" ENDARROW="Default" ENDINCLINATION="-9;194;" ID="Arrow_ID_980223480" STARTARROW="None" STARTINCLINATION="249;-98;"/>
|
||||||
<icon BUILTIN="broken-line"/>
|
<icon BUILTIN="broken-line"/>
|
||||||
<node CREATED="1770502540037" ID="ID_1385647372" MODIFIED="1770502598466" TEXT="das Konstrukt is so komplex weil ich Unmögliches wollte">
|
<node CREATED="1770502540037" ID="ID_1385647372" MODIFIED="1770502598466" TEXT="das Konstrukt is so komplex weil ich Unmögliches wollte">
|
||||||
|
|
@ -117360,7 +117479,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<icon BUILTIN="stop-sign"/>
|
<icon BUILTIN="stop-sign"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770420145480" ID="ID_846728126" MODIFIED="1770503646889" TEXT="Verbesserungsvorschlag...">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770420145480" ID="ID_846728126" MODIFIED="1776106248798" TEXT="Verbesserungsvorschlag...">
|
||||||
<icon BUILTIN="forward"/>
|
<icon BUILTIN="forward"/>
|
||||||
<node CREATED="1770420157331" ID="ID_861714017" MODIFIED="1770503028758" TEXT="EngineCtx sollte nur ein Front-End sein"/>
|
<node CREATED="1770420157331" ID="ID_861714017" MODIFIED="1770503028758" TEXT="EngineCtx sollte nur ein Front-End sein"/>
|
||||||
<node CREATED="1770420433021" ID="ID_113590275" MODIFIED="1770503301248" TEXT="die Facilities sollten ein (abstraktes?) Interface sein"/>
|
<node CREATED="1770420433021" ID="ID_113590275" MODIFIED="1770503301248" TEXT="die Facilities sollten ein (abstraktes?) Interface sein"/>
|
||||||
|
|
@ -117408,9 +117527,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1770420596604" ID="ID_363795542" MODIFIED="1770426133237" TEXT="neue Implementierungs-Struktur">
|
<node COLOR="#338800" CREATED="1770420596604" FOLDED="true" ID="ID_363795542" MODIFIED="1776112536913" TEXT="neue Implementierungs-Struktur">
|
||||||
<linktarget COLOR="#5729c1" DESTINATION="ID_363795542" ENDARROW="Default" ENDINCLINATION="-21;-79;" ID="Arrow_ID_118340299" SOURCE="ID_1034034754" STARTARROW="None" STARTINCLINATION="-21;106;"/>
|
<linktarget COLOR="#7c7acd" DESTINATION="ID_363795542" ENDARROW="Default" ENDINCLINATION="-82;-7;" ID="Arrow_ID_118340299" SOURCE="ID_1034034754" STARTARROW="None" STARTINCLINATION="-198;13;"/>
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node COLOR="#338800" CREATED="1770420604316" ID="ID_168788558" MODIFIED="1770834596168" TEXT="EngineCtx wird »thin access layer«">
|
<node COLOR="#338800" CREATED="1770420604316" ID="ID_168788558" MODIFIED="1770834596168" TEXT="EngineCtx wird »thin access layer«">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node COLOR="#435e98" CREATED="1770420629697" ID="ID_544649557" MODIFIED="1770834618282" TEXT="der Konstruktor greift per lib::Depend auf die »Facilities« zu"/>
|
<node COLOR="#435e98" CREATED="1770420629697" ID="ID_544649557" MODIFIED="1770834618282" TEXT="der Konstruktor greift per lib::Depend auf die »Facilities« zu"/>
|
||||||
|
|
@ -117452,7 +117571,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node COLOR="#338800" CREATED="1770503567944" ID="ID_137274365" MODIFIED="1770834631708" TEXT="die default-Implementierung verwendet einen »naiven« Memory-Manager">
|
<node COLOR="#338800" CREATED="1770503567944" ID="ID_137274365" MODIFIED="1770834631708" TEXT="die default-Implementierung verwendet einen »naiven« Memory-Manager">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1770421270713" ID="ID_1540227811" MODIFIED="1770503604448" TEXT="für Tests gibt es eine einfache Konfigurations-Variante (Template)">
|
<node BACKGROUND_COLOR="#e0d3aa" COLOR="#400099" CREATED="1770421270713" ID="ID_1540227811" MODIFIED="1776106802962" TEXT="für Tests kann man alternativ direkt einen BufferProvider spezialisieren">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -117461,12 +117580,36 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="idea"/>
|
||||||
<node CREATED="1770675137698" ID="ID_1665398190" MODIFIED="1770675146974" TEXT="und hier wird's ekelhaft..."/>
|
<node CREATED="1770675137698" ID="ID_1665398190" MODIFIED="1770675146974" TEXT="und hier wird's ekelhaft..."/>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f4f" CREATED="1770675147906" ID="ID_1625465015" MODIFIED="1770675210511" TEXT="jetzt steck ich wieder voll im Dickicht fest">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f4f" CREATED="1770675147906" ID="ID_1625465015" MODIFIED="1770675210511" TEXT="jetzt steck ich wieder voll im Dickicht fest">
|
||||||
<arrowlink COLOR="#970f69" DESTINATION="ID_343232968" ENDARROW="Default" ENDINCLINATION="139;518;" ID="Arrow_ID_1217877891" STARTARROW="None" STARTINCLINATION="1159;-107;"/>
|
<arrowlink COLOR="#970f69" DESTINATION="ID_343232968" ENDARROW="Default" ENDINCLINATION="139;518;" ID="Arrow_ID_1217877891" STARTARROW="None" STARTINCLINATION="1159;-107;"/>
|
||||||
<icon BUILTIN="smily_bad"/>
|
<icon BUILTIN="smily_bad"/>
|
||||||
</node>
|
</node>
|
||||||
|
<node COLOR="#435e98" CREATED="1776106806042" ID="ID_200484632" MODIFIED="1776106984187" TEXT="das ist aber ein anderes Thema (und jetzt gelöst)">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
nicht daß das einfach gewesen wäre....
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
wir haben jetzt eine sauber gegliederte innere Struktur im BufferProvider
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
der Konfigurationspunkt liegt im BufferProviderSetup
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
dort können die beiden Säulen der Implementierung (BufferStage und BufferStore) durch geeignete Subklassen realisiert werdn
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
es gibt im BufferProviderSetup nun sogar einen generischen / Template-basierten Proxying-mechanismus, mit dem man nachträglich einen Proxy über eine bestehende Implementierung stülpen kann. Das wird vom DiagnosticBufferProvider genutzt
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770421220703" ID="ID_1342562566" MODIFIED="1770421238601">
|
<node CREATED="1770421220703" ID="ID_1342562566" MODIFIED="1770421238601">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
|
|
@ -117481,17 +117624,98 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1770422601672" ID="ID_859104368" MODIFIED="1770422916570" TEXT="die produktiv-Konfiguration steckt im RenderEnvironment">
|
<node CREATED="1770422601672" ID="ID_859104368" MODIFIED="1770422916570" TEXT="die produktiv-Konfiguration steckt im RenderEnvironment">
|
||||||
<linktarget COLOR="#fef9a9" DESTINATION="ID_859104368" ENDARROW="Default" ENDINCLINATION="-1632;0;" ID="Arrow_ID_694058089" SOURCE="ID_1384111904" STARTARROW="None" STARTINCLINATION="617;39;"/>
|
<linktarget COLOR="#fef9a9" DESTINATION="ID_859104368" ENDARROW="Default" ENDINCLINATION="-1632;0;" ID="Arrow_ID_694058089" SOURCE="ID_1384111904" STARTARROW="None" STARTINCLINATION="617;39;"/>
|
||||||
<linktarget COLOR="#512590" DESTINATION="ID_859104368" ENDARROW="Default" ENDINCLINATION="-2147;102;" ID="Arrow_ID_1419091745" SOURCE="ID_463396735" STARTARROW="None" STARTINCLINATION="957;36;"/>
|
<linktarget COLOR="#512590" DESTINATION="ID_859104368" ENDARROW="Default" ENDINCLINATION="-2147;102;" ID="Arrow_ID_1419091745" SOURCE="ID_463396735" STARTARROW="None" STARTINCLINATION="957;36;"/>
|
||||||
|
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1776106657502" ID="ID_115085624" MODIFIED="1776106679202" TEXT="TODO : Engine hat noch keinen Lebenszyklus">
|
||||||
|
<icon BUILTIN="bell"/>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#435e98" CREATED="1776106681651" ID="ID_1684234172" MODIFIED="1776106700615" TEXT="das Problem mit der Konfiugration ist nun aber gelöst">
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
<node CREATED="1776106715967" ID="ID_39441566" MODIFIED="1776106726689" TEXT="per lib::DebendFactory einen Service installieren"/>
|
||||||
|
<node CREATED="1776106755097" ID="ID_1540194017" MODIFIED="1776106768524" TEXT="dieser implementiert das EngineFacilitiies-Interface"/>
|
||||||
|
<node CREATED="1776106958861" ID="ID_1088586690" MODIFIED="1776106976409" TEXT="und dahinter steht dann der Memory- / Cache-Manager"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1776109977265" ID="ID_1233315274" MODIFIED="1776109998585" TEXT="Achtung: diese Konfiguration ist nur einmal pro Applikation möglich">
|
||||||
|
<icon BUILTIN="clanbomber"/>
|
||||||
|
<node CREATED="1776110004650" ID="ID_792025169" MODIFIED="1776110775014" TEXT="das liegt an den statischen Variablen in EngineCtx">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Und ich wollte das so, explizit, aus zwei Gründen:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
damit niemand »clever« werden kann
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
damit der Code in der RenderEngine nicht durch ein double-checked-Locking muß
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
(Und grade eben merke ich, daß die Versuchung groß ist, hier clever zu werden)
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="smiley-neutral"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1776110017772" ID="ID_1773616030" MODIFIED="1776110723233" TEXT="diese werden beim Erzeugen der Instanz einmalig gebunden">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Ja das sind tatsächlich <b>Referenzen</b> — sie zeigen auf ein einziges Objekt im Speicher, und das kann man nie mehr ändern.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1776110085854" ID="ID_1535962034" MODIFIED="1776110201914" TEXT="und der Lifecycle von globalen Singletons ist bewußt sehr restrikiv">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Sofern das Monostate lib::Depend<TY> einmal in default-Konfiguration instantiiert wurde, sperrt sich die Dependency-Factory dagegen, irgend etwas anderes hier zu injizieren
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="stop-sign"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#d60044" CREATED="1776110969782" ID="ID_216093031" MODIFIED="1776111207073" TEXT="insgesamt habe ich hier alle Türen zugemacht.">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Und zwar nicht durch eine einzige bewußte Entscheidung, sondern vielmehr indem ich immer wieder das Prinzip angewendet habe, besonders »cleveren« Code unmöglich zu machen. Das führt nun dazu, daß man tatsächlich auf eine einzige Instanz festgelegt ist: die Tests verwenden das NaiveBufferSetup, und die Lumiera-Applikation wird <b>eine</b> Gelegenheit haben, eine spezielle Instanz für die Render-Engine zu konfigurieren, mehr nicht.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Im ersten Moment war ich grade eben schockiert, als ich das realisiert habe — aber nach kurzem Nachdenken komme ich zu dem Schluß, daß es <b>gut ist so</b>.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
damit niemand »clever« werden kann
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
damit der Code in der RenderEngine nicht durch ein double-checked-Locking muß
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="closed"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1770579895252" ID="ID_1446919050" MODIFIED="1770675335302" TEXT="Neben-Anforderung: Test-Instrumentierung">
|
</node>
|
||||||
<linktarget COLOR="#f71432" DESTINATION="ID_1446919050" ENDARROW="Default" ENDINCLINATION="-101;-904;" ID="Arrow_ID_1820448517" SOURCE="ID_1895645138" STARTARROW="None" STARTINCLINATION="-1192;48;"/>
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#a1cfe1" COLOR="#032f8d" CREATED="1770579895252" ID="ID_1446919050" MODIFIED="1776112656314" TEXT="Neben-Anforderung: Test-Instrumentierung">
|
||||||
|
<linktarget COLOR="#980115" DESTINATION="ID_1446919050" ENDARROW="Default" ENDINCLINATION="-101;-904;" ID="Arrow_ID_1820448517" SOURCE="ID_1895645138" STARTARROW="None" STARTINCLINATION="-1192;48;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770579908226" ID="ID_903075201" MODIFIED="1770580671407" TEXT="der aktuelle Zustand erscheint verwirrend">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770579908226" ID="ID_903075201" MODIFIED="1770580671407" TEXT="der aktuelle Zustand erscheint verwirrend">
|
||||||
<arrowlink COLOR="#fe5f1d" DESTINATION="ID_343232968" ENDARROW="Default" ENDINCLINATION="-656;28;" ID="Arrow_ID_170574613" STARTARROW="None" STARTINCLINATION="489;-805;"/>
|
<arrowlink COLOR="#fe5f1d" DESTINATION="ID_343232968" ENDARROW="Default" ENDINCLINATION="-656;28;" ID="Arrow_ID_170574613" STARTARROW="None" STARTINCLINATION="489;-805;"/>
|
||||||
<icon BUILTIN="closed"/>
|
<icon BUILTIN="closed"/>
|
||||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1770580686379" ID="ID_372794836" MODIFIED="1770674959952" TEXT="das rechtfertigt einen vorgreifenden Umbau">
|
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1770580686379" ID="ID_372794836" MODIFIED="1770674959952" TEXT="das rechtfertigt einen vorgreifenden Umbau">
|
||||||
<linktarget COLOR="#8e2e41" DESTINATION="ID_372794836" ENDARROW="Default" ENDINCLINATION="-1285;-48;" ID="Arrow_ID_1159201552" SOURCE="ID_242088122" STARTARROW="None" STARTINCLINATION="681;36;"/>
|
<linktarget COLOR="#8e2e41" DESTINATION="ID_372794836" ENDARROW="Default" ENDINCLINATION="-632;0;" ID="Arrow_ID_1159201552" SOURCE="ID_242088122" STARTARROW="None" STARTINCLINATION="693;38;"/>
|
||||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -117537,7 +117761,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1770580842058" ID="ID_1092071064" MODIFIED="1770580848921" TEXT="Verbesserungsvorschlag">
|
<node COLOR="#435e98" CREATED="1770580842058" ID="ID_1092071064" MODIFIED="1776112605130" TEXT="Verbesserungsvorschlag">
|
||||||
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||||
|
<icon BUILTIN="forward"/>
|
||||||
<node CREATED="1770580861010" ID="ID_569005501" MODIFIED="1770580873018" TEXT="den HeapMemProvider wieder aufleben lassen">
|
<node CREATED="1770580861010" ID="ID_569005501" MODIFIED="1770580873018" TEXT="den HeapMemProvider wieder aufleben lassen">
|
||||||
<node CREATED="1770580875370" ID="ID_148441127" MODIFIED="1770582188832" TEXT="könnte man wohl aus bestehender Implementierung unten herauslösen"/>
|
<node CREATED="1770580875370" ID="ID_148441127" MODIFIED="1770582188832" TEXT="könnte man wohl aus bestehender Implementierung unten herauslösen"/>
|
||||||
<node CREATED="1770580907554" ID="ID_182811732" MODIFIED="1770580924246" TEXT="das könnte dann die automatisch bereitgestellte Default-Implementierung werden"/>
|
<node CREATED="1770580907554" ID="ID_182811732" MODIFIED="1770580924246" TEXT="das könnte dann die automatisch bereitgestellte Default-Implementierung werden"/>
|
||||||
|
|
@ -117545,9 +117771,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1770580981868" ID="ID_609182842" MODIFIED="1770580997034" TEXT="DiagnosticBufferProvider als echten Dekorator formulieren"/>
|
<node CREATED="1770580981868" ID="ID_609182842" MODIFIED="1770580997034" TEXT="DiagnosticBufferProvider als echten Dekorator formulieren"/>
|
||||||
<node CREATED="1770581298298" ID="ID_196316257" MODIFIED="1770581311188" TEXT="dafür einen zusätzlichen Diagnose-Adapter bereitstellen"/>
|
<node CREATED="1770581298298" ID="ID_196316257" MODIFIED="1770581311188" TEXT="dafür einen zusätzlichen Diagnose-Adapter bereitstellen"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1770582195640" ID="ID_1493677271" MODIFIED="1776022574920" TEXT="Umsetzung">
|
<node COLOR="#338800" CREATED="1770582195640" FOLDED="true" ID="ID_1493677271" MODIFIED="1776112612544" TEXT="Umsetzung">
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node BACKGROUND_COLOR="#e9dba9" COLOR="#e50cc3" CREATED="1770582202961" ID="ID_1011419192" MODIFIED="1770582247305" TEXT="zOMG !!!">
|
<node BACKGROUND_COLOR="#e9dba9" COLOR="#e50cc3" CREATED="1770582202961" FOLDED="true" ID="ID_1011419192" MODIFIED="1776112574054" TEXT="zOMG !!!">
|
||||||
<icon BUILTIN="smiley-angry"/>
|
<icon BUILTIN="smiley-angry"/>
|
||||||
<node COLOR="#7f3d53" CREATED="1770582252642" ID="ID_266967583" MODIFIED="1770582377162">
|
<node COLOR="#7f3d53" CREATED="1770582252642" ID="ID_266967583" MODIFIED="1770582377162">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
|
|
@ -117738,10 +117964,10 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1770588964880" ID="ID_692469584" MODIFIED="1770588990867" TEXT="TrackingHeapBlockProvider ⟼ HeapMemProvider"/>
|
<node CREATED="1770588964880" ID="ID_692469584" MODIFIED="1770588990867" TEXT="TrackingHeapBlockProvider ⟼ HeapMemProvider"/>
|
||||||
<node CREATED="1770590017550" ID="ID_1783096429" MODIFIED="1770590027209" TEXT="einfache Verwendungen direkt darauf abstellen"/>
|
<node CREATED="1770590017550" ID="ID_1783096429" MODIFIED="1770590027209" TEXT="einfache Verwendungen direkt darauf abstellen"/>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1770590030827" ID="ID_995145745" MODIFIED="1776041905341" TEXT="Schritt-2 : Tracking abstrahieren">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770590030827" ID="ID_995145745" MODIFIED="1776111334194" TEXT="Schritt-2 : Tracking abstrahieren">
|
||||||
<linktarget COLOR="#396eac" DESTINATION="ID_995145745" ENDARROW="Default" ENDINCLINATION="4;-850;" ID="Arrow_ID_468011216" SOURCE="ID_1846831481" STARTARROW="None" STARTINCLINATION="-239;11;"/>
|
<linktarget COLOR="#396eac" DESTINATION="ID_995145745" ENDARROW="Default" ENDINCLINATION="4;-850;" ID="Arrow_ID_468011216" SOURCE="ID_1846831481" STARTARROW="None" STARTINCLINATION="-239;11;"/>
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="full-2"/>
|
||||||
<node COLOR="#4e0f5b" CREATED="1770590041763" FOLDED="true" ID="ID_707087059" MODIFIED="1770826874642" TEXT="DiagnosticBufferProvider als Wrapper redefinieren">
|
<node COLOR="#4e0f5b" CREATED="1770590041763" FOLDED="true" ID="ID_707087059" MODIFIED="1776111268454" TEXT="DiagnosticBufferProvider als Wrapper redefinieren">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<icon BUILTIN="button_cancel"/>
|
<icon BUILTIN="button_cancel"/>
|
||||||
<node COLOR="#435e98" CREATED="1770595708980" ID="ID_1149174165" MODIFIED="1770602338550" TEXT="der PImpl kann direkt eine Subkomponente werden">
|
<node COLOR="#435e98" CREATED="1770595708980" ID="ID_1149174165" MODIFIED="1770602338550" TEXT="der PImpl kann direkt eine Subkomponente werden">
|
||||||
|
|
@ -118996,7 +119222,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<arrowlink COLOR="#6b2e54" DESTINATION="ID_451764803" ENDARROW="Default" ENDINCLINATION="-603;-16;" ID="Arrow_ID_1801817867" STARTARROW="None" STARTINCLINATION="-634;105;"/>
|
<arrowlink COLOR="#6b2e54" DESTINATION="ID_451764803" ENDARROW="Default" ENDINCLINATION="-603;-16;" ID="Arrow_ID_1801817867" STARTARROW="None" STARTINCLINATION="-634;105;"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#25537d" CREATED="1770917116413" ID="ID_40466555" MODIFIED="1775919448312" TEXT="Diagnosefunktionen">
|
<node COLOR="#25537d" CREATED="1770917116413" FOLDED="true" ID="ID_40466555" MODIFIED="1775919448312" TEXT="Diagnosefunktionen">
|
||||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1770917149090" ID="ID_838709024" MODIFIED="1770917152832" TEXT="Registries">
|
<node CREATED="1770917149090" ID="ID_838709024" MODIFIED="1770917152832" TEXT="Registries">
|
||||||
|
|
@ -119112,7 +119338,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#25537d" CREATED="1770917107132" ID="ID_1518034296" MODIFIED="1775919390172" TEXT="Tracking">
|
<node COLOR="#25537d" CREATED="1770917107132" FOLDED="true" ID="ID_1518034296" MODIFIED="1775919390172" TEXT="Tracking">
|
||||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node COLOR="#338800" CREATED="1770949936866" FOLDED="true" ID="ID_1114022707" MODIFIED="1771288363588" TEXT="geeignete Tracking-Punkte identifizieren">
|
<node COLOR="#338800" CREATED="1770949936866" FOLDED="true" ID="ID_1114022707" MODIFIED="1771288363588" TEXT="geeignete Tracking-Punkte identifizieren">
|
||||||
|
|
@ -119388,7 +119614,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1771335613418" ID="ID_389403594" MODIFIED="1776041895459" TEXT="an dieser Stelle: Status-quo bestätigen">
|
<node COLOR="#338800" CREATED="1771335613418" FOLDED="true" ID="ID_389403594" MODIFIED="1776041895459" TEXT="an dieser Stelle: Status-quo bestätigen">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node COLOR="#338800" CREATED="1771335628925" ID="ID_832109359" MODIFIED="1771372132494" TEXT="die beiden Test-Fälle aufräumen">
|
<node COLOR="#338800" CREATED="1771335628925" ID="ID_832109359" MODIFIED="1771372132494" TEXT="die beiden Test-Fälle aufräumen">
|
||||||
<arrowlink COLOR="#445360" DESTINATION="ID_1793741597" ENDARROW="Default" ENDINCLINATION="-400;726;" ID="Arrow_ID_389390476" STARTARROW="Default" STARTINCLINATION="60;-1173;"/>
|
<arrowlink COLOR="#445360" DESTINATION="ID_1793741597" ENDARROW="Default" ENDINCLINATION="-400;726;" ID="Arrow_ID_389390476" STARTARROW="Default" STARTINCLINATION="60;-1173;"/>
|
||||||
|
|
@ -120080,11 +120306,11 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1770590137705" ID="ID_775309144" MODIFIED="1776020644540" TEXT="Schritt-3 : auftrennen">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770590137705" ID="ID_775309144" MODIFIED="1776112166858" TEXT="Schritt-3 : auftrennen">
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="full-3"/>
|
||||||
<node COLOR="#435e98" CREATED="1770590149154" ID="ID_560066313" MODIFIED="1776020786852" TEXT="das verbleibende Buffer-Provider-Interface überprüfen">
|
<node COLOR="#435e98" CREATED="1770590149154" ID="ID_560066313" MODIFIED="1776020786852" TEXT="das verbleibende Buffer-Provider-Interface überprüfen">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node COLOR="#338800" CREATED="1771187992449" ID="ID_879534010" MODIFIED="1771335327258" TEXT="die »zweite Säule« ebenfalls herauslösen">
|
<node COLOR="#338800" CREATED="1771187992449" FOLDED="true" ID="ID_879534010" MODIFIED="1771335327258" TEXT="die »zweite Säule« ebenfalls herauslösen">
|
||||||
<linktarget COLOR="#13ac64" DESTINATION="ID_879534010" ENDARROW="Default" ENDINCLINATION="-1311;87;" ID="Arrow_ID_837039459" SOURCE="ID_1560791221" STARTARROW="None" STARTINCLINATION="198;-860;"/>
|
<linktarget COLOR="#13ac64" DESTINATION="ID_879534010" ENDARROW="Default" ENDINCLINATION="-1311;87;" ID="Arrow_ID_837039459" SOURCE="ID_1560791221" STARTARROW="None" STARTINCLINATION="198;-860;"/>
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1771335329350" ID="ID_1431246803" MODIFIED="1771335346343" TEXT="die darunter liegende BufferMetadata-Impl ist weitgehend gleich geblieben"/>
|
<node CREATED="1771335329350" ID="ID_1431246803" MODIFIED="1771335346343" TEXT="die darunter liegende BufferMetadata-Impl ist weitgehend gleich geblieben"/>
|
||||||
|
|
@ -120746,7 +120972,8 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1773621537410" ID="ID_383386793" MODIFIED="1773621721313" TEXT="im Code ganz nach unten schieben (und im Kommentar kennzeichnen)">
|
<node COLOR="#338800" CREATED="1773621537410" ID="ID_383386793" MODIFIED="1776111912165" TEXT="im Code ganz nach unten schieben (und im Kommentar kennzeichnen)">
|
||||||
|
<arrowlink COLOR="#40827a" DESTINATION="ID_509080173" ENDARROW="Default" ENDINCLINATION="229;-12;" ID="Arrow_ID_145144603" STARTARROW="None" STARTINCLINATION="-618;25;"/>
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1773686891293" ID="ID_207080029" MODIFIED="1773689907012" TEXT="damit kann die lock()-Funktion doch noch private werden">
|
<node COLOR="#338800" CREATED="1773686891293" ID="ID_207080029" MODIFIED="1773689907012" TEXT="damit kann die lock()-Funktion doch noch private werden">
|
||||||
|
|
@ -120771,9 +120998,37 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1771538366852" ID="ID_1595544111" MODIFIED="1772501908170" TEXT="saubere Fehlermeldung wenn keine Allokation möglich ist">
|
<node COLOR="#338800" CREATED="1771538366852" ID="ID_1595544111" MODIFIED="1776112009216" TEXT="saubere Fehlermeldung wenn keine Allokation möglich ist">
|
||||||
<linktarget COLOR="#744d8b" DESTINATION="ID_1595544111" ENDARROW="Default" ENDINCLINATION="628;31;" ID="Arrow_ID_378933605" SOURCE="ID_27406270" STARTARROW="None" STARTINCLINATION="221;-288;"/>
|
<linktarget COLOR="#514d8b" DESTINATION="ID_1595544111" ENDARROW="Default" ENDINCLINATION="628;31;" ID="Arrow_ID_378933605" SOURCE="ID_27406270" STARTARROW="None" STARTINCLINATION="194;-286;"/>
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
|
<node COLOR="#313573" CREATED="1776111631587" HGAP="28" ID="ID_196276143" MODIFIED="1776111968222" TEXT="das erledigt jetzt BufferMetadata::markLocked()" VSHIFT="1">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<div style="background-color: #eee0b5; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 2px">
|
||||||
|
<div style="color: #202020; background-color: #eee0b5; font-family: DejaVu Sans Mono; font-size: 9pt; white-space: pre">
|
||||||
|
<p style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0">
|
||||||
|
<font color="#4a1a65"><b>if</b></font><font color="#3a1f18"> </font><font color="#11123a">(</font><font color="#4a1a65"><b>not</b></font><font color="#3a1f18"> buffer</font><font color="#11123a">)</font>
|
||||||
|
</p>
|
||||||
|
<p style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0">
|
||||||
|
<font color="#4a1a65"><b>throw</b></font><font color="#3a1f18"> </font><font color="#535773">err</font><font color="#65533c">::</font><font color="#8c505c"><b>Fatal</b></font><font color="#11123a">{</font><font color="#996e62"><i>"Attempt to lock for a NULL buffer. Allocation floundered?"</i></font>
|
||||||
|
</p>
|
||||||
|
<p style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0">
|
||||||
|
<font color="#65533c">,</font><font color="#3a1f18"> </font><font color="#95271a">LERR_</font><font color="#11123a">(</font><font color="#3a1f18">BOTTOM_VALUE</font><font color="#11123a">)}</font><font color="#65533c">;</font>
|
||||||
|
</p>
|
||||||
|
<p style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#435e98" CREATED="1776111759696" HGAP="40" ID="ID_509080173" MODIFIED="1776111912165" TEXT="nach dem Aufräumen und Klären der internen Struktur von BufferMetadata" VSHIFT="-20">
|
||||||
|
<linktarget COLOR="#40827a" DESTINATION="ID_509080173" ENDARROW="Default" ENDINCLINATION="229;-12;" ID="Arrow_ID_145144603" SOURCE="ID_383386793" STARTARROW="None" STARTINCLINATION="-618;25;"/>
|
||||||
|
<font NAME="SansSerif" SIZE="10"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#4c4398" CREATED="1771195835031" FOLDED="true" ID="ID_465237496" MODIFIED="1773180355277" TEXT="BufferProvider ⟶ in Vault umziehen">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#4c4398" CREATED="1771195835031" FOLDED="true" ID="ID_465237496" MODIFIED="1773180355277" TEXT="BufferProvider ⟶ in Vault umziehen">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
|
|
@ -121718,7 +121973,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#b3affc" COLOR="#514398" CREATED="1771536576103" ID="ID_580664253" MODIFIED="1775873218706" TEXT="brauche einen Proxy-Buffer-Provider">
|
<node BACKGROUND_COLOR="#b3affc" COLOR="#514398" CREATED="1771536576103" FOLDED="true" ID="ID_580664253" MODIFIED="1775873218706" TEXT="brauche einen Proxy-Buffer-Provider">
|
||||||
<linktarget COLOR="#4200c1" DESTINATION="ID_580664253" ENDARROW="Default" ENDINCLINATION="181;-320;" ID="Arrow_ID_553405939" SOURCE="ID_1312596627" STARTARROW="None" STARTINCLINATION="-172;19;"/>
|
<linktarget COLOR="#4200c1" DESTINATION="ID_580664253" ENDARROW="Default" ENDINCLINATION="181;-320;" ID="Arrow_ID_553405939" SOURCE="ID_1312596627" STARTARROW="None" STARTINCLINATION="-172;19;"/>
|
||||||
<linktarget COLOR="#4300b1" DESTINATION="ID_580664253" ENDARROW="Default" ENDINCLINATION="-769;59;" ID="Arrow_ID_1374111018" SOURCE="ID_48507847" STARTARROW="None" STARTINCLINATION="368;16;"/>
|
<linktarget COLOR="#4300b1" DESTINATION="ID_580664253" ENDARROW="Default" ENDINCLINATION="-769;59;" ID="Arrow_ID_1374111018" SOURCE="ID_48507847" STARTARROW="None" STARTINCLINATION="368;16;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
|
|
@ -121770,8 +122025,16 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1771537887611" ID="ID_776353376" MODIFIED="1771537900564" TEXT="die Dinge liegen aber einfacher hier">
|
<node CREATED="1771537887611" ID="ID_776353376" MODIFIED="1771537900564" TEXT="die Dinge liegen aber einfacher hier">
|
||||||
<node CREATED="1771538184366" ID="ID_1891391373" MODIFIED="1771538193795" TEXT="es muß kein Kontrakt gebrochen werden"/>
|
<node CREATED="1771538184366" ID="ID_1891391373" MODIFIED="1771538193795" TEXT="es muß kein Kontrakt gebrochen werden"/>
|
||||||
<node CREATED="1771538195629" ID="ID_1155287670" MODIFIED="1771538207167" TEXT="man darf nämlich error::State werfen">
|
<node CREATED="1771538195629" ID="ID_1155287670" MODIFIED="1771538207167" TEXT="man darf nämlich error::State werfen">
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1771538290874" ID="ID_27406270" MODIFIED="1772501908170" TEXT="sollte die Fehlermeldung verbessern">
|
<node COLOR="#435e98" CREATED="1771538290874" ID="ID_27406270" MODIFIED="1776112085069" TEXT="nebenbei: sollte die Fehlermeldung verbessern">
|
||||||
<arrowlink COLOR="#744d8b" DESTINATION="ID_1595544111" ENDARROW="Default" ENDINCLINATION="628;31;" ID="Arrow_ID_378933605" STARTARROW="None" STARTINCLINATION="221;-288;"/>
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
...es muß einen regulären Weg geben, wie eine <i>unmögliche Allokation</i> signalisiert wird; tatsächlich erledigt das nun (nach dem Aufräumen und Klären der Rollen) die Implementierung von BufferMetadata::markLocked()
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<arrowlink COLOR="#514d8b" DESTINATION="ID_1595544111" ENDARROW="Default" ENDINCLINATION="628;31;" ID="Arrow_ID_378933605" STARTARROW="None" STARTINCLINATION="194;-286;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
@ -122579,7 +122842,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<linktarget COLOR="#cd4a6d" DESTINATION="ID_913113636" ENDARROW="Default" ENDINCLINATION="-904;-1182;" ID="Arrow_ID_1284038680" SOURCE="ID_364896533" STARTARROW="None" STARTINCLINATION="-599;26;"/>
|
<linktarget COLOR="#cd4a6d" DESTINATION="ID_913113636" ENDARROW="Default" ENDINCLINATION="-904;-1182;" ID="Arrow_ID_1284038680" SOURCE="ID_364896533" STARTARROW="None" STARTINCLINATION="-599;26;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1775919845360" ID="ID_451764803" MODIFIED="1776016424822" TEXT="alter Tracking-Provider überflüssig ⟹ HeapMemBufferStore reimplementieren">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1775919845360" FOLDED="true" ID="ID_451764803" MODIFIED="1776016424822" TEXT="alter Tracking-Provider überflüssig ⟹ HeapMemBufferStore reimplementieren">
|
||||||
<linktarget COLOR="#5a437b" DESTINATION="ID_451764803" ENDARROW="Default" ENDINCLINATION="-665;-21;" ID="Arrow_ID_547536140" SOURCE="ID_744233976" STARTARROW="None" STARTINCLINATION="-532;26;"/>
|
<linktarget COLOR="#5a437b" DESTINATION="ID_451764803" ENDARROW="Default" ENDINCLINATION="-665;-21;" ID="Arrow_ID_547536140" SOURCE="ID_744233976" STARTARROW="None" STARTINCLINATION="-532;26;"/>
|
||||||
<linktarget COLOR="#6b2e54" DESTINATION="ID_451764803" ENDARROW="Default" ENDINCLINATION="-603;-16;" ID="Arrow_ID_1801817867" SOURCE="ID_1994726888" STARTARROW="None" STARTINCLINATION="-634;105;"/>
|
<linktarget COLOR="#6b2e54" DESTINATION="ID_451764803" ENDARROW="Default" ENDINCLINATION="-603;-16;" ID="Arrow_ID_1801817867" SOURCE="ID_1994726888" STARTARROW="None" STARTINCLINATION="-634;105;"/>
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
|
|
@ -122630,6 +122893,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1776007364268" ID="ID_1723598039" MODIFIED="1776016577530" TEXT="Test">
|
<node COLOR="#338800" CREATED="1776007364268" ID="ID_1723598039" MODIFIED="1776016577530" TEXT="Test">
|
||||||
|
<linktarget COLOR="#46a1e8" DESTINATION="ID_1723598039" ENDARROW="Default" ENDINCLINATION="-1296;-350;" ID="Arrow_ID_199980900" SOURCE="ID_394169870" STARTARROW="None" STARTINCLINATION="549;34;"/>
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node COLOR="#435e98" CREATED="1776007453120" FOLDED="true" ID="ID_736206629" MODIFIED="1776016481667" TEXT="Corruption im Heap-Allocator">
|
<node COLOR="#435e98" CREATED="1776007453120" FOLDED="true" ID="ID_736206629" MODIFIED="1776016481667" TEXT="Corruption im Heap-Allocator">
|
||||||
<icon BUILTIN="broken-line"/>
|
<icon BUILTIN="broken-line"/>
|
||||||
|
|
@ -122682,7 +122946,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770827094068" ID="ID_1067363374" MODIFIED="1776022189968">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1770827094068" FOLDED="true" ID="ID_1067363374" MODIFIED="1776112151452">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -122808,7 +123072,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770933762544" ID="ID_389070880" MODIFIED="1770933775068" TEXT="Tendenzen zeichnen sich ab...">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1770933762544" FOLDED="true" ID="ID_389070880" MODIFIED="1776112143269" TEXT="Tendenzen zeichnen sich ab...">
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
<node COLOR="#435e98" CREATED="1770933776885" ID="ID_1667378564" MODIFIED="1776022154935" TEXT="für das Store-Interface">
|
<node COLOR="#435e98" CREATED="1770933776885" ID="ID_1667378564" MODIFIED="1776022154935" TEXT="für das Store-Interface">
|
||||||
<node CREATED="1770933791395" ID="ID_1572913456" MODIFIED="1770934001172" TEXT="...wird überall die buffSize mitgegeben">
|
<node CREATED="1770933791395" ID="ID_1572913456" MODIFIED="1770934001172" TEXT="...wird überall die buffSize mitgegeben">
|
||||||
|
|
@ -123479,7 +123743,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1771532655924" ID="ID_1197925974" MODIFIED="1771532662283" TEXT="OutputSlot">
|
<node CREATED="1771532655924" ID="ID_1197925974" MODIFIED="1771532662283" TEXT="OutputSlot">
|
||||||
<node COLOR="#338800" CREATED="1771532667033" ID="ID_1615837421" MODIFIED="1775871471196" TEXT="zunächst ist das Protokoll zu korrigieren">
|
<node COLOR="#338800" CREATED="1771532667033" ID="ID_1615837421" MODIFIED="1775871471196" TEXT="zunächst ist das Protokoll zu korrigieren">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node COLOR="#435e98" CREATED="1771532702299" ID="ID_1332714293" MODIFIED="1775868517318" TEXT="dokumentiert durch OutputSlotProtocol_test">
|
<node COLOR="#435e98" CREATED="1771532702299" FOLDED="true" ID="ID_1332714293" MODIFIED="1775868517318" TEXT="dokumentiert durch OutputSlotProtocol_test">
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
<node CREATED="1771532730104" ID="ID_874519449" MODIFIED="1771532748289" TEXT="im bestehenden Code lief der Test (mit einer Dummy-Implementierung)"/>
|
<node CREATED="1771532730104" ID="ID_874519449" MODIFIED="1771532748289" TEXT="im bestehenden Code lief der Test (mit einer Dummy-Implementierung)"/>
|
||||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1771532716678" ID="ID_459952316" MODIFIED="1775868197177" TEXT="dieser Test ist nun gebrochen">
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1771532716678" ID="ID_459952316" MODIFIED="1775868197177" TEXT="dieser Test ist nun gebrochen">
|
||||||
|
|
@ -123571,7 +123835,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<arrowlink COLOR="#2c56be" DESTINATION="ID_459952316" ENDARROW="Default" ENDINCLINATION="-137;3;" ID="Arrow_ID_168875434" STARTARROW="Default" STARTINCLINATION="-9;-63;"/>
|
<arrowlink COLOR="#2c56be" DESTINATION="ID_459952316" ENDARROW="Default" ENDINCLINATION="-137;3;" ID="Arrow_ID_168875434" STARTARROW="Default" STARTINCLINATION="-9;-63;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#b6b7c8" COLOR="#322a95" CREATED="1773077173730" ID="ID_76417582" MODIFIED="1775872089201" TEXT="Neubau Diagnose-API ⟺ Vorentwurf Implementierung">
|
<node BACKGROUND_COLOR="#b6b7c8" COLOR="#322a95" CREATED="1773077173730" FOLDED="true" ID="ID_76417582" MODIFIED="1775872089201" TEXT="Neubau Diagnose-API ⟺ Vorentwurf Implementierung">
|
||||||
<linktarget COLOR="#604371" DESTINATION="ID_76417582" ENDARROW="Default" ENDINCLINATION="-588;-641;" ID="Arrow_ID_1083444621" SOURCE="ID_1377276921" STARTARROW="None" STARTINCLINATION="-764;68;"/>
|
<linktarget COLOR="#604371" DESTINATION="ID_76417582" ENDARROW="Default" ENDINCLINATION="-588;-641;" ID="Arrow_ID_1083444621" SOURCE="ID_1377276921" STARTARROW="None" STARTINCLINATION="-764;68;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1773700274163" ID="ID_1831855764" MODIFIED="1773700492223" TEXT="muß dazu das direkte DataSink::emit() ablösen durch ein Proxying">
|
<node CREATED="1773700274163" ID="ID_1831855764" MODIFIED="1773700492223" TEXT="muß dazu das direkte DataSink::emit() ablösen durch ein Proxying">
|
||||||
|
|
@ -143548,8 +143812,9 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1771532229650" ID="ID_1491926682" MODIFIED="1771532234442" TEXT="Subsystem-Einbindung"/>
|
<node CREATED="1771532229650" ID="ID_1491926682" MODIFIED="1771532234442" TEXT="Subsystem-Einbindung"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1771532460133" ID="ID_50065520" MODIFIED="1771532463537" TEXT="Vorbereitungen">
|
<node CREATED="1771532460133" ID="ID_50065520" MODIFIED="1771532463537" TEXT="Vorbereitungen">
|
||||||
<node COLOR="#338800" CREATED="1771532488034" ID="ID_690666245" MODIFIED="1775868388520" TEXT="DiagnosticOutputSlot aufräumen">
|
<node COLOR="#338800" CREATED="1771532488034" FOLDED="true" ID="ID_690666245" MODIFIED="1775868388520" TEXT="DiagnosticOutputSlot aufräumen">
|
||||||
<arrowlink COLOR="#009462" DESTINATION="ID_459952316" ENDARROW="Default" ENDINCLINATION="-843;75;" ID="Arrow_ID_1183488081" STARTARROW="None" STARTINCLINATION="345;27;"/>
|
<arrowlink COLOR="#009462" DESTINATION="ID_459952316" ENDARROW="Default" ENDINCLINATION="-843;75;" ID="Arrow_ID_1183488081" STARTARROW="None" STARTINCLINATION="345;27;"/>
|
||||||
|
<linktarget COLOR="#4589da" DESTINATION="ID_690666245" ENDARROW="Default" ENDINCLINATION="-2571;207;" ID="Arrow_ID_1471098023" SOURCE="ID_1781487969" STARTARROW="None" STARTINCLINATION="-1301;104;"/>
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node COLOR="#338800" CREATED="1773078490823" HGAP="34" ID="ID_474163351" MODIFIED="1775868124349" TEXT="ein neues sinvolleres Diagnose-API entwerfen" VSHIFT="30">
|
<node COLOR="#338800" CREATED="1773078490823" HGAP="34" ID="ID_474163351" MODIFIED="1775868124349" TEXT="ein neues sinvolleres Diagnose-API entwerfen" VSHIFT="30">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
|
|
@ -143751,7 +144016,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1773156241816" ID="ID_1158422515" MODIFIED="1773156277373" TEXT="Anzahl zugleich gesperrter Buffer limitieren"/>
|
<node CREATED="1773156241816" ID="ID_1158422515" MODIFIED="1773156277373" TEXT="Anzahl zugleich gesperrter Buffer limitieren"/>
|
||||||
<node CREATED="1773156341660" ID="ID_407686738" MODIFIED="1773156348999" TEXT="Ausgabezeitfenster limitieren"/>
|
<node CREATED="1773156341660" ID="ID_407686738" MODIFIED="1773156348999" TEXT="Ausgabezeitfenster limitieren"/>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1773156351674" ID="ID_1963645100" MODIFIED="1773156369117" TEXT="die Implementierung wird komplett isoliert geschrieben">
|
<node CREATED="1773156351674" FOLDED="true" ID="ID_1963645100" MODIFIED="1776112380957" TEXT="die Implementierung wird komplett isoliert geschrieben">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1773156370948" ID="ID_794565342" MODIFIED="1773156513730" TEXT="diese Lehre ziehe ich aus dem »Desaster« mit der ersten Implementierung von 2012">
|
<node CREATED="1773156370948" ID="ID_794565342" MODIFIED="1773156513730" TEXT="diese Lehre ziehe ich aus dem »Desaster« mit der ersten Implementierung von 2012">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
|
@ -143891,7 +144156,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1773369169156" ID="ID_214225108" MODIFIED="1774224646822" TEXT="Verbesserungsversuch starten....">
|
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1773369169156" FOLDED="true" ID="ID_214225108" MODIFIED="1776112356228" TEXT="Verbesserungsversuch starten....">
|
||||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1773369183338" ID="ID_1251387186" MODIFIED="1773369195156" TEXT="der PImpl könnte direkt eine Allocation halten"/>
|
<node CREATED="1773369183338" ID="ID_1251387186" MODIFIED="1773369195156" TEXT="der PImpl könnte direkt eine Allocation halten"/>
|
||||||
|
|
@ -144053,7 +144318,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
<arrowlink COLOR="#76516c" DESTINATION="ID_1415408255" ENDARROW="Default" ENDINCLINATION="779;39;" ID="Arrow_ID_1408352744" STARTARROW="None" STARTINCLINATION="468;17;"/>
|
<arrowlink COLOR="#76516c" DESTINATION="ID_1415408255" ENDARROW="Default" ENDINCLINATION="779;39;" ID="Arrow_ID_1408352744" STARTARROW="None" STARTINCLINATION="468;17;"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1773704083017" ID="ID_446456909" MODIFIED="1774223593951" TEXT="Anordnung und Zugriffe sind problematisch in der bestehenden Architektur">
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1773704083017" FOLDED="true" ID="ID_446456909" MODIFIED="1774223593951" TEXT="Anordnung und Zugriffe sind problematisch in der bestehenden Architektur">
|
||||||
<icon BUILTIN="broken-line"/>
|
<icon BUILTIN="broken-line"/>
|
||||||
<node CREATED="1773704097997" ID="ID_1516975322" MODIFIED="1773704108791" TEXT="man will nur einen einzigen BufferProxyAdaptor"/>
|
<node CREATED="1773704097997" ID="ID_1516975322" MODIFIED="1773704108791" TEXT="man will nur einen einzigen BufferProxyAdaptor"/>
|
||||||
<node CREATED="1773704125817" ID="ID_1780250199" MODIFIED="1773704161930" TEXT="aber die »Typ«-Einträge werden in der Connection konfiguriert"/>
|
<node CREATED="1773704125817" ID="ID_1780250199" MODIFIED="1773704161930" TEXT="aber die »Typ«-Einträge werden in der Connection konfiguriert"/>
|
||||||
|
|
@ -144084,7 +144349,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1773704486520" ID="ID_1324797839" MODIFIED="1773704500571" TEXT="sie haben nur den Buffer-Ptr, nicht die dazugehörige Connection"/>
|
<node CREATED="1773704486520" ID="ID_1324797839" MODIFIED="1773704500571" TEXT="sie haben nur den Buffer-Ptr, nicht die dazugehörige Connection"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#435e98" CREATED="1773797100647" ID="ID_425446315" MODIFIED="1774223579568" TEXT="Überlegung: wie könnt man das Problem überhaupt »knacken«">
|
<node COLOR="#435e98" CREATED="1773797100647" FOLDED="true" ID="ID_425446315" MODIFIED="1776112266414" TEXT="Überlegung: wie könnt man das Problem überhaupt »knacken«">
|
||||||
<icon BUILTIN="help"/>
|
<icon BUILTIN="help"/>
|
||||||
<node CREATED="1773797120055" ID="ID_1455782398" MODIFIED="1773797126986" TEXT="mit Gewalt?">
|
<node CREATED="1773797120055" ID="ID_1455782398" MODIFIED="1773797126986" TEXT="mit Gewalt?">
|
||||||
<node CREATED="1773797138856" ID="ID_1366418982" MODIFIED="1773797219006" TEXT="jede DataSink bekommt auch einen Basis-Descriptor(⟼backlink)"/>
|
<node CREATED="1773797138856" ID="ID_1366418982" MODIFIED="1773797219006" TEXT="jede DataSink bekommt auch einen Basis-Descriptor(⟼backlink)"/>
|
||||||
|
|
@ -144184,7 +144449,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node CREATED="1773888426603" ID="ID_888618711" MODIFIED="1773888441501" TEXT="diese enhält einen »delegating-BufferStore«"/>
|
<node CREATED="1773888426603" ID="ID_888618711" MODIFIED="1773888441501" TEXT="diese enhält einen »delegating-BufferStore«"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#008867" CREATED="1773888677730" ID="ID_370790574" MODIFIED="1774225553983">
|
<node COLOR="#008867" CREATED="1773888677730" FOLDED="true" ID="ID_370790574" MODIFIED="1776112264381">
|
||||||
<richcontent TYPE="NODE"><html>
|
<richcontent TYPE="NODE"><html>
|
||||||
<head/>
|
<head/>
|
||||||
<body>
|
<body>
|
||||||
|
|
@ -144946,7 +145211,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#82beb5" COLOR="#0d564f" CREATED="1773456815562" ID="ID_1123444875" MODIFIED="1775868023912" TEXT="Doku">
|
<node BACKGROUND_COLOR="#82beb5" COLOR="#0d564f" CREATED="1773456815562" FOLDED="true" ID="ID_1123444875" MODIFIED="1776112311081" TEXT="Doku">
|
||||||
<arrowlink COLOR="#7e454b" DESTINATION="ID_1937537099" ENDARROW="Default" ENDINCLINATION="1647;-115;" ID="Arrow_ID_1049807970" STARTARROW="None" STARTINCLINATION="-377;112;"/>
|
<arrowlink COLOR="#7e454b" DESTINATION="ID_1937537099" ENDARROW="Default" ENDINCLINATION="1647;-115;" ID="Arrow_ID_1049807970" STARTARROW="None" STARTINCLINATION="-377;112;"/>
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1773456831048" ID="ID_351332396" MODIFIED="1773456833387" TEXT="uml/fig151685.png">
|
<node CREATED="1773456831048" ID="ID_351332396" MODIFIED="1773456833387" TEXT="uml/fig151685.png">
|
||||||
|
|
@ -145057,7 +145322,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
<node COLOR="#435e98" CREATED="1775867661891" ID="ID_1335283877" MODIFIED="1775867728298" TEXT="hab aber wenigstens sichergestellt, daß keine grob falsche Info dort steht"/>
|
<node COLOR="#435e98" CREATED="1775867661891" ID="ID_1335283877" MODIFIED="1775867728298" TEXT="hab aber wenigstens sichergestellt, daß keine grob falsche Info dort steht"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1774223704747" ID="ID_638158996" MODIFIED="1775867748869" TEXT="zur Bewährung: nun den DiagnosticOutputSlot neu implementieren">
|
<node COLOR="#338800" CREATED="1774223704747" FOLDED="true" ID="ID_638158996" MODIFIED="1776112243107" TEXT="zur Bewährung: nun den DiagnosticOutputSlot neu implementieren">
|
||||||
<linktarget COLOR="#158dff" DESTINATION="ID_638158996" ENDARROW="Default" ENDINCLINATION="-1375;-44;" ID="Arrow_ID_288442844" SOURCE="ID_446738731" STARTARROW="None" STARTINCLINATION="-182;266;"/>
|
<linktarget COLOR="#158dff" DESTINATION="ID_638158996" ENDARROW="Default" ENDINCLINATION="-1375;-44;" ID="Arrow_ID_288442844" SOURCE="ID_446738731" STARTARROW="None" STARTINCLINATION="-182;266;"/>
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
<node CREATED="1774225831011" ID="ID_560760852" MODIFIED="1774225878698" TEXT="siehe vorhergehende Überlegungen zum Diagnose-API">
|
<node CREATED="1774225831011" ID="ID_560760852" MODIFIED="1774225878698" TEXT="siehe vorhergehende Überlegungen zum Diagnose-API">
|
||||||
|
|
@ -168351,6 +168616,22 @@ std::cout << tmpl.render({"what", "World"}) << s
|
||||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1773970935147" ID="ID_1484866387" LINK="https://issues.lumiera.org/ticket/878" MODIFIED="1773971010859" TEXT="Lifecycle und Locking überprüfen ⟹ #878">
|
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1773970935147" ID="ID_1484866387" LINK="https://issues.lumiera.org/ticket/878" MODIFIED="1773971010859" TEXT="Lifecycle und Locking überprüfen ⟹ #878">
|
||||||
<icon BUILTIN="yes"/>
|
<icon BUILTIN="yes"/>
|
||||||
</node>
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1776103536113" ID="ID_1781487969" LINK="https://issues.lumiera.org/ticket/819" MODIFIED="1776103773322" TEXT="#819 DiagnosticOutputSlot ">
|
||||||
|
<arrowlink COLOR="#4589da" DESTINATION="ID_690666245" ENDARROW="Default" ENDINCLINATION="-2571;207;" ID="Arrow_ID_1471098023" STARTARROW="None" STARTINCLINATION="-1301;104;"/>
|
||||||
|
<icon BUILTIN="pencil"/>
|
||||||
|
<icon BUILTIN="hourglass"/>
|
||||||
|
<node CREATED="1776103777222" ID="ID_1718408862" MODIFIED="1776103875307" TEXT="2012 hat damit das Design sogar begonnen">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
...und das war eine Notlösung, die einige Verwirrungen nach sich gezogen hat; vor allem, weil ich dann die Implementierung mit dem DiagnosticBufferProvider vermischt habe, und noch schlimmer, direkt in dessen Implementierung eingesprungen bin.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1776103877081" ID="ID_1303301805" LINK="#ID_638158996" MODIFIED="1776103961604" TEXT="2026 wurde dieser abgespalten und re-Implementiert"/>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1773943989131" ID="ID_465864547" MODIFIED="1773943999517" TEXT="konkrete Output-Mechanismen">
|
<node CREATED="1773943989131" ID="ID_465864547" MODIFIED="1773943999517" TEXT="konkrete Output-Mechanismen">
|
||||||
<node CREATED="1773944001483" ID="ID_673165696" MODIFIED="1773944011756" TEXT="Video">
|
<node CREATED="1773944001483" ID="ID_673165696" MODIFIED="1773944011756" TEXT="Video">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue