File indexing completed on 2024-05-12 04:42:33
0001 /* 0002 SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KPUBLICTRANSPORT_EFACOMPACTPARSER_H 0008 #define KPUBLICTRANSPORT_EFACOMPACTPARSER_H 0009 0010 #include "efaparser.h" 0011 0012 namespace KPublicTransport { 0013 0014 class ScopedXmlStreamReader; 0015 0016 /** Parser for compact XML responses from EFA services. 0017 * @internal just exported for unit tests 0018 */ 0019 class KPUBLICTRANSPORT_EXPORT EfaCompactParser : public EfaParser 0020 { 0021 public: 0022 std::vector<Location> parseStopFinderResponse(const QByteArray &data) override; 0023 std::vector<Stopover> parseDmResponse(const QByteArray &data) override; 0024 std::vector<Journey> parseTripResponse(const QByteArray &data) override; 0025 0026 private: 0027 Location parseCompactSf(ScopedXmlStreamReader &&reader) const; 0028 Stopover parseCompactDp(ScopedXmlStreamReader &&reader) const; 0029 Journey parseCompactTp(ScopedXmlStreamReader &&reader) const; 0030 JourneySection parseTripSection(ScopedXmlStreamReader &&reader) const; 0031 void parseTripSectionHalf(ScopedXmlStreamReader &&reader, JourneySection §ion) const; 0032 QStringList parseNotes(ScopedXmlStreamReader &&reader) const; 0033 }; 0034 0035 } 0036 0037 #endif // KPUBLICTRANSPORT_EFACOMPACTPARSER_H