File indexing completed on 2024-12-08 07:19:12

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_VEHICLELAYOUTREPLY_H
0008 #define KPUBLICTRANSPORT_VEHICLELAYOUTREPLY_H
0009 
0010 #include "reply.h"
0011 
0012 namespace KPublicTransport {
0013 
0014 class AbstractBackend;
0015 class Stopover;
0016 class Vehicle;
0017 class VehicleLayoutRequest;
0018 class VehicleLayoutReplyPrivate;
0019 
0020 /** Reply to a vehicle layout query. */
0021 class KPUBLICTRANSPORT_EXPORT VehicleLayoutReply : public Reply
0022 {
0023     Q_OBJECT
0024 public:
0025     ~VehicleLayoutReply() override;
0026 
0027     /** The request this is the reply for. */
0028     VehicleLayoutRequest request() const;
0029 
0030     /** The requested Stopover information, including the vehicle and platform layout. */
0031     Stopover stopover() const;
0032 
0033 private:
0034     friend class Manager;
0035     friend class ManagerPrivate;
0036     explicit VehicleLayoutReply(const VehicleLayoutRequest &req, QObject *parent = nullptr);
0037 
0038     friend class AbstractBackend;
0039     Q_DECL_HIDDEN void addResult(const Stopover &stopover);
0040     using Reply::addError;
0041     Q_DECL_HIDDEN void addError(const AbstractBackend *backend, Reply::Error error, const QString &errorMsg);
0042 
0043     Q_DECLARE_PRIVATE(VehicleLayoutReply)
0044 };
0045 
0046 }
0047 
0048 #endif // KPUBLICTRANSPORT_VEHICLELAYOUTREPLY_H