summaryrefslogtreecommitdiffstats
path: root/src/location/maps/qgeoserviceproviderfactory.h
blob: e65f4dbd36d1fb891d1f2d8355297c8cfa5fd9de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

#ifndef QGEOSERVICEPROVIDERFACTORY_H
#define QGEOSERVICEPROVIDERFACTORY_H

#include <QtLocation/QGeoServiceProvider>

#include <QtCore/QtPlugin>
#include <QtCore/QMap>
#include <QtCore/QString>

QT_BEGIN_NAMESPACE
class QQmlEngine;

class Q_LOCATION_EXPORT QGeoServiceProviderFactory
{
public:
    virtual ~QGeoServiceProviderFactory() {}

    virtual QGeoCodingManagerEngine *createGeocodingManagerEngine(const QVariantMap &parameters,
            QGeoServiceProvider::Error *error,
            QString *errorString) const;
    virtual QGeoMappingManagerEngine *createMappingManagerEngine(const QVariantMap &parameters,
            QGeoServiceProvider::Error *error,
            QString *errorString) const;
    virtual QGeoRoutingManagerEngine *createRoutingManagerEngine(const QVariantMap &parameters,
            QGeoServiceProvider::Error *error,
            QString *errorString) const;
    virtual QPlaceManagerEngine *createPlaceManagerEngine(const QVariantMap &parameters,
            QGeoServiceProvider::Error *error,
            QString *errorString) const;

    virtual void setQmlEngine(QQmlEngine * engine);
};

Q_DECLARE_INTERFACE(QGeoServiceProviderFactory,
                    "org.qt-project.qt.geoservice.serviceproviderfactory/6.0")

QT_END_NAMESPACE

#endif