![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "lib/diff/list-diff-detector.hpp"
A diff generation process is built on top of an "old" reference point and a "new" state of the underlying sequence.
Within this reference frame, an demand-driven evaluation of the differences is handed out to the client as an iterator. While consuming this evaluation process, both the old and the new version of the sequence will be traversed once. In case of re-orderings, a nested forward lookup similar to insertion sort will look for matches in the old sequence, rendering the whole evaluation quadratic in worst-case.
Definition at line 159 of file list-diff-detector.hpp.
Public Member Functions | |
| DiffFrame (Idx ¤t, Idx &&refPoint) | |
| bool | checkPoint () const |
| DiffStep & | yield () const |
| void | iterNext () |
Private Member Functions | |
| DiffStep | establishNextState () |
| bool | hasOld () const |
| bool | hasNew () const |
| bool | canPick () const |
| bool | canDelete () const |
| bool | canInsert () const |
| bool | needFetch () const |
| bool | obsoleted () const |
| Val const & | oldElm () const |
| Val const & | newElm () const |
| Val const & | consumeOld () |
| Val const & | consumeNew () |
Private Attributes | |
| Idx | old_ |
| Idx * | new_ |
| size_t | oldHead_ =0 |
| size_t | newHead_ =0 |
| DiffStep | currentStep_ |
Static Private Attributes | |
| static ListDiffLanguage< Val > | token |
| allocate static storage for the diff language token builder functions | |
Definition at line 172 of file list-diff-detector.hpp.
|
inline |
Definition at line 182 of file list-diff-detector.hpp.
References DiffLanguage< I, E >::NIL.
|
inline |
Definition at line 188 of file list-diff-detector.hpp.
|
inline |
Definition at line 195 of file list-diff-detector.hpp.
|
inlineprivate |
Definition at line 202 of file list-diff-detector.hpp.
References DiffLanguage< I, E >::NIL.
|
inlineprivate |
Definition at line 221 of file list-diff-detector.hpp.
References IndexTable< VAL >::size().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 222 of file list-diff-detector.hpp.
References IndexTable< VAL >::size().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 223 of file list-diff-detector.hpp.
|
inlineprivate |
Definition at line 224 of file list-diff-detector.hpp.
References IndexTable< VAL >::contains().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 225 of file list-diff-detector.hpp.
References IndexTable< VAL >::contains().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 226 of file list-diff-detector.hpp.
References IndexTable< VAL >::pos().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 227 of file list-diff-detector.hpp.
References IndexTable< VAL >::pos().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 229 of file list-diff-detector.hpp.
References IndexTable< VAL >::getElement().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 230 of file list-diff-detector.hpp.
References IndexTable< VAL >::getElement().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 231 of file list-diff-detector.hpp.
References IndexTable< VAL >::getElement().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 232 of file list-diff-detector.hpp.
References IndexTable< VAL >::getElement().
Here is the call graph for this function:
|
private |
Definition at line 161 of file list-diff-detector.hpp.
|
private |
Definition at line 162 of file list-diff-detector.hpp.
|
private |
Definition at line 163 of file list-diff-detector.hpp.
|
private |
Definition at line 164 of file list-diff-detector.hpp.
|
staticprivate |
allocate static storage for the diff language token builder functions
Definition at line 166 of file list-diff-detector.hpp.
|
private |
Definition at line 168 of file list-diff-detector.hpp.
Collaboration diagram for DiffDetector< SEQ >::DiffFrame: