File indexing completed on 2024-05-12 04:42:36
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_HAFASQUERYBACKEND_H 0008 #define KPUBLICTRANSPORT_HAFASQUERYBACKEND_H 0009 0010 #include "hafasbackend.h" 0011 #include "hafasqueryparser.h" 0012 0013 namespace KPublicTransport { 0014 0015 /** Backends for the Hafas "query.exe" based providers. */ 0016 class HafasQueryBackend : public HafasBackend 0017 { 0018 Q_GADGET 0019 public: 0020 HafasQueryBackend(); 0021 ~HafasQueryBackend() override; 0022 0023 void init() override; 0024 static inline constexpr const char* type() { return "hafasQuery"; } 0025 Capabilities capabilities() const override; 0026 bool needsLocationQuery(const Location &loc, QueryType type) const override; 0027 bool queryLocation(const LocationRequest &request, LocationReply *reply, QNetworkAccessManager *nam) const override; 0028 bool queryStopover(const StopoverRequest &request, StopoverReply *reply, QNetworkAccessManager *nam) const override; 0029 bool queryJourney(const JourneyRequest &request, JourneyReply *reply, QNetworkAccessManager *nam) const override; 0030 0031 private: 0032 bool queryLocationByName(const LocationRequest &request, LocationReply *reply, QNetworkAccessManager *nam) const; 0033 bool queryLocationByCoordinate(const LocationRequest &request, LocationReply *reply, QNetworkAccessManager *nam) const; 0034 0035 QString locationId(const Location &loc) const; 0036 0037 mutable HafasQueryParser m_parser; 0038 }; 0039 0040 } 0041 0042 #endif // KPUBLICTRANSPORT_HAFASQUERYBACKEND_H