1 #include "DocumentSerialize.h"
2 #include "EngaugeAssert.h"
4 #include "PointIdentifiers.h"
5 #include <QXmlStreamReader>
6 #include <QXmlStreamWriter>
15 LOG4CPP_DEBUG_S ((*mainCat)) <<
"PointIdentifiers::contains"
16 <<
" pointCount=" << m_pointIdentifiers.count();
18 return m_pointIdentifiers.contains (pointIdentifier);
23 return m_pointIdentifiers.count();
28 ENGAUGE_ASSERT (i < m_pointIdentifiers.count());
30 QList<QString> keys = m_pointIdentifiers.keys();
37 ENGAUGE_ASSERT (m_pointIdentifiers.contains (pointIdentifier));
39 return m_pointIdentifiers [pointIdentifier];
47 while (loadNextFromReader (reader)) {
49 if (reader.atEnd() || reader.hasError ()) {
54 if ((reader.tokenType() == QXmlStreamReader::EndElement) &&
55 (reader.name() == DOCUMENT_SERIALIZE_POINT_IDENTIFIERS)) {
60 if ((reader.tokenType() == QXmlStreamReader::StartElement) &&
61 (reader.name() == DOCUMENT_SERIALIZE_POINT_IDENTIFIER)) {
64 QXmlStreamAttributes attributes = reader.attributes();
66 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_POINT_IDENTIFIER_NAME) &&
67 attributes.hasAttribute(DOCUMENT_SERIALIZE_POINT_IDENTIFIER_VALUE)) {
69 QString valueStr = attributes.value (DOCUMENT_SERIALIZE_POINT_IDENTIFIER_VALUE).toString();
71 QString identifier = attributes.value (DOCUMENT_SERIALIZE_POINT_IDENTIFIER_NAME).toString();
72 bool value = (valueStr == DOCUMENT_SERIALIZE_BOOL_TRUE);
74 m_pointIdentifiers [identifier] = value;
80 reader.raiseError (
"Cannot read point identifiers");
86 writer.writeStartElement(DOCUMENT_SERIALIZE_POINT_IDENTIFIERS);
87 PointIdentifiersInternal::const_iterator itr;
88 for (itr = m_pointIdentifiers.begin(); itr != m_pointIdentifiers.end (); itr++) {
89 QString identifier = itr.key();
90 bool value = itr.value();
91 writer.writeStartElement (DOCUMENT_SERIALIZE_POINT_IDENTIFIER);
92 writer.writeAttribute(DOCUMENT_SERIALIZE_POINT_IDENTIFIER_NAME, identifier);
93 writer.writeAttribute(DOCUMENT_SERIALIZE_POINT_IDENTIFIER_VALUE,
94 value ? DOCUMENT_SERIALIZE_BOOL_TRUE : DOCUMENT_SERIALIZE_BOOL_FALSE);
95 writer.writeEndElement();
97 writer.writeEndElement();
103 m_pointIdentifiers [pointIdentifier] = value;
bool getValue(const QString &pointIdentifier) const
Get value for key.
void saveXml(QXmlStreamWriter &writer) const
Serialize table to xml.
QString getKey(int i) const
Get key for index.
bool contains(const QString &pointIdentifier) const
True if specified entry exists in the table.
void setKeyValue(const QString &pointIdentifier, bool value)
Set key/value pair.
PointIdentifiers()
Single constructor.
void loadXml(QXmlStreamReader &reader)
Load from serialized xml.
int count() const
Number of entries.