X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=Client%2Fxmlwriter.cpp;h=dac4d62178b8e8396ac9ff838ba1ccc03cc64c7f;hb=89377a988a3f92bf6f9d8833b52a75db381bb54a;hp=f7b02cd8652e93b9183bf3ea85ebf9736a0b9188;hpb=eae981fe277e602eebf11259670f3c164d825418;p=speedfreak diff --git a/Client/xmlwriter.cpp b/Client/xmlwriter.cpp index f7b02cd..dac4d62 100644 --- a/Client/xmlwriter.cpp +++ b/Client/xmlwriter.cpp @@ -1,133 +1,186 @@ -#include -#include -//#include -#include -#include -#include -#include -#include -#include -#include -#include +/* + * Xml writer + * + * @author Tiina Kivilinna-Korhola + * @copyright (c) 2010 Speed Freak team + * license http://opensource.org/licenses/gpl-license.php GNU Public License + */ + #include "xmlwriter.h" -/*! @brief Constructor, connects object to GUI - */ -XmlWriter::XmlWriter(Ui_MainWindow* myMainWindow) + +/** + *@brief Constructor, connects object to GUI + *@param Pointer to carmainwindow, which is temporarily used during development + */ +XmlWriter::XmlWriter() { - ui = myMainWindow; + tmpvalue = 10; } - -/*! @brief Destructor +/** + *@brief Destructor */ XmlWriter::~XmlWriter() { } -/*! @brief Opens and closes a file, when xml information is written into a file, - * and passes file to writeXmlFile() - * @note Partly harcoded and commented for git. - * @todo Replace hardcoced filename and GUI elements to finally used widgets. +/** + *@brief Writes registration items into tags. + *@param netbuf a buffer where xmlstreamwriter writes to. + *@param usr for user name. + *@param psswd for password. + *@param email. + */ +void XmlWriter::writeRegistering(QBuffer *netbuf, QString usr, QString psswd, QString email) +{ + qDebug() << "_writeRegistering"; + + xmlwriter.setDevice(netbuf); + + xmlwriter.writeStartDocument(); + xmlwriter.writeStartElement("user"); + + xmlwriter.writeStartElement("login"); + xmlwriter.writeCharacters(usr); + xmlwriter.writeEndElement(); + + xmlwriter.writeStartElement("password"); + xmlwriter.writeCharacters(psswd); + xmlwriter.writeEndElement(); + + xmlwriter.writeStartElement("email"); + xmlwriter.writeCharacters(email); + xmlwriter.writeEndElement(); + + xmlwriter.writeEndElement(); + xmlwriter.writeEndDocument(); +} + + +/** + *@brief Writes Speed Freek results items as tags and contents into a buffer. + *@todo Consider looping when writing many values. + *@todo Replace test value to finally used variables. + */ +void XmlWriter::writeResult(QBuffer *netbuf) +{ + qDebug() << "_writeResult"; + + xmlwriter.setDevice(netbuf); + + xmlwriter.writeStartDocument(); + xmlwriter.writeStartElement("result"); + tmpvalue++; + qDebug() << tmpvalue; + xmlwriter.writeAttribute("value", QString::number(tmpvalue)); + xmlwriter.writeAttribute("unit", "seconds"); + xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString()); + xmlwriter.writeEndElement(); + xmlwriter.writeEndDocument(); +} + + +/** + *@brief Opens and closes a file, when xml information is written into a file, + *and passes file to writeXmlFile() + *@param usr for user name. + *@param psswd for password. + *@param email. + *@todo Replace hardcoced filename to finally GUI entry widget. */ -void XmlWriter::xmlWrite() +//void XmlWriter::writeXml(QString usr, QString psswd, QString email) +void XmlWriter::writeXml() { - //QString filename = ui->lineEditFile->text(); - QString filename = "xmlfile.xml"; + QString filename = "xmlcategoryfile.xml"; QFile file(filename); if (!file.open(QFile::WriteOnly | QFile::Text)) { - /*QMessageBox::warning(this->ui->centralWidget, tr("QXmlStream Bookmarks"), - tr("Cannot write file %1:\n%2.") - .arg(filename) - .arg(file.errorString())); - */ qDebug() << "_xmlWrite fail"; return; } writeXmlFile(&file); + //writeRegistering(&file, usr, psswd, email); + //writeResult(&file); file.close(); } -/*! @brief Writes general xml information. - * @todo Check API connection to QBuffer, when Speed Freek network client has been written. +/** + *@brief Writes general xml information. + *Calls other functions to insert login and result information. + *@param device: target of writing, here filename. + *@param usr for user name. + *@param psswd for password. + *@param email. */ bool XmlWriter::writeXmlFile(QIODevice *device) -//bool XmlWriter::writeXmlFile(QBuffer *device) { xmlwriter.setDevice(device); xmlwriter.writeStartDocument(); - xmlwriter.writeDTD(""); - xmlwriter.writeStartElement("xml"); - xmlwriter.writeAttribute("version", "1.0"); writeItems(); + //serverWritesXml(); xmlwriter.writeEndDocument(); return true; } -/*! @brief Writes Speed Freek application specific items as tags and contents. - * @brief Results of speed/ direction/ acceleration into QMap are calculated elsewhere - * @todo Consider looping of writing QMap values. - * @todo Replace hardcoced names to finally used GUI elements. + +/** + *@brief Writes Speed Freek results items as tags and contents to earlier defined target. + *@todo Consider looping when writing many values. + *@todo Replace testing values to finally used variabls. */ void XmlWriter::writeItems() { - //xmlwriter.writeCharacters(ui->lineEditPlace->text()); - //Temporarily: - xmlwriter.writeStartElement("place"); - xmlwriter.writeCharacters("rallirata"); - xmlwriter.writeEndElement(); - - xmlwriter.writeStartElement("date"); - xmlwriter.writeCharacters(QDate::currentDate().toString()); + xmlwriter.writeStartElement("result"); + xmlwriter.writeAttribute("value", QString::number(14)); //tmp testing value + xmlwriter.writeAttribute("unit", "seconds"); + xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString()); xmlwriter.writeEndElement(); +} - xmlwriter.writeStartElement("time"); - xmlwriter.writeCharacters(QTime::currentTime().toString()); - xmlwriter.writeEndElement(); - /* Or combined: - xmlwriter.writeStartElement("datetime"); - xmlwriter.writeCharacters(QDateTime::currentDateTime().toString()); - xmlwriter.writeEndElement(); */ +/** + *@brief A temp function during development, used to create a "serverfile". + */ +void XmlWriter::serverWritesXml() +{ + /* Server sends to client */ + /* + int i = 0; + int n = 5; + + //Write top 10 Results + xmlwriter.writeStartElement("results"); + xmlwriter.writeAttribute("category", "acceleration-0-40"); + xmlwriter.writeAttribute("unit", "seconds"); + xmlwriter.writeAttribute("description", "Acceleration from 0 to 100 km/h"); + + for (i = 0; i < n; i++) { + xmlwriter.writeStartElement("result"); + xmlwriter.writeAttribute("position", QString::number(i)); + xmlwriter.writeAttribute("user", "test123"); + xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString()); + xmlwriter.writeAttribute("value", QString::number(i+i+1)); + xmlwriter.writeEndElement(); + } + */ + //Write categories + xmlwriter.writeStartElement("categories"); - xmlwriter.writeStartElement("result"); - xmlwriter.writeStartElement("speed"); - xmlwriter.writeAttribute("value", QString::number(resultmap.value("speed"))); - xmlwriter.writeAttribute("unit", "m/s"); - xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("distance"); - xmlwriter.writeAttribute("value", QString::number(resultmap.value("distance"))); - xmlwriter.writeAttribute("unit", "m"); + xmlwriter.writeStartElement("category"); + xmlwriter.writeCharacters("acceleration-0-10"); xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("acceleration"); - xmlwriter.writeAttribute("value", QString::number(resultmap.value("acceleration"))); - xmlwriter.writeAttribute("unit", "m/s2"); + + xmlwriter.writeStartElement("category"); + xmlwriter.writeCharacters("acceleration-0-60"); xmlwriter.writeEndElement(); - xmlwriter.writeEndElement(); //result - //or: - //xmlwriter.writeTextElement("speed", QString::number(resultmap.value("speed")) + " m/s"); - //xmlwriter.writeTextElement("distance", QString::number(resultmap.value("distance")) + " m"); - //xmlwriter.writeTextElement("acceleration", QString::number(resultmap.value("acceleration")) + " m/s2"); -} -/*! @brief Initializes QMap by zeroing values for a new measurement. - */ -void XmlWriter::initResultmap() -{ - resultmap["acceleration"] = 0; - resultmap["speed"] = 0; - resultmap["distance"] = 0; -} + xmlwriter.writeStartElement("category"); + xmlwriter.writeCharacters("acceleration-0-100"); + xmlwriter.writeEndElement(); -/*! @brief A temp function during development, used until real QMap available. - */ -void XmlWriter::fillResultmap() -{ - resultmap["acceleration"] = 9; - resultmap["speed"] = 48; - resultmap["distance"] = 600; + xmlwriter.writeEndElement(); }