MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / readCompressed

Method readCompressed

test/coord_xml_t.cpp:764–982  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

762}
763
764void CoordXmlTest::readCompressed()
765{
766 QFETCH(int, num_coords);
767 MapCoordVector coords(num_coords, proto_coord);
768
769 buffer.buffer().truncate(0);
770 QBuffer header;
771 {
772 QXmlStreamWriter xml(&header);
773
774 header.open(QBuffer::ReadWrite);
775 xml.setAutoFormatting(false);
776 xml.writeStartDocument();
777 xml.writeStartElement(QString::fromLatin1("root"));
778 xml.writeCharacters(QString{}); // flush root start element
779
780 buffer.open(QBuffer::ReadWrite);
781 xml.setDevice(&buffer);
782 xml.writeStartElement(QString::fromLatin1("coords"));
783 writeCompressed_implementation(coords, xml);
784 xml.writeEndElement();
785
786 xml.setDevice(nullptr);
787
788 buffer.close();
789 header.close();
790 }
791
792 header.open(QBuffer::ReadOnly);
793 buffer.open(QBuffer::ReadOnly);
794 QXmlStreamReader xml;
795 xml.addData(header.buffer());
796
797 xml.readNextStartElement();
798 QCOMPARE(xml.name().toString(), QString::fromLatin1("root"));
799
800 bool failed = false;
801 QBENCHMARK
802 {
803 // benchmark iteration overhead
804 coords.clear();
805 xml.addData(buffer.data());
806 xml.readNextStartElement();
807 if (xml.name() != QLatin1String("coords"))
808 {
809 failed = true;
810 break;
811 }
812
813 for( xml.readNext();
814 xml.tokenType() != QXmlStreamReader::EndElement;
815 xml.readNext() )
816 {
817 if (xml.error())
818 {
819 qDebug() << xml.errorString();
820 failed = true;
821 break;

Callers

nothing calls this directly

Calls 13

QLatin1StringClass · 0.85
openMethod · 0.80
setDeviceMethod · 0.80
nameMethod · 0.80
backMethod · 0.80
toStringMethod · 0.45
clearMethod · 0.45
dataMethod · 0.45
errorMethod · 0.45
errorStringMethod · 0.45
textMethod · 0.45
lengthMethod · 0.45

Tested by

no test coverage detected