joachim99@8: /*************************************************************************** joachim99@8: merger.h - description joachim99@8: ------------------- joachim99@8: begin : Sun Mar 24 2002 joachim99@77: copyright : (C) 2002-2007 by Joachim Eibl joachim99@69: email : joachim.eibl at gmx.de joachim99@8: ***************************************************************************/ joachim99@8: joachim99@8: /*************************************************************************** joachim99@8: * * joachim99@8: * This program is free software; you can redistribute it and/or modify * joachim99@8: * it under the terms of the GNU General Public License as published by * joachim99@8: * the Free Software Foundation; either version 2 of the License, or * joachim99@8: * (at your option) any later version. * joachim99@8: * * joachim99@8: ***************************************************************************/ joachim99@8: joachim99@8: #ifndef MERGER_H joachim99@8: #define MERGER_H joachim99@8: joachim99@8: #include "diff.h" joachim99@8: joachim99@8: joachim99@8: class Merger joachim99@8: { joachim99@8: public: joachim99@8: joachim99@8: Merger( const DiffList* pDiffList1, const DiffList* pDiffList2 ); joachim99@8: joachim99@8: /** Go one step. */ joachim99@8: void next(); joachim99@8: joachim99@8: /** Information about what changed. Can be used for coloring. joachim99@8: The return value is 0 if nothing changed here, joachim99@8: bit 1 is set if a difference from pDiffList1 was detected, joachim99@8: bit 2 is set if a difference from pDiffList2 was detected. joachim99@8: */ joachim99@8: int whatChanged(); joachim99@8: joachim99@8: /** End of both diff lists reached. */ joachim99@8: bool isEndReached(); joachim99@8: private: joachim99@8: joachim99@8: struct MergeData joachim99@8: { joachim99@8: DiffList::const_iterator it; joachim99@8: const DiffList* pDiffList; joachim99@8: Diff d; joachim99@8: int idx; joachim99@8: joachim99@8: MergeData( const DiffList* p, int i ); joachim99@8: bool eq(); joachim99@8: void update(); joachim99@8: bool isEnd(); joachim99@8: }; joachim99@8: joachim99@8: MergeData md1; joachim99@8: MergeData md2; joachim99@8: }; joachim99@8: joachim99@8: #endif