• Alexis SALZMAN's avatar
    [xtool] Add class to adpat iterator containt by casting · 873fe764
    Alexis SALZMAN authored
    castValueBidirIterator and castValueForwardIterator are two class that
    take control of an iterator 'it'. Both change information type pointed by
    'it' by use of static cast. So compare to 'it' only operator * is
    changed. The type used during casting is provided as a template
    parameter to those class.
    
    These classes aim to replace entitytovertexiteratorconvertor class of FM
    library which was used as a start for construction of this new family.
    Compare to this original version, iterator category coherence is more
    strongly achieved between 'it' and its warper. To simplify user task the
    function makeCastValueIterator provide a simple way to create
    castValueBidirIterator or castValueForwardIterator depending on 'it'
    iterator category type.
    
    As now cast type is a template parameter the user have more choice.
    The reverse operation (mVertex* to mEntity*) have been for example
    tested successfully in some appli. And in the same appli use of those
    class in replacement of entitytovertexiteratorconvertor was ok.
    
    TODO
    replace entitytovertexiteratorconvertor and certainely also
    citerobjecttovertexiteratorconvertor
    Add other category type and maybe do some rearrangement to minimize code
    duplication.
    873fe764