##// END OF EJS Templates
Minor update in project gse_lesia
Minor update in project gse_lesia

File last commit:

r69:d8815b251eb0 default
r72:27e89cd58c8b default
Show More
lfrxmlhandler.cpp
106 lines | 2.2 KiB | text/x-c | CppLexer
#include "lfrxmlhandler.h"
#include <QDebug>
LFRXmlHandler::LFRXmlHandler(QObject *parent) :
QObject(parent)
{
}
/*!
Reset the state of the handler to ensure that new documents are
read correctly.
We return true to indicate that parsing should continue.
*/
bool LFRXmlHandler::startDocument()
{
elementName.clear();
elementIndentation.clear();
indentationLevel = 0;
return true;
}
/*!
Process each starting element in the XML document.
Append the element name to the list of elements found; add its
corresponding indentation level to the list of indentation levels.
Increase the level of indentation by one column.
We return true to indicate that parsing should continue.
*/
bool LFRXmlHandler::startElement(const QString &, const QString &,
const QString & qName, const QXmlAttributes &)
{
elementName.append(qName);
elementIndentation.append(indentationLevel);
indentationLevel += 1;
if (qName == "EventBinary")
{
emit displayMessage("EventBinary detected");
}
return true;
}
/*!
Process each ending element in the XML document.
Decrease the level of indentation by one column.
We return true to indicate that parsing should continue.
*/
bool LFRXmlHandler::endElement(const QString &, const QString &,
const QString & qName)
{
if (qName == "EventTime")
{
emit displayMessage("/EventTime detected");
}
indentationLevel -= 1;
return true;
}
/*!
Report a fatal parsing error, and return false to indicate to the reader
that parsing should stop.
*/
bool LFRXmlHandler::fatalError (const QXmlParseException & exception)
{
qWarning() << QString("Fatal error on line %1, column %2: %3").arg(
exception.lineNumber()).arg(exception.columnNumber()).arg(
exception.message());
return true;
}
/*!
Return the list of element names found.
*/
QStringList& LFRXmlHandler::names ()
{
return elementName;
}
/*!
Return the list of indentations used for each element found.
*/
QList<int>& LFRXmlHandler::indentations ()
{
return elementIndentation;
}
void LFRXmlHandler::packetStoreHasChanged(QList<TMPacketToRead *> *ccsdsPacketStore)
{
this->ccsdsPacketStore = ccsdsPacketStore;
}