summaryrefslogtreecommitdiffstats
path: root/src/progs/psp/xml/xml_psp_parser.cpp
blob: 5cdd289ed5300d0ff4186dc048f811d9d3e464f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/***************************************************************************
 *   Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org>                  *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 ***************************************************************************/
#include "xml_to_data/prog_xml_to_data.h"
#include "progs/psp/base/psp_data.h"

//-----------------------------------------------------------------------------
namespace Psp
{

class XmlToData : public Programmer::XmlToData<Data>
{
public:
  XmlToData() : Programmer::XmlToData<Data>("psp", "Psp") {}

private:
  virtual void parseData(QDomElement element, Data &data);
  virtual void outputData(const Data &data, QTextStream &s) const;
};

void Psp::XmlToData::parseData(QDomElement element, Data &data)
{
  bool ok;
  data.algorithm = element.attribute("algorithm").toUInt(&ok);
  if ( !ok ) qFatal("Missing or invalid algorithm");
  data.overprogram = element.attribute("overprogram").toUInt(&ok);
  if ( !ok ) qFatal("Missing or invalid overprogram");
  data.tries = element.attribute("tries").toUInt(&ok);
  if ( !ok ) qFatal("Missing or invalid tries");
}

void Psp::XmlToData::outputData(const Data &data, QTextStream &s) const
{
  s << data.algorithm << ", " << data.overprogram << ", " << data.tries;
}

} // namespace

//-----------------------------------------------------------------------------
XML_MAIN(Psp::XmlToData)