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

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_BACKEND_P_H
0008 #define KPUBLICTRANSPORT_BACKEND_P_H
0009 
0010 #include "kpublictransport_export.h"
0011 
0012 #include "coveragearea.h"
0013 
0014 #include <QSharedData>
0015 #include <QString>
0016 
0017 #include <memory>
0018 
0019 class QJsonObject;
0020 
0021 namespace KPublicTransport {
0022 
0023 class AbstractBackend;
0024 class Backend;
0025 
0026 class BackendPrivate : public QSharedData {
0027 public:
0028     /** @internal exported for tooling. */
0029     KPUBLICTRANSPORT_EXPORT static const AbstractBackend* impl(const Backend &b);
0030     static void setImpl(Backend &b, std::unique_ptr<AbstractBackend> &&impl);
0031     static Backend fromJson(const QJsonObject &obj);
0032 
0033     std::unique_ptr<AbstractBackend> m_backendImpl;
0034     QString name;
0035     QString description;
0036     CoverageArea coverage[3];
0037 };
0038 
0039 }
0040 
0041 #endif // KPUBLICTRANSPORT_BACKEND_P_H