Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
georoutereply_esri.cpp
Go to the documentation of this file.
1
// Copyright (C) 2013-2018 Esri <contracts@esri.com>
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
include
"georoutereply_esri.h"
5
#
include
"georoutejsonparser_esri.h"
6
7
#
include
<
QJsonDocument
>
8
9
QT_BEGIN_NAMESPACE
10
11
// JSON reference:
12
// https://resources.arcgis.com/en/help/arcgis-rest-api/#/Route_service_with_synchronous_execution/02r300000036000000/
13
14
GeoRouteReplyEsri::GeoRouteReplyEsri(
QNetworkReply
*
reply
,
const
QGeoRouteRequest
&
request
,
15
QObject
*
parent
) :
16
QGeoRouteReply(request, parent)
17
{
18
if
(!reply) {
19
setError(UnknownError, QStringLiteral(
"Null reply"
));
20
return
;
21
}
22
connect(reply, &QNetworkReply::finished,
23
this
, &GeoRouteReplyEsri::networkReplyFinished);
24
connect(reply, &QNetworkReply::errorOccurred,
25
this
, &GeoRouteReplyEsri::networkReplyError);
26
connect(
this
, &QGeoRouteReply::aborted, reply, &QNetworkReply::abort);
27
connect(
this
, &QObject::destroyed, reply, &QObject::deleteLater);
28
}
29
30
GeoRouteReplyEsri::~GeoRouteReplyEsri()
31
{
32
}
33
34
void
GeoRouteReplyEsri::networkReplyFinished()
35
{
36
QNetworkReply *reply =
static_cast
<QNetworkReply *>(sender());
37
reply->deleteLater();
38
39
if
(reply->error() != QNetworkReply::NoError)
40
return
;
41
42
QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
43
GeoRouteJsonParserEsri
parser(document);
44
45
if
(parser
.
isValid
(
)
)
46
{
47
setRoutes(parser.routes());
48
setFinished(
true
);
49
}
else
{
50
setError(QGeoRouteReply::ParseError, parser.errorString());
51
}
52
}
53
54
void
GeoRouteReplyEsri::networkReplyError(QNetworkReply::NetworkError error)
55
{
56
Q_UNUSED(error);
57
QNetworkReply *reply =
static_cast
<QNetworkReply *>(sender());
58
reply->deleteLater();
59
setError(QGeoRouteReply::CommunicationError, reply->errorString());
60
}
61
62
QT_END_NAMESPACE
GeoRouteJsonParserEsri
Definition
georoutejsonparser_esri.h:15
GeoRouteJsonParserEsri::isValid
bool isValid() const
Definition
georoutejsonparser_esri.cpp:80
QNetworkReply
The QNetworkReply class contains the data and headers for a request sent with QNetworkAccessManager.
Definition
qnetworkreply.h:30
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtlocation
src
plugins
geoservices
esri
georoutereply_esri.cpp
Generated on
for Qt by
1.18.0