lfrxmlhandler.cpp
106 lines
| 2.2 KiB
| text/x-c
|
CppLexer
/ gse_lesia / lfrxmlhandler.cpp
r23 | #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; | ||||
} | ||||