Guitar
Public Member Functions | Private Member Functions | Private Attributes | List of all members
dtl::Diff3< elem, sequence, comparator > Class Template Reference

#include <Diff3.hpp>

Collaboration diagram for dtl::Diff3< elem, sequence, comparator >:
Collaboration graph
[legend]

Public Member Functions

 Diff3 ()
 
 Diff3 (const sequence &a, const sequence &b, const sequence &c)
 
 ~Diff3 ()
 
bool isConflict () const
 
sequence getMergedSequence () const
 
bool merge ()
 
void compose ()
 

Private Member Functions

 dtl_typedefs (elem, sequence) sequence A
 
sequence merge_ ()
 
void joinElemVec (elemVec &s1, elemVec &s2) const
 
template<typename T_iter >
bool isEnd (const T_iter &end, const T_iter &it) const
 
template<typename T_iter >
void forwardUntilEnd (const T_iter &end, T_iter &it) const
 
void addDecentSequence (const sesElemVec_iter &end, sesElemVec_iter &it, elemVec &seq) const
 

Private Attributes

sequence B
 
sequence C
 
sequence S
 
Diff< elem, sequence, comparator > diff_ba
 
Diff< elem, sequence, comparator > diff_bc
 
bool conflict
 
elem csepabegin
 
elem csepa
 
elem csepaend
 

Detailed Description

template<typename elem, typename sequence = vector< elem >, typename comparator = Compare< elem >>
class dtl::Diff3< elem, sequence, comparator >

diff3 class template sequence must support random_access_iterator.

Constructor & Destructor Documentation

◆ Diff3() [1/2]

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
dtl::Diff3< elem, sequence, comparator >::Diff3 ( )
inline

◆ Diff3() [2/2]

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
dtl::Diff3< elem, sequence, comparator >::Diff3 ( const sequence &  a,
const sequence &  b,
const sequence &  c 
)
inline

◆ ~Diff3()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
dtl::Diff3< elem, sequence, comparator >::~Diff3 ( )
inline

Member Function Documentation

◆ addDecentSequence()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
void dtl::Diff3< elem, sequence, comparator >::addDecentSequence ( const sesElemVec_iter &  end,
sesElemVec_iter &  it,
elemVec &  seq 
) const
inlineprivate

add elements whose SES's type is ADD

Here is the call graph for this function:

◆ compose()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
void dtl::Diff3< elem, sequence, comparator >::compose ( )
inline

compose differences

◆ dtl_typedefs()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
dtl::Diff3< elem, sequence, comparator >::dtl_typedefs ( elem  ,
sequence   
)
private

◆ forwardUntilEnd()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
template<typename T_iter >
void dtl::Diff3< elem, sequence, comparator >::forwardUntilEnd ( const T_iter &  end,
T_iter &  it 
) const
inlineprivate

increment iterator until iterator is at end

Here is the call graph for this function:

◆ getMergedSequence()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
sequence dtl::Diff3< elem, sequence, comparator >::getMergedSequence ( ) const
inline

◆ isConflict()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
bool dtl::Diff3< elem, sequence, comparator >::isConflict ( ) const
inline

◆ isEnd()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
template<typename T_iter >
bool dtl::Diff3< elem, sequence, comparator >::isEnd ( const T_iter &  end,
const T_iter &  it 
) const
inlineprivate

check if sequence is at end

◆ joinElemVec()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
void dtl::Diff3< elem, sequence, comparator >::joinElemVec ( elemVec &  s1,
elemVec &  s2 
) const
inlineprivate

join elem vectors

◆ merge()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
bool dtl::Diff3< elem, sequence, comparator >::merge ( )
inline

merge changes B and C into A

Here is the call graph for this function:

◆ merge_()

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
sequence dtl::Diff3< elem, sequence, comparator >::merge_ ( )
inlineprivate

merge implementation

Here is the call graph for this function:

Member Data Documentation

◆ B

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
sequence dtl::Diff3< elem, sequence, comparator >::B
private

◆ C

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
sequence dtl::Diff3< elem, sequence, comparator >::C
private

◆ conflict

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
bool dtl::Diff3< elem, sequence, comparator >::conflict
private

◆ csepa

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
elem dtl::Diff3< elem, sequence, comparator >::csepa
private

◆ csepabegin

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
elem dtl::Diff3< elem, sequence, comparator >::csepabegin
private

◆ csepaend

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
elem dtl::Diff3< elem, sequence, comparator >::csepaend
private

◆ diff_ba

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
Diff< elem, sequence, comparator > dtl::Diff3< elem, sequence, comparator >::diff_ba
private

◆ diff_bc

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
Diff< elem, sequence, comparator > dtl::Diff3< elem, sequence, comparator >::diff_bc
private

◆ S

template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
sequence dtl::Diff3< elem, sequence, comparator >::S
private

The documentation for this class was generated from the following file: