-#include <QtGui>
-#include <QNetworkRequest>
-//#include <QNetworkReply>
-#include <QIODevice>
-#include <QFile>
-#include <QMessageBox>
-#include <QDebug>
-#include <QDateTime>
-#include <QDate>
-#include <QTime>
-#include <QApplication>
+/*
+ * 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("<!DOCTYPE xml>");
- 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();
}