diff --git a/src/lib/diff/tree-diff-application.hpp b/src/lib/diff/tree-diff-application.hpp index a031e3b91..3914da1d2 100644 --- a/src/lib/diff/tree-diff-application.hpp +++ b/src/lib/diff/tree-diff-application.hpp @@ -87,6 +87,9 @@ ** When the user needs safety or transactional behaviour, a deep copy should be made ** before attaching the #DiffApplicator ** + ** @note as of 2/2016, there is the possibility this solution will become part + ** of a more generic solution, currently being worked out in tree-diff-mutator-binding.hpp + ** ** @see DiffTreeApplication_test ** @see DiffListApplication_test ** @see GenNodeBasic_test diff --git a/src/lib/diff/tree-diff-mutator-binding.hpp b/src/lib/diff/tree-diff-mutator-binding.hpp index 294ecb914..dbcd0ce61 100644 --- a/src/lib/diff/tree-diff-mutator-binding.hpp +++ b/src/lib/diff/tree-diff-mutator-binding.hpp @@ -51,6 +51,9 @@ ** functors) to translate the _implementation actions_ underlying the language into ** _concrete actions_ on local data. ** + ** @todo this is WIP as of 2/2016 -- in the end it might be merged back or even + ** replace the tree-diff-application.hpp + ** ** @see DiffVirtualisedApplication_test ** @see DiffTreeApplication_test ** @see DiffListApplication_test @@ -250,7 +253,19 @@ namespace diff{ else out().appendChild (move(*pos)); } -#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #992 +#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #992 + void + locate_and_assign (GenNode const& n) + { + + } + + void + locate_and_open_for_mutation (GenNode const& n) + { + + } + /* == Implementation of the list diff application primitives == */ @@ -316,22 +331,20 @@ namespace diff{ virtual void mut (GenNode const& n) override { - GenNode const& child = find_child (n.idi); - Rec const& childRecord = child.data.get(); + locate_and_open_for_mutation (n); + Rec const& childRecord = child.data.get(); TRACE (diff, "tree-diff: ENTER scope %s", cStr(childRecord)); - scopes_.emplace (mutateInPlace (unConst(childRecord))); - scopes_.top().init(); } /** finish and leave child object scope, return to parent */ virtual void emu (GenNode const& n) override { - TRACE (diff, "tree-diff: LEAVE scope %s", cStr(alteredRec())); + TRACE (diff, "tree-diff: LEAVE scope %s", cStr(describeScope())); __expect_end_of_scope (n.idi); - scopes_.pop(); + close_subScope(); __expect_valid_parent_scope (n.idi); } diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index dcfd24a3b..e29ead2f6 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -474,7 +474,7 @@ - + @@ -585,17 +585,19 @@ - + + - - - + + + + @@ -783,7 +785,7 @@ - + @@ -938,7 +940,8 @@ - + + @@ -955,7 +958,9 @@ - + + + @@ -1078,7 +1083,10 @@ - + + + + @@ -1179,9 +1187,12 @@ - + + + + @@ -1212,8 +1223,7 @@ der "vernünftigen" (=pragmatischen) Lösung.

- - +
@@ -1237,8 +1247,7 @@ daß es vergeblich ist. Einen Kampf gegen das Menschliche, Allzumenschliche kann man nicht gewinnen.

- -
+
@@ -1268,21 +1277,24 @@ Steuerung stattfindet, entfernt ist, entfernt in einen anderen Kontext.

- -
+ - + + - - - - - - - + + + + + + + + + + @@ -1292,14 +1304,13 @@ und nur letztere sind tangibel

- -
+
- - - + + + @@ -1312,10 +1323,9 @@ müssen IDs aus dem DOM innerhalb der real-Daten nochmal wiederholt, also redundant vorliegen

- -
+
- + @@ -1328,11 +1338,10 @@ um sie in einem abstrahierten Kontext zugänglich zu machen

- -
+
- + @@ -1348,10 +1357,9 @@ an irgend einer Stelle repräsentiert werden.

- -
+
- + @@ -1390,27 +1398,27 @@ an eine selbständig bestehende Datenstruktur; dann enden wir bei klassischer Introspektion.

- -
+
- - - - + + + + - - - - + + + + - + - + + @@ -1499,7 +1507,8 @@ - + +