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 &section) const;
0032     QStringList parseNotes(ScopedXmlStreamReader &&reader) const;
0033 };
0034 
0035 }
0036 
0037 #endif // KPUBLICTRANSPORT_EFACOMPACTPARSER_H