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

0001 /*
0002     SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KPUBLICTRANSPORT_NAVITIABACKEND_H
0008 #define KPUBLICTRANSPORT_NAVITIABACKEND_H
0009 
0010 #include "abstractbackend.h"
0011 
0012 #include <QString>
0013 
0014 
0015 namespace KPublicTransport {
0016 
0017 class LocationRequest;
0018 
0019 /** Backend for Navitia-based providers. */
0020 class NavitiaBackend : public AbstractBackend
0021 {
0022     Q_GADGET
0023     Q_PROPERTY(QString endpoint MEMBER m_endpoint)
0024     Q_PROPERTY(QString coverage MEMBER m_coverage)
0025     Q_PROPERTY(QString authorization MEMBER m_auth)
0026 
0027 public:
0028     NavitiaBackend();
0029 
0030     static inline constexpr const char* type() { return "navitia"; }
0031     Capabilities capabilities() const override;
0032     bool needsLocationQuery(const Location &loc, AbstractBackend::QueryType type) const override;
0033     bool queryJourney(const JourneyRequest &req, JourneyReply *reply, QNetworkAccessManager *nam) const override;
0034     bool queryStopover(const StopoverRequest &req, StopoverReply *reply, QNetworkAccessManager *nam) const override;
0035     bool queryLocation(const LocationRequest &req, LocationReply *reply, QNetworkAccessManager *nam) const override;
0036 
0037 private:
0038     QString m_endpoint;
0039     QString m_coverage;
0040     QString m_auth;
0041 };
0042 
0043 }
0044 
0045 #endif // KPUBLICTRANSPORT_NAVITIABACKEND_H