kitchensync

xmldiffalgo.h
1 /*
2  This file is part of KitchenSync
3 
4  Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
5 
6  This program is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Library General Public
8  License as published by the Free Software Foundation; either
9  version 2 of the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Library General Public License for more details.
15 
16  You should have received a copy of the GNU Library General Public License
17  along with this library; see the file COPYING.LIB. If not, write to
18  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  Boston, MA 02110-1301, USA.
20 */
21 
22 #ifndef KSYNC_XMLDIFFALGO_H
23 #define KSYNC_XMLDIFFALGO_H
24 
25 #include <tqdom.h>
26 
27 #include <libtdepim/diffalgo.h>
28 
29 using namespace KPIM;
30 
31 namespace KSync {
32 
33 class XmlDiffAlgo : public DiffAlgo
34 {
35  public:
36  XmlDiffAlgo( const TQString &leftXml, const TQString &rightXml );
37  XmlDiffAlgo( const TQDomDocument &leftXml, const TQDomDocument &rightXml );
38 
39  void run();
40 
41  private:
42  void appendConflictNodes(TQDomElement &leftElement, TQDomElement &rightElement);
43  void appendSingleNodes(TQDomElement &element, bool isLeft);
44 
45 
46  void compareNode(TQDomElement &leftElement, TQDomElement &rightElement);
47 
48  TQDomDocument mLeftXml;
49  TQDomDocument mRightXml;
50 };
51 
52 }
53 
54 #endif