diff --git a/src/lib/linked-elements.hpp b/src/lib/linked-elements.hpp index fbf8f6a64..e11da68e4 100644 --- a/src/lib/linked-elements.hpp +++ b/src/lib/linked-elements.hpp @@ -323,13 +323,13 @@ namespace lib { public: - ~LinkedElements () + ~LinkedElements() { clear(); } - LinkedElements () - : head_(0) + LinkedElements() + : head_{nullptr} { } /** @param allo custom allocator or memory manager @@ -338,8 +338,8 @@ namespace lib { */ explicit LinkedElements (typename ALO::CustomAllocator allo) - : ALO(allo) - , head_(0) + : ALO{allo} + , head_{nullptr} { } /** creating a LinkedElements list in RAII-style: @@ -350,10 +350,10 @@ namespace lib { */ template LinkedElements (IT elements) - : head_(0) + : head_{nullptr} { try { - pushAll(elements); + pushAll (elements); } catch(...) { @@ -533,8 +533,8 @@ namespace lib { { N* node; - IterationState(N* p=0) - : node(p) + IterationState (N* p =nullptr) + : node{p} { } /* ==== internal callback API for the iterator ==== */ @@ -572,8 +572,8 @@ namespace lib { }; public: - typedef IterStateWrapper< N, IterationState> iterator; - typedef IterStateWrapper const_iterator; + using iterator = IterStateWrapper< N, IterationState>; + using const_iterator = IterStateWrapper; iterator begin() { return iterator (head_); } @@ -581,12 +581,10 @@ namespace lib { iterator end () { return iterator(); } const_iterator end () const { return const_iterator(); } - - }; } // namespace lib -#endif +#endif /*LIB_LINKED_ELEMENTS_H*/ diff --git a/src/steam/engine/job-ticket.hpp b/src/steam/engine/job-ticket.hpp index b389e404b..0b145900e 100644 --- a/src/steam/engine/job-ticket.hpp +++ b/src/steam/engine/job-ticket.hpp @@ -82,11 +82,13 @@ using util::isnil; * This way, the JobTicket acts as _higher order function:_ a function * generating on invocation another, specific function (= the job). * - * @todo 1/12 WIP-WIP-WIP defining the invocation sequence and render jobs + * @todo 4/23 WIP-WIP-WIP defining the invocation sequence and render jobs + * @todo maybe the per-channel specialisation can be elided altogether...? */ class JobTicket : util::NonCopyable { + /** what handling this task entails */ struct Provision { Provision* next; @@ -118,12 +120,12 @@ using util::isnil; JobTicket() { - UNIMPLEMENTED ("job representation, planning and scheduling"); + TODO ("job representation, planning and scheduling"); } - ExplorationState startExploration() const; - ExplorationState discoverPrerequisites (uint channelNr) const; + ExplorationState startExploration() const; + ExplorationState discoverPrerequisites (uint channelNr =0) const; Job createJobFor (FrameCoord coordinates); @@ -134,7 +136,7 @@ using util::isnil; if (channelConfig_.size() != requirement_.size()) return false; - UNIMPLEMENTED ("validity self check"); + TODO ("validity self check"); } }; @@ -152,7 +154,7 @@ using util::isnil; ExplorationState (Prerequisites& prerequisites) { - if (!isnil (prerequisites.requiredJobs_)) + if (not isnil (prerequisites.requiredJobs_)) toExplore_.push (prerequisites.requiredJobs_.begin()); } @@ -237,6 +239,7 @@ using util::isnil; + /// @deprecated : could be expendable ... likely incurred solely by the use of Monads as design pattern inline JobTicket::ExplorationState JobTicket::startExploration() const { diff --git a/src/steam/play/dummy-play-connection.hpp b/src/steam/play/dummy-play-connection.hpp index 286128ceb..7655b6156 100644 --- a/src/steam/play/dummy-play-connection.hpp +++ b/src/steam/play/dummy-play-connection.hpp @@ -98,8 +98,9 @@ #include -namespace steam { +namespace steam{ namespace play { +namespace test { // using std::string; // using lumiera::Subsys; @@ -275,5 +276,5 @@ namespace play { -}} // namespace steam::play +}}} // namespace steam::play::test #endif /*STEAM_PLAY_DUMMY_PLAY_CONNECTION_H*/ diff --git a/tests/core/steam/engine/dispatcher-interface-test.cpp b/tests/core/steam/engine/dispatcher-interface-test.cpp index 7db8c9bfa..926a99000 100644 --- a/tests/core/steam/engine/dispatcher-interface-test.cpp +++ b/tests/core/steam/engine/dispatcher-interface-test.cpp @@ -68,10 +68,10 @@ namespace test { namespace { // used internally - using play::PlayTestFrames_Strategy; - using play::ModelPorts; + using play::test::PlayTestFrames_Strategy; + using play::test::ModelPorts; - typedef play::DummyPlayConnection DummyPlaybackSetup; + using DummyPlaybackSetup = play::test::DummyPlayConnection; class MockDispatcherTable diff --git a/tests/core/steam/engine/dispatcher-mock.hpp b/tests/core/steam/engine/dispatcher-mock.hpp index 15dbf0cde..72dcc89e6 100644 --- a/tests/core/steam/engine/dispatcher-mock.hpp +++ b/tests/core/steam/engine/dispatcher-mock.hpp @@ -33,6 +33,7 @@ //#include "steam/play/dummy-play-connection.hpp" #include "steam/mobject/model-port.hpp" #include "steam/engine/dispatcher.hpp" +#include "steam/engine/job-ticket.hpp" //#include "steam/play/timings.hpp" //#include "lib/time/timevalue.hpp" ////#include "lib/time/timequant.hpp" @@ -118,21 +119,22 @@ namespace test { }//(End)internal test helpers.... -#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880 -#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #890 +#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1221 +#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1221 /** * Mock for... * - * @see JobPlanningsetup_test + * @see JobPlanningSetup_test * @see DispatcherInterface_test * */ class MockJobTicket + : public JobTicket { public: - ~MockJobTicket(); + MockJobTicket() { }; private: }; diff --git a/tests/core/steam/engine/job-planning-setup-test.cpp b/tests/core/steam/engine/job-planning-setup-test.cpp index a5a927af7..be264eb6f 100644 --- a/tests/core/steam/engine/job-planning-setup-test.cpp +++ b/tests/core/steam/engine/job-planning-setup-test.cpp @@ -68,8 +68,8 @@ namespace test { virtual void run (Arg) { - UNIMPLEMENTED ("shape the interface of the job-planning pipeline"); demonstrateScaffolding(); + UNIMPLEMENTED ("shape the interface of the job-planning pipeline"); buildBaseTickGenerator(); accessTopLevelJobTicket(); exploreJobTickets(); @@ -81,6 +81,8 @@ namespace test { void demonstrateScaffolding() { + MockJobTicket mockTick; + CHECK (mockTick.discoverPrerequisites().empty()); UNIMPLEMENTED ("how to mock and fake"); /////////////////////////////////////////////////////////////////////////////TODO: extract from DispatcherInterface_test /////////////////////////////////////////////////////////////////////////////TODO: design a job-ticket-mock diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index f75acc161..205a4ee2a 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -68419,7 +68419,7 @@ - + @@ -68460,6 +68460,10 @@ + + + + @@ -69116,10 +69120,10 @@ - + - + @@ -69579,9 +69583,133 @@ + + + + + + + + + + + + +

+ ...bevor ich jetzt anfange, eine symbolische Notation und einen Parser zu erfinden, wäre ein einfache Konvetion für structured data  wohl sinnvoller; dann könnte man die Builder-Notation für GenNode nutzen +

+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +

+ den skizzierten, wie üblich weitreichenden Plänen gemäß kann mit erheblicher Komplexität gerechnet werden; es erscheint daher angemessen, die eigentlichen Mock-Bausteine separat nutzbar zu halten und die DummyPlayConnection zur Orchestrierung des jeweiligen Test-Setup zu verwenden +

+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ ... vor allem eine zusätzliche Indirektion, deren Wirkung nicht einfach abzuschätzen ist. Die tatsächliche Listenlänge muß letztlich immer irgendwo explizit repräsentiert werden, und wenn man dies in einem Subtyp verbirgt, muß jeder Datenzugriff zwingend einmal durch eine Indirektion laufen +

+ +
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -69671,9 +69799,40 @@ + + + + + + + + +

+ ...es ist keineswegs sicher, daß wir mit einer bloßen Addressierung per Channel-Nummer auskommen; es könnte durchaus passieren, daß Erweiterung auf eine generische Selektions-Sprache notwendig wird +

+ +
+
+ + + + + + + + + + + +

+ man denke nur an higher-order Ambisonics... +

+ +
+