File indexing completed on 2024-04-28 03:50:31

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2010 Dennis Nienhüser <nienhueser@kde.org>
0004 
0005 #ifndef MARBLE_HOSTIPRUNNER_H
0006 #define MARBLE_HOSTIPRUNNER_H
0007 
0008 #include "SearchRunner.h"
0009 
0010 #include <QString>
0011 #include <QHostInfo>
0012 #include <QNetworkAccessManager>
0013 #include <QNetworkRequest>
0014 
0015 class QNetworkReply;
0016 
0017 namespace Marble
0018 {
0019 
0020 class HostipRunner : public SearchRunner
0021 {
0022     Q_OBJECT
0023 public:
0024     explicit HostipRunner(QObject *parent = nullptr);
0025 
0026     ~HostipRunner() override;
0027 
0028 private Q_SLOTS:
0029     void get();
0030 
0031     // Http request with hostip.info done
0032     void slotRequestFinished( QNetworkReply* );
0033 
0034     // IP address lookup finished
0035     void slotLookupFinished(const QHostInfo &host);
0036 
0037     // No results (or an error)
0038     void slotNoResults();
0039 
0040     void search( const QString &searchTerm, const GeoDataLatLonBox &preferred ) override;
0041 
0042 private:
0043     QHostInfo m_hostInfo;
0044 
0045     QNetworkAccessManager m_networkAccessManager;
0046 
0047     QNetworkRequest m_request;
0048 };
0049 
0050 }
0051 
0052 #endif