Invocation: provide functionality to connect lead ports explicitly
...which then also allow to fill in the missing parts for the default 1:1 wiring scheme, which connects each »input slot« of the processing function with the corresponding ''lead node''
This commit is contained in:
parent
43373e11e7
commit
d91d0b5926
5 changed files with 189 additions and 229 deletions
|
|
@ -92,11 +92,14 @@
|
|||
#define ENGINE_NODE_BUILDER_H
|
||||
|
||||
|
||||
#include "lib/error.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
#include "steam/engine/weaving-pattern-builder.hpp"
|
||||
#include "steam/engine/proc-node.hpp"
|
||||
#include "steam/engine/turnout.hpp"
|
||||
#include "lib/several-builder.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
#include "lib/format-string.hpp"
|
||||
#include "lib/iter-index.hpp"
|
||||
#include "lib/test/test-helper.hpp"/////////////////////TODO TOD-oh
|
||||
|
||||
#include <utility>
|
||||
|
|
@ -105,9 +108,11 @@
|
|||
|
||||
namespace steam {
|
||||
namespace engine {
|
||||
namespace err = lumiera::error;
|
||||
|
||||
using std::move;
|
||||
using util::_Fmt;
|
||||
using std::forward;
|
||||
using std::move;
|
||||
|
||||
|
||||
namespace { // default policy configuration to use heap allocator
|
||||
|
|
@ -299,38 +304,56 @@ namespace engine {
|
|||
return move(*this);
|
||||
}
|
||||
|
||||
/** connect the next input slot to existing lead-node given by index */
|
||||
PortBuilder
|
||||
connectLead (uint idx)
|
||||
{
|
||||
UNIMPLEMENTED ("connect the next input slot to existing lead-node given by index");
|
||||
return move(*this);
|
||||
return connectLeadPort (idx, this->defaultPort_);
|
||||
}
|
||||
|
||||
/** connect the next input slot to either existing or new lead-node" */
|
||||
PortBuilder
|
||||
conectLead (ProcNode& leadNode)
|
||||
{
|
||||
UNIMPLEMENTED ("connect the next input slot to either existing or new lead-node");
|
||||
return move(*this);
|
||||
return connectLeadPort (leadNode, this->defaultPort_);
|
||||
}
|
||||
|
||||
/** connect next input to lead-node, using a specific port-number */
|
||||
PortBuilder
|
||||
connectLeadPort (uint idx, uint port)
|
||||
{
|
||||
UNIMPLEMENTED ("connect next input to lead-node, using a specific port-number");
|
||||
if (idx >= _Par::leads_.size())
|
||||
throw err::Logic{_Fmt{"Builder refers to lead-node #%d, yet only %d are currently defined."}
|
||||
% idx % _Par::leads_.size()
|
||||
,LERR_(INDEX_BOUNDS)
|
||||
};
|
||||
weavingBuilder_.attachToLeadPort (_Par::leads_[idx], port);
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
/** connect next input to existing or new lead-node, with given port-number */
|
||||
PortBuilder
|
||||
connectLeadPort (ProcNode& leadNode, uint port)
|
||||
{
|
||||
UNIMPLEMENTED ("connect next input to existing or new lead-node, with given port-number");
|
||||
uint knownEntry{0};
|
||||
for (auto& lead : lib::IterIndex{_Par::leads_})
|
||||
if (util::isSameObject (leadNode, lead))
|
||||
break;
|
||||
else
|
||||
++knownEntry;
|
||||
if (knownEntry == _Par::leads_.size())
|
||||
_Par::addLead (leadNode);
|
||||
|
||||
ENSURE (knownEntry < _Par::leads_.size());
|
||||
weavingBuilder_.attachToLeadPort (knownEntry, port);
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
/** use given port-index as default for all following connections */
|
||||
PortBuilder
|
||||
useLeadPort (uint defaultPort)
|
||||
{
|
||||
UNIMPLEMENTED ("use given port-index as default for all following connections");
|
||||
this->defaultPort_ = defaultPort;
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
|
|
@ -341,7 +364,7 @@ namespace engine {
|
|||
auto
|
||||
completePort()
|
||||
{
|
||||
//////////////////////////////////////////////////////////OOO need to provide all links to lead nodes here
|
||||
weavingBuilder_.connectRemainingInputs (_Par::leads_, this->defaultPort_);
|
||||
weavingBuilder_.fillRemainingBufferTypes();
|
||||
return NodeBuilder{static_cast<NodeBuilder<POL,DAT>&&> (*this) // slice away PortBulder subclass data
|
||||
,weavingBuilder_.sizMark
|
||||
|
|
@ -353,7 +376,7 @@ namespace engine {
|
|||
PortBuilder(_Par&& base, FUN&& fun)
|
||||
: _Par{move(base)}
|
||||
, weavingBuilder_{forward<FUN> (fun), _Par::leads_.policyConnect()}
|
||||
, defaultPort_{0} ////////////////////////////////////////////////////////////////OOO brauche separaten Zähler! wo?
|
||||
, defaultPort_{_Par::patternData_.size()}
|
||||
{ }
|
||||
|
||||
friend class PortBuilderRoot<POL,DAT>;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@
|
|||
#include "steam/engine/turnout-system.hpp"
|
||||
#include "lib/frameid.hpp"
|
||||
#include "lib/ref-array.hpp" /////////////////////OOO phase out
|
||||
#include "lib/format-string.hpp"
|
||||
#include "lib/several.hpp"
|
||||
|
||||
#include <vector>
|
||||
|
|
@ -62,10 +63,12 @@
|
|||
|
||||
namespace steam {
|
||||
namespace engine {
|
||||
namespace err = lumiera::error;
|
||||
|
||||
using std::move;
|
||||
using std::vector; //////////////TODO;
|
||||
using lumiera::NodeID;
|
||||
using util::_Fmt;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Rebuild the Node Invocation
|
||||
class ProcNode;
|
||||
|
|
@ -180,7 +183,11 @@ namespace engine {
|
|||
Port&
|
||||
getPort (uint portIdx)
|
||||
{
|
||||
REQUIRE (portIdx <= wiring_.ports.size());
|
||||
if (portIdx >= wiring_.ports.size())
|
||||
throw err::Logic{_Fmt{"Accessing node-port #%d, while only %d ports are defined."}
|
||||
% portIdx % wiring_.ports.size()
|
||||
,LERR_(INDEX_BOUNDS)
|
||||
};
|
||||
return wiring_.ports[portIdx];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -310,6 +310,8 @@ namespace engine {
|
|||
{
|
||||
BUILD buildEntry;
|
||||
|
||||
uint size() { return 1 + PAR::size(); }
|
||||
|
||||
template<class DAB>
|
||||
void
|
||||
collectEntries (DAB& dataBuilder, uint cntElm =0, uint maxSiz =0)
|
||||
|
|
@ -331,6 +333,8 @@ namespace engine {
|
|||
*/
|
||||
struct PatternDataAnchor
|
||||
{
|
||||
uint size() { return 0; }
|
||||
|
||||
template<class DAB>
|
||||
void
|
||||
collectEntries (DAB& dataBuilder, uint cntElm, uint maxSiz)
|
||||
|
|
@ -373,18 +377,18 @@ namespace engine {
|
|||
, fun_{move(init)}
|
||||
{ }
|
||||
|
||||
WeavingBuilder
|
||||
attachToLeadPort(ProcNode& lead, uint portNr)
|
||||
WeavingBuilder&&
|
||||
attachToLeadPort (ProcNode& lead, uint portNr)
|
||||
{
|
||||
PortRef portRef{lead.getPort (portNr)};
|
||||
leadPorts.append (portRef);
|
||||
ENSURE (leadPorts.size() <= N);
|
||||
ENSURE (leadPorts.size() <= N); /////////////////////////////////////OOO must throw exception here, since bounds can be violated by API usage
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
template<class BU>
|
||||
WeavingBuilder
|
||||
appendBufferTypes(uint cnt)
|
||||
WeavingBuilder&&
|
||||
appendBufferTypes (uint cnt)
|
||||
{
|
||||
while (cnt--)
|
||||
buffTypes.emplace_back([](BufferProvider& provider)
|
||||
|
|
@ -393,7 +397,7 @@ namespace engine {
|
|||
return move(*this);
|
||||
}
|
||||
|
||||
WeavingBuilder
|
||||
WeavingBuilder&&
|
||||
fillRemainingBufferTypes()
|
||||
{
|
||||
auto constexpr FAN_O = FunSpec::FAN_O;
|
||||
|
|
@ -402,8 +406,20 @@ namespace engine {
|
|||
return appendBufferTypes<BuffO>(cnt);
|
||||
}
|
||||
|
||||
WeavingBuilder
|
||||
selectResultSlot(uint idx)
|
||||
WeavingBuilder&&
|
||||
connectRemainingInputs (DataBuilder<POL, ProcNodeRef>& knownLeads, uint defaultPort)
|
||||
{
|
||||
auto constexpr FAN_I = FunSpec::FAN_I;
|
||||
REQUIRE (leadPorts.size() <= FAN_I);
|
||||
uint cnt = FAN_I - leadPorts.size();
|
||||
REQUIRE (leadPorts.size() + cnt <= knownLeads.size()); ////////////////////OOO determine if this should also be rather an exception?
|
||||
while (cnt--)
|
||||
attachToLeadPort (knownLeads[leadPorts.size()], defaultPort);
|
||||
return move(*this);
|
||||
}
|
||||
|
||||
WeavingBuilder&&
|
||||
selectResultSlot (uint idx)
|
||||
{
|
||||
this->resultSlot = idx;
|
||||
return move(*this);
|
||||
|
|
|
|||
|
|
@ -78,9 +78,9 @@ namespace test{
|
|||
|
||||
|
||||
|
||||
/*****************************************************************//**
|
||||
* @test demonstrate and cover the properties of IterCursor.
|
||||
* This wrapper allows to change between iterating forward and backwards.
|
||||
/************************************************************************//**
|
||||
* @test verify adapter to iterate and navigate over array-like content,
|
||||
* that can be accessed through subscript operator and `size()` function.
|
||||
*
|
||||
* @see iter-cursor.hpp
|
||||
* @see iter-adapter.hpp
|
||||
|
|
|
|||
|
|
@ -9322,9 +9322,7 @@
|
|||
</node>
|
||||
<node CREATED="1512844696922" FOLDED="true" ID="ID_396632754" MODIFIED="1561827469129" TEXT="zusätzlicher Dekorator">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...setzt eigentliche Expand-Operation darunter voraus
|
||||
|
|
@ -9503,9 +9501,7 @@
|
|||
<node CREATED="1512439845112" ID="ID_751119405" MODIFIED="1512439849499" TEXT="geht nicht"/>
|
||||
<node CREATED="1512439850087" ID="ID_1018141727" MODIFIED="1512440143615">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das IterStateWrapper-API ist <i>optimal</i>
|
||||
|
|
@ -9575,9 +9571,7 @@
|
|||
</node>
|
||||
<node CREATED="1512440238859" ID="ID_1975957673" MODIFIED="1512440262159" TEXT="wir brauchen hier gar keinen "Extension Point"">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ganz anders als bei IterAdapter, wo das Sinn macht...
|
||||
|
|
@ -9692,9 +9686,7 @@
|
|||
</node>
|
||||
<node CREATED="1512794183629" ID="ID_783686672" MODIFIED="1512794297194" TEXT="inzwischen ein Workaround">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
|
|
@ -10027,9 +10019,7 @@
|
|||
</node>
|
||||
<node CREATED="1512706162921" ID="ID_601609235" MODIFIED="1512706394332" TEXT="ab C++17 ist das anders">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...dort wird einfach on-demand in der Basisklasse nachgeschaut.
|
||||
|
|
@ -10049,9 +10039,7 @@
|
|||
</node>
|
||||
<node CREATED="1512706405155" ID="ID_1013782130" MODIFIED="1512706515474">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Allerdings genügt es, dies an <i>einer</i> Stelle in der Kette zu ergänzen
|
||||
|
|
@ -10059,9 +10047,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und zwar genau dort, wo erstmals ein Basis-Objekt akzeptiert wird.
|
||||
|
|
@ -10077,9 +10063,7 @@
|
|||
</node>
|
||||
<node CREATED="1512706516628" ID="ID_1092840037" MODIFIED="1512706656273">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
übrigens ist es im IterSource<T>::iterator <i>nicht</i>  notwendig
|
||||
|
|
@ -10154,9 +10138,7 @@
|
|||
<node CREATED="1512789847183" ID="ID_1699957562" MODIFIED="1512789865193" TEXT="es sollte sich am "state core"-Schema orientieren"/>
|
||||
<node CREATED="1512789870516" ID="ID_1318870340" LINK="http://issues.lumiera.org/ticket/1125" MODIFIED="1512794035043">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Ticket machen: <font color="#b90736">#1125</font>
|
||||
|
|
@ -10501,9 +10483,7 @@
|
|||
</node>
|
||||
<node CREATED="1512621383815" FOLDED="true" ID="ID_1705587551" MODIFIED="1561827469131" TEXT="Problem: shallow copy">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
rein ein Problem mit der Test-Fixture.
|
||||
|
|
@ -10663,9 +10643,7 @@
|
|||
<node CREATED="1513036452217" ID="ID_526681708" MODIFIED="1513036460131" TEXT="permutierte, iterierbare Kopie dieser"/>
|
||||
<node CREATED="1513036690929" ID="ID_956797377" LINK="http://en.cppreference.com/w/cpp/algorithm/random_shuffle" MODIFIED="1513036739059">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
siehe <font color="#4423e3"><b>std::shuffle</b></font>
|
||||
|
|
@ -11133,9 +11111,7 @@
|
|||
<node CREATED="1513564496228" ID="ID_559674728" MODIFIED="1513564503503" TEXT="wird erst hinter IterSource konform"/>
|
||||
<node CREATED="1513564546974" ID="ID_301275475" MODIFIED="1513887480560" TEXT="wirklich relevantes Problem">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...weil es mutmaßlich
|
||||
|
|
@ -11167,9 +11143,7 @@
|
|||
</node>
|
||||
<node CREATED="1513859477704" FOLDED="true" ID="ID_1667428111" MODIFIED="1525124214849">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Expand-Funktor hat <i>einen</i> Rückgabe-Typ
|
||||
|
|
@ -11307,9 +11281,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...will sagen
|
||||
|
|
@ -11407,9 +11379,7 @@
|
|||
<node CREATED="1513962370870" ID="ID_1858133966" MODIFIED="1513962394590" TEXT="in einen komplett generischen Iterator-Typ"/>
|
||||
<node CREATED="1514086892237" ID="ID_1709677569" MODIFIED="1514087030296" TEXT="depth() bleibt vorerst relativ">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...mal sehen, ob wir jemals daran anstoßen...
|
||||
|
|
@ -11422,9 +11392,7 @@
|
|||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<node CREATED="1513961791716" FOLDED="true" ID="ID_996099359" MODIFIED="1561827469134" TEXT="zusätzliche Heap-Alloc für jedes Expand">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
gemeint ist,
|
||||
|
|
@ -11501,9 +11469,7 @@
|
|||
<node CREATED="1513966819268" ID="ID_725108588" MODIFIED="1513966823134" TEXT="hier aber wohl einfacher"/>
|
||||
<node CREATED="1513966826779" ID="ID_806221726" MODIFIED="1513966853280" TEXT="könnte blueprint sein??">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
IterSource muß insgesamt besser erweiterbar werden....
|
||||
|
|
@ -11519,9 +11485,7 @@
|
|||
<node CREATED="1513980786024" ID="ID_906988400" MODIFIED="1513980803442" TEXT="front-End ist IterExploreSource, ohne Wenn und Aber"/>
|
||||
<node CREATED="1513980816020" ID="ID_1544667042" MODIFIED="1513980839954">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
der Expander sitzt nun doch <i>dahinter,</i> in der Implementierung
|
||||
|
|
@ -11544,9 +11508,7 @@
|
|||
<node CREATED="1513981215822" ID="ID_1059471923" MODIFIED="1513981236247" TEXT="welcher das TreeStructureNavigator-Interface nutzt"/>
|
||||
<node CREATED="1513981274958" ID="ID_895258746" MODIFIED="1513981289179">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das Ergebnis ist der <b>konkrete Iterator-Typ</b>
|
||||
|
|
@ -11632,9 +11594,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1514257226775" ID="ID_813552503" MODIFIED="1514260900863" TEXT="workaround: mitlauschen...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Wire-Tap-Implementierung
|
||||
|
|
@ -11657,9 +11617,7 @@
|
|||
<node CREATED="1514291765589" ID="ID_1350779896" MODIFIED="1514291778528" TEXT="(tree,depth) ist eine Art Koordinate hier"/>
|
||||
<node CREATED="1514291781156" ID="ID_1324645338" MODIFIED="1514291796321">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das heißt, depth ist <i>aktuelle</i> Tiefe!
|
||||
|
|
@ -11756,9 +11714,7 @@
|
|||
<node CREATED="1514338641730" ID="ID_878171387" MODIFIED="1514908827233" TEXT="scheduleExpansion()"/>
|
||||
<node BACKGROUND_COLOR="#e2f2c8" CREATED="1514827974184" ID="ID_1774080036" MODIFIED="1514908873138">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ist <i>partielle </i>Lösung
|
||||
|
|
@ -11778,9 +11734,7 @@
|
|||
<node CREATED="1514828365236" ID="ID_596741108" MODIFIED="1514828377582" TEXT="per Seiteneffekt auf den privaten Resolver-state"/>
|
||||
<node CREATED="1514828408694" ID="ID_360791024" MODIFIED="1514828619139">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>Ergebnis-Ausgabe </i>ist die jeweilige mögliche Coverage
|
||||
|
|
@ -11832,9 +11786,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1514942372976" ID="ID_1541868169" MODIFIED="1515034395295" TEXT="feststellen, ob coverage real oder möglich">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...insofern wir nur eine (partielle) Lösung signalisieren,
|
||||
|
|
@ -12015,9 +11967,7 @@
|
|||
</node>
|
||||
<node COLOR="#990000" CREATED="1514829238960" FOLDED="true" ID="ID_1556354374" MODIFIED="1576282358121" TEXT="Varianten definieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
YAGNI
|
||||
|
|
@ -12079,9 +12029,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1514942216013" ID="ID_1147733516" MODIFIED="1515034537518" TEXT="Prädikate spiegeln stets den Zustand der UI-Coord">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und nicht den <i>möglichen</i> Zustand.
|
||||
|
|
@ -12205,9 +12153,7 @@
|
|||
<node CREATED="1515120863655" ID="ID_1222552441" MODIFIED="1518487921065" TEXT="werden stets schon vom Konstrukor bereinigt"/>
|
||||
<node COLOR="#338800" CREATED="1515120874318" ID="ID_282902710" MODIFIED="1518487921065">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
kann jedoch demonstrieren,
|
||||
|
|
@ -12345,9 +12291,7 @@
|
|||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1508538979935" ID="ID_1139910958" MODIFIED="1576282358119" TEXT="immer explizit">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...das heißt: keine Wildcards, keine pseudo-Specs (currentWindow)
|
||||
|
|
@ -12363,9 +12307,7 @@
|
|||
<node CREATED="1508619329420" ID="ID_360997488" MODIFIED="1508619334447" TEXT="in: expliziter Pfad"/>
|
||||
<node CREATED="1508619335131" ID="ID_327874233" MODIFIED="1576282358119" TEXT="out: Anker-Literal">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Zweck ist vor allem, meta-Specs wie firstWindow, currentWindow aufzulösen
|
||||
|
|
@ -12388,9 +12330,7 @@
|
|||
</node>
|
||||
<node CREATED="1509319992204" HGAP="60" ID="ID_258976142" MODIFIED="1576282358118" TEXT="prototypische Implementierung...." VSHIFT="21">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...verwendet einen GenNode-Tree
|
||||
|
|
@ -12405,9 +12345,7 @@
|
|||
</node>
|
||||
<node CREATED="1506957414370" ID="ID_848105210" MODIFIED="1518487921066">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Integration ViewLocator
|
||||
|
|
@ -12430,9 +12368,7 @@
|
|||
<node CREATED="1515884183937" ID="ID_1146786067" MODIFIED="1518487921066" TEXT="explizit per Typ"/>
|
||||
<node CREATED="1515884193464" ID="ID_680693474" MODIFIED="1533608413664">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
aber auch: <b>Resolver</b>
|
||||
|
|
@ -12459,9 +12395,7 @@
|
|||
</node>
|
||||
<node CREATED="1515885762754" ID="ID_657098401" MODIFIED="1576282358118" TEXT="ist OK">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
die Regel ist:
|
||||
|
|
@ -12485,9 +12419,7 @@
|
|||
<node CREATED="1515884955620" ID="ID_1330012545" MODIFIED="1518487921066" TEXT="manipuliert Zustand, nicht Struktur"/>
|
||||
<node CREATED="1515885006181" ID="ID_150080053" MODIFIED="1518487921066">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
implementiert <b>LocationQuery</b>
|
||||
|
|
@ -12520,9 +12452,7 @@
|
|||
<node CREATED="1515877545642" ID="ID_1723275956" MODIFIED="1518487921066" TEXT="lebt in der Implementierung"/>
|
||||
<node CREATED="1515877577414" ID="ID_664776417" MODIFIED="1576282358117" TEXT="Bausteine sind sichtbar...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...als Namespace-globale Variable mit externer Linkage
|
||||
|
|
@ -12532,9 +12462,7 @@
|
|||
</node>
|
||||
<node COLOR="#435e98" CREATED="1523117792890" ID="ID_1972679538" MODIFIED="1576282358117" TEXT="Effizienz mäßig/unkritisch">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Ein Lookup-Vorgang ist schon ehr aufwendig,
|
||||
|
|
@ -12585,9 +12513,7 @@
|
|||
<node CREATED="1522809068294" ID="ID_1952538901" MODIFIED="1522809098365" TEXT="LocatorSpec in der DSL hat ein Depend<UILocationSolver>"/>
|
||||
<node CREATED="1522809099593" ID="ID_627167110" MODIFIED="1522809142602">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...welcher wiederum von ViewLocator <i>betrieben</i>
|
||||
|
|
@ -12679,9 +12605,7 @@
|
|||
<node CREATED="1516148190821" ID="ID_1390287231" MODIFIED="1518487921067" TEXT="Koordinaten-Ergänzung muß im Locator erfolgen"/>
|
||||
<node CREATED="1516909726125" ID="ID_1451248007" MODIFIED="1518487921067">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<b>existing()</b> sollte <i>default</i> sein und <b>create()</b> explizit anzufordern
|
||||
|
|
@ -12689,9 +12613,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
weil der größte Teil aller real anzugebenden Regel-Klauseln
|
||||
|
|
@ -12717,9 +12639,7 @@
|
|||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1516916468901" ID="ID_1527047531" MODIFIED="1518487921067">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>komplett definierter</i> Pfad incl Zielobjekt
|
||||
|
|
@ -12729,9 +12649,7 @@
|
|||
</node>
|
||||
<node CREATED="1516916496673" ID="ID_1162890109" MODIFIED="1518487921067">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ggfs wird <i>höchstes ein abschließendes</i> Element hinzugefügt
|
||||
|
|
@ -12741,9 +12659,7 @@
|
|||
</node>
|
||||
<node CREATED="1516916543155" ID="ID_458920753" MODIFIED="1518487921067">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
dieser Pfad ist stets <i>anchored</i> und <i>partially covered</i>
|
||||
|
|
@ -12768,9 +12684,7 @@
|
|||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1517011717447" ID="ID_1098719627" MODIFIED="1518487921067" TEXT="daß es typischerweise nur eine Perspektive gibt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
zwar könnte es (später mal) sein,
|
||||
|
|
@ -12802,9 +12716,7 @@
|
|||
</node>
|
||||
<node CREATED="1517011745635" ID="ID_1001739741" MODIFIED="1518487921067" TEXT="aber dies einen Wildcard zur Folge hat, der eine Lösung verhindern kann">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und zwar genau dann, wenn bereits die nächste Komponente unterhalb der Perspektive,
|
||||
|
|
@ -12840,9 +12752,7 @@
|
|||
<node CREATED="1517012382901" FOLDED="true" ID="ID_273084853" MODIFIED="1561827469153" TEXT="Pro">
|
||||
<node CREATED="1517012386556" ID="ID_391025327" MODIFIED="1518487921068" TEXT="funktioniert zuverlässig">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...sofern es stets eine Perspektive geben muß
|
||||
|
|
@ -12884,9 +12794,7 @@
|
|||
</node>
|
||||
<node CREATED="1517012879513" ID="ID_391823235" MODIFIED="1518487921068" TEXT="muß sowiso noch nachimplementiert werden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>"muß"</i> ist relativ, denn mit den bisherigen Anforderungen
|
||||
|
|
@ -12905,9 +12813,7 @@
|
|||
</node>
|
||||
<node CREATED="1517012889559" ID="ID_1411847979" MODIFIED="1518487921068" TEXT="fügt sich organisch in die Implementierung ein">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Die korrekte Semantik fällt uns hier wirklich in den Schoß,
|
||||
|
|
@ -12923,9 +12829,7 @@
|
|||
<node CREATED="1517012996289" ID="ID_251225300" MODIFIED="1518487921068" TEXT="magisch und subtil"/>
|
||||
<node CREATED="1517013001144" ID="ID_711459982" MODIFIED="1518487921068" TEXT="zwei verschiedene Wildcards">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wobei einer, nämlich '*' sehr offensichtlich und bekannt ist,
|
||||
|
|
@ -12938,9 +12842,7 @@
|
|||
</node>
|
||||
<node CREATED="1517013053265" ID="ID_1569479466" MODIFIED="1518487921068" TEXT="gewisses Mißbrauchs-Potential">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...weil es eigentlich ein Wildcard ist,
|
||||
|
|
@ -12956,9 +12858,7 @@
|
|||
</node>
|
||||
<node CREATED="1517013164050" ID="ID_623452791" MODIFIED="1518487921068" TEXT="mehrfach-Lösungen nicht offensichtlich">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Korrekter Gebrauch setzt eigentlich voraus,
|
||||
|
|
@ -13002,9 +12902,7 @@
|
|||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1517018164354" ID="ID_308763864" MODIFIED="1518487921068" TEXT="würde theoretisch gehen...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
bloß würde sich die Signatur der DSL-Bausteine ändern:
|
||||
|
|
@ -13033,9 +12931,7 @@
|
|||
</node>
|
||||
<node CREATED="1517018198398" ID="ID_986073860" MODIFIED="1518487921068" TEXT="sonst muß man halt noch mal traversieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Der Punkt ist: das ist eine reine Lauzeit/Effzienz-Überlegung.
|
||||
|
|
@ -13074,9 +12970,7 @@
|
|||
</node>
|
||||
<node CREATED="1517018183472" ID="ID_1424416822" MODIFIED="1518487921068" TEXT="als Optimierung auf später vertagt...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das ist der klassische Fall, wo man wegen einer solchen Optimierung
|
||||
|
|
@ -13105,9 +12999,7 @@
|
|||
</node>
|
||||
<node CREATED="1518658902747" FOLDED="true" ID="ID_976555378" MODIFIED="1576282358116" TEXT="entspricht der Unifikation in Logik-Programmierung">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...insofern auch dort
|
||||
|
|
@ -13153,9 +13045,7 @@
|
|||
<node CREATED="1517084664528" ID="ID_749914799" MODIFIED="1518487921068" TEXT="wir traversieren / matchen erneut"/>
|
||||
<node CREATED="1517084673487" ID="ID_114406974" MODIFIED="1518487921068" TEXT="Optimierung wäre ein View-Index">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
das ist eine typische, rein lokale Optimierung (Speicher vs CPU)
|
||||
|
|
@ -13186,9 +13076,7 @@
|
|||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1517504917464" ID="ID_708832973" MODIFIED="1518487921068">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
es gibt <i>nur einen</i> "Locator"
|
||||
|
|
@ -13246,9 +13134,7 @@
|
|||
<node CREATED="1517021372159" FOLDED="true" ID="ID_841350723" MODIFIED="1561827483830" TEXT="location">
|
||||
<node CREATED="1518840121972" ID="ID_989066633" MODIFIED="1522938419001">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ein <b>LocationSolver</b>
|
||||
|
|
@ -13259,9 +13145,7 @@
|
|||
</node>
|
||||
<node CREATED="1517021326957" ID="ID_20403834" MODIFIED="1522938411626">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<b>LocationQuery</b> qua Navigator
|
||||
|
|
@ -13272,9 +13156,7 @@
|
|||
</node>
|
||||
<node CREATED="1517021298929" ID="ID_621970077" MODIFIED="1518487921069">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...die es <i>hinten herum</i> bekommt
|
||||
|
|
@ -13287,9 +13169,7 @@
|
|||
<node CREATED="1517021395067" ID="ID_1609814715" MODIFIED="1518487921069" TEXT="die konkreten Allokatoren"/>
|
||||
<node CREATED="1517021415017" ID="ID_1692689619" MODIFIED="1522938396840">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
sehen <b>ViewLocator</b>-API
|
||||
|
|
@ -48665,9 +48545,7 @@
|
|||
</node>
|
||||
<node CREATED="1456425930718" ID="ID_1301765327" MODIFIED="1456437520772" TEXT="real-Daten im DOM">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
damit das DOM ein echtes DOM ist, muß es die relevanten real-Daten duplizieren,
|
||||
|
|
@ -49393,9 +49271,7 @@
|
|||
</node>
|
||||
<node CREATED="1582390900917" ID="ID_1137278126" MODIFIED="1582390969068" TEXT="ID (Bus-Term-ID) bekommt man per getID()">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
anfangs hatte ich da eine implizite Konvertierung. Man konnte schreiben ID{xyz}. Das war cool; und verwirrend; und hat jede Menge Ärger gemacht, wie immer
|
||||
|
|
@ -49906,9 +49782,7 @@
|
|||
<node CREATED="1448070618434" ID="ID_1925738380" MODIFIED="1557498707235" TEXT="Zuordnung">
|
||||
<node CREATED="1448406963801" ID="ID_1506114314" MODIFIED="1557498707235">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Bus-Design is <b>selbstähnlich</b>
|
||||
|
|
@ -50079,9 +49953,7 @@
|
|||
</node>
|
||||
<node CREATED="1453546268998" ID="ID_1692848170" MODIFIED="1576282358004" TEXT="Event-Log">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Mechanismus, der es erlaubt
|
||||
|
|
@ -50358,9 +50230,7 @@
|
|||
</node>
|
||||
<node CREATED="1453590628419" ID="ID_1314031268" MODIFIED="1453590885601">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wir verwenden die Basis-VTable
|
||||
|
|
@ -88400,8 +88270,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
...denn es sind noch die flexiblen Strategy-Templates darüber gelegt, und außerdem hatte ich den eigentlichen Allocator nur als protected-Mix-in eingebettet — und deshalb wird der für einen normalen (generierten) copy-Konstruktor nicht in sichtbar; kopiert würde ja auf dem gesamten (zusammengesetzten) Strategy-Template, und das hängt nominell durchaus vom Element-Typ ab, der aber in diesem Fall, beim Weitergeben einer Initialisierung, durchaus variabel sein kann (nur der Basis-Allokator ist stets kompatibel)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#835537" DESTINATION="ID_771040034" ENDARROW="Default" ENDINCLINATION="14;-51;" ID="Arrow_ID_53225453" STARTARROW="None" STARTINCLINATION="-75;7;"/>
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
</node>
|
||||
|
|
@ -88430,8 +88299,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
damit man von einem existierenden SeveralBuilder ausgehend weiter verdrahten kann
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1729817449159" ID="ID_1426982286" MODIFIED="1729817506616" TEXT="muß den durchgereichten ctor von der ElementFactory flexibel machen">
|
||||
|
|
@ -88445,8 +88313,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<i>Konzeptionell </i>ist das Strategy-Template offen angelegt, aber <i>in der tatsächlichen Implementierung</i> dürfte seine Rolle inzwischen weitgehend festgelegt sein. Und in diesem aktuellen Gebrauch spielt der Element-Typ nur eine Rolle zur Ansteuerung des Allocators, und auch die Konstruktor-Argumente werden komplett von oben bis auf die Basis-Ebene durchgereicht. Da zudem der Basis-Allocator an den C++-Standard angelehnt ist, kann man unterstellen, daß sich praktisch immer ein passender Alocator für einen anderen als den gegebenen Element-Typ konstruieren läßt.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -90505,19 +90372,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
weil nur der PortBuilder seine eigene Position erschließen kann (weil er auf den geerbten DataBuilder zugreifen kann)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#636e77" DESTINATION="ID_1876187632" ENDARROW="Default" ENDINCLINATION="95;-2208;" ID="Arrow_ID_508627026" SOURCE="ID_322570697" STARTARROW="None" STARTINCLINATION="-946;47;"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1729824794902" ID="ID_773941137" MODIFIED="1729824924642" TEXT="nein: sogar eine Ebene höher?">
|
||||
<node COLOR="#435e98" CREATED="1729824794902" ID="ID_773941137" MODIFIED="1729868602025" TEXT="nein: sogar eine Ebene höher?">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1729824942675" ID="ID_1214779054" LINK="#ID_1804465000" MODIFIED="1729825085282" TEXT="der DataBuilder für die Ports ist nun transient">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1729825097094" ID="ID_675110705" MODIFIED="1729825121710" TEXT="nochmal eine weitere temporäre Variable einführen??">
|
||||
<node COLOR="#435e98" CREATED="1729825097094" ID="ID_675110705" MODIFIED="1729868587491" TEXT="nochmal eine weitere temporäre Variable einführen??">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1729825128179" ID="ID_26277636" MODIFIED="1729825177117" TEXT="man könnte das default-Setting mißbrauchen">
|
||||
<node COLOR="#5b280f" CREATED="1729825128179" ID="ID_26277636" MODIFIED="1729868509542" TEXT="man könnte das default-Setting mißbrauchen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -90525,10 +90391,58 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
d.h. der Default würde mit hochgezählt, kann aber per Setter auf andere Werte gesetzt werden
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node COLOR="#c11552" CREATED="1729868513189" ID="ID_1857565201" MODIFIED="1729868529579" TEXT="das wäre überraschend">
|
||||
<font NAME="SansSerif" SIZE="9"/>
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1729868538101" ID="ID_1948848092" MODIFIED="1729868566858" TEXT="besser sinngemäß auf die neue (funktionale) Datenstruktur überragen"/>
|
||||
<node CREATED="1729868567942" ID="ID_791207809" MODIFIED="1729868585239" TEXT="auch das ist eine Art von Collection, die man zählen kann"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1729868604121" ID="ID_1702035136" MODIFIED="1729868633429" TEXT="Konsequenz: der Default kommt jetzt aus NodeBuilder::patternData_">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1729872260939" ID="ID_1699716079" MODIFIED="1729872282289" TEXT="Kollaboration zwischen PortBuilder und WeavingBuilder">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1729872286056" ID="ID_100746695" MODIFIED="1729872380469" TEXT="nur WeavingBuilder kennt die aktuell gesammelten Daten">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1729872303681" ID="ID_782739255" MODIFIED="1729872377508" TEXT="brauche eine Funktion zum „Reste einfüllen“">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1729872477774" ID="ID_1153908881" MODIFIED="1729872484078" TEXT="draft-Impl">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1729872485165" ID="ID_802272593" MODIFIED="1729872496094" TEXT="Logik/Assertion-Fehler">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
PRECONDITION: weaving-pattern-builder.hpp:415: thread_1: connectRemainingInputs: (leadPorts.size() + cnt <= knownLeads.size())
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1729872353115" ID="ID_1517952001" MODIFIED="1729872368574" TEXT="diese braucht wiederzum Zugriff auf die bekannten Leads ">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1729872370117" ID="ID_1303245640" MODIFIED="1729872374635" TEXT="unschön?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1729872389613" ID="ID_1818114994" MODIFIED="1729872413991" TEXT="Funktionalität zum expliziten Definieren von Lead-Port-Verbindungen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1729872416670" ID="ID_106035391" MODIFIED="1729872433250" TEXT="incl. Definieren zusätzlicher Leads on-the-fly">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1729872434676" ID="ID_1193395658" MODIFIED="1729872439652" TEXT="Fehler-Checks">
|
||||
<icon BUILTIN="pencil"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1729824247416" ID="ID_967491409" MODIFIED="1729824250860" TEXT="Ausgangsseitig">
|
||||
|
|
|
|||
Loading…
Reference in a new issue