File indexing completed on 2024-05-12 04:42:36

0001 /*
0002     SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KPUBLICTRANSPORT_HAFASVEHICLELAYOUTPARSER_H
0008 #define KPUBLICTRANSPORT_HAFASVEHICLELAYOUTPARSER_H
0009 
0010 #include <vector>
0011 
0012 class QByteArray;
0013 class QJsonObject;
0014 
0015 namespace KPublicTransport {
0016 
0017 class Platform;
0018 class Vehicle;
0019 
0020 /** Parser for vehicle and platform layout responses embedded in Hafas remark messages. */
0021 namespace HafasVehicleLayoutParser
0022 {
0023     /** Parses vehicle layout data from common.stcXXXL responses. */
0024     std::vector<Vehicle> parseVehicleLayouts(const QJsonObject &commonObj);
0025 
0026     /** Parses a I - JF remark containing JSON train formation data. */
0027     Vehicle parseTrainFormation(const QByteArray &data);
0028 
0029     /** Parses platform data from common.tcpdL in Hafas journey responses. */
0030     std::vector<Platform> parsePlatforms(const QJsonObject &commonObj);
0031 
0032     /** Parses a I - XP remark containing XML platform sector data. */
0033     Platform parsePlatformSectors(const QByteArray &data);
0034 }
0035 
0036 }
0037 
0038 #endif // KPUBLICTRANSPORT_HAFASVEHICLELAYOUTPARSER_H