File indexing completed on 2024-05-12 04:42:40
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_OPENJOURNEYPLANNERREQUESTBUILDER_H 0008 #define KPUBLICTRANSPORT_OPENJOURNEYPLANNERREQUESTBUILDER_H 0009 0010 #include <QString> 0011 0012 class QXmlStreamWriter; 0013 0014 namespace KPublicTransport { 0015 0016 class JourneyRequest; 0017 class Location; 0018 class LocationRequest; 0019 class StopoverRequest; 0020 0021 /** Generate XML requests for Open Journey Planner and TRIAS. */ 0022 class OpenJourneyPlannerRequestBuilder 0023 { 0024 public: 0025 explicit OpenJourneyPlannerRequestBuilder(); 0026 ~OpenJourneyPlannerRequestBuilder(); 0027 0028 void setRequestorRef(const QString &ref); 0029 /** Create TRIAS rather than Open Journey Planner requests. */ 0030 void setUseTrias(bool isTrias); 0031 0032 QByteArray buildLocationInformationRequest(const LocationRequest &req) const; 0033 QByteArray buildStopEventRequest(const StopoverRequest &req) const; 0034 QByteArray buildTripRequest(const JourneyRequest &req) const; 0035 0036 /** @internal produce indented output for unit tests. */ 0037 void setTestMode(bool testMode); 0038 0039 private: 0040 void setupWriter(QXmlStreamWriter &w) const; 0041 void writeStartServiceRequest(QXmlStreamWriter &w) const; 0042 void writeEndServiceRequest(QXmlStreamWriter &w) const; 0043 void writePlaceRef(QXmlStreamWriter &w, const Location &loc) const; 0044 void writeRequestTimestamp(QXmlStreamWriter &w) const; 0045 0046 QString ns() const; 0047 0048 QString m_requestorRef; 0049 bool m_useTrias = false; 0050 bool m_testMode = false; 0051 }; 0052 0053 } 0054 0055 #endif // KPUBLICTRANSPORT_OPENJOURNEYPLANNERREQUESTBUILDER_H