/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2016 Simon Stürz * * * * This file is part of nymea. * * * * nymea is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, version 2 of the License. * * * * nymea is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with nymea. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef NETWORKMANAGERHANDLER_H #define NETWORKMANAGERHANDLER_H #include #include "jsonrpc/jsonhandler.h" #include "networkmanager/networkmanager.h" namespace nymeaserver { class NetworkManagerHandler : public JsonHandler { Q_OBJECT public: explicit NetworkManagerHandler(QObject *parent = nullptr); QString name() const; Q_INVOKABLE JsonReply *GetNetworkStatus(const QVariantMap ¶ms); Q_INVOKABLE JsonReply *EnableNetworking(const QVariantMap ¶ms); Q_INVOKABLE JsonReply *EnableWirelessNetworking(const QVariantMap ¶ms); Q_INVOKABLE JsonReply *GetWirelessAccessPoints(const QVariantMap ¶ms); Q_INVOKABLE JsonReply *GetNetworkDevices(const QVariantMap ¶ms); Q_INVOKABLE JsonReply *ScanWifiNetworks(const QVariantMap ¶ms); Q_INVOKABLE JsonReply *ConnectWifiNetwork(const QVariantMap ¶ms); Q_INVOKABLE JsonReply *DisconnectInterface(const QVariantMap ¶ms); private: QVariantMap packNetworkManagerStatus(); signals: // NetworkManager void NetworkStatusChanged(const QVariantMap ¶ms); // NetworkDevices void WiredNetworkDeviceAdded(const QVariantMap ¶ms); void WiredNetworkDeviceRemoved(const QVariantMap ¶ms); void WiredNetworkDeviceChanged(const QVariantMap ¶ms); void WirelessNetworkDeviceAdded(const QVariantMap ¶ms); void WirelessNetworkDeviceRemoved(const QVariantMap ¶ms); void WirelessNetworkDeviceChanged(const QVariantMap ¶ms); private slots: // NetworkManager void onNetworkManagerStatusChanged(); // NetworkDevices void onWirelessNetworkDeviceAdded(WirelessNetworkDevice *networkDevice); void onWirelessNetworkDeviceRemoved(const QString &interface); void onWirelessNetworkDeviceChanged(WirelessNetworkDevice *networkDevice); void onWiredNetworkDeviceAdded(WiredNetworkDevice *networkDevice); void onWiredNetworkDeviceRemoved(const QString &interface); void onWiredNetworkDeviceChanged(WiredNetworkDevice *networkDevice); private: QVariantMap packWirelessAccessPoint(WirelessAccessPoint *wirelessAccessPoint); QVariantMap packWiredNetworkDevice(WiredNetworkDevice *networkDevice); QVariantMap packWirelessNetworkDevice(WirelessNetworkDevice *networkDevice); QVariantMap statusToReply(NetworkManager::NetworkManagerError status) const; }; } #endif // NETWORKMANAGERHANDLER_H