File indexing completed on 2024-04-28 03:59:48

0001 /*
0002     SPDX-FileCopyrightText: 2015 Jan Grulich <jgrulich@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "bearer.h"
0008 
0009 #include <QDBusConnection>
0010 #include <QDBusMessage>
0011 
0012 Bearer::Bearer(QObject *parent)
0013     : QObject(parent)
0014     , m_connected(false)
0015     , m_ipTimeout(0)
0016     , m_suspended(false)
0017 {
0018 }
0019 
0020 Bearer::~Bearer()
0021 {
0022 }
0023 
0024 bool Bearer::connected() const
0025 {
0026     return m_connected;
0027 }
0028 
0029 QString Bearer::interface() const
0030 {
0031     return m_interface;
0032 }
0033 
0034 QVariantMap Bearer::ip4Config() const
0035 {
0036     return m_ip4Config;
0037 }
0038 
0039 QVariantMap Bearer::ip6Config() const
0040 {
0041     return m_ip6Config;
0042 }
0043 
0044 uint Bearer::ipTimeout() const
0045 {
0046     return m_ipTimeout;
0047 }
0048 
0049 QVariantMap Bearer::properties() const
0050 {
0051     return m_properties;
0052 }
0053 
0054 bool Bearer::suspended() const
0055 {
0056     return m_suspended;
0057 }
0058 
0059 QString Bearer::bearerPath() const
0060 {
0061     return m_bearerPath;
0062 }
0063 
0064 void Bearer::setBearerPath(const QString &path)
0065 {
0066     m_bearerPath = path;
0067 }
0068 
0069 void Bearer::setEnableNotifications(bool enable)
0070 {
0071     m_enabledNotifications = enable;
0072 }
0073 
0074 void Bearer::setConnected(bool connected)
0075 {
0076     m_connected = connected;
0077 
0078     if (m_enabledNotifications) {
0079         QVariantMap map;
0080         map.insert(QLatin1String("Connected"), m_connected);
0081         QDBusMessage message = QDBusMessage::createSignal(m_bearerPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0082         message << QLatin1String("org.kde.fakemodem.Bearer") << map << QStringList();
0083         QDBusConnection::sessionBus().send(message);
0084     }
0085 }
0086 
0087 void Bearer::setInterface(const QString &interface)
0088 {
0089     m_interface = interface;
0090 
0091     if (m_enabledNotifications) {
0092         QVariantMap map;
0093         map.insert(QLatin1String("Interface"), m_interface);
0094         QDBusMessage message = QDBusMessage::createSignal(m_bearerPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0095         message << QLatin1String("org.kde.fakemodem.Bearer") << map << QStringList();
0096         QDBusConnection::sessionBus().send(message);
0097     }
0098 }
0099 
0100 void Bearer::setIp4Config(const QVariantMap &config)
0101 {
0102     m_ip4Config = config;
0103 
0104     if (m_enabledNotifications) {
0105         QVariantMap map;
0106         map.insert(QLatin1String("Ip4Config"), QVariant::fromValue<QVariantMap>(m_ip4Config));
0107         QDBusMessage message = QDBusMessage::createSignal(m_bearerPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0108         message << QLatin1String("org.kde.fakemodem.Bearer") << map << QStringList();
0109         QDBusConnection::sessionBus().send(message);
0110     }
0111 }
0112 
0113 void Bearer::setIp6Config(const QVariantMap &config)
0114 {
0115     m_ip6Config = config;
0116 
0117     if (m_enabledNotifications) {
0118         QVariantMap map;
0119         map.insert(QLatin1String("Ip6Config"), QVariant::fromValue<QVariantMap>(m_ip6Config));
0120         QDBusMessage message = QDBusMessage::createSignal(m_bearerPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0121         message << QLatin1String("org.kde.fakemodem.Bearer") << map << QStringList();
0122         QDBusConnection::sessionBus().send(message);
0123     }
0124 }
0125 
0126 void Bearer::setIpTimeout(uint timeout)
0127 {
0128     m_ipTimeout = timeout;
0129 
0130     if (m_enabledNotifications) {
0131         QVariantMap map;
0132         map.insert(QLatin1String("IpTimeout"), m_ipTimeout);
0133         QDBusMessage message = QDBusMessage::createSignal(m_bearerPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0134         message << QLatin1String("org.kde.fakemodem.Bearer") << map << QStringList();
0135         QDBusConnection::sessionBus().send(message);
0136     }
0137 }
0138 
0139 void Bearer::setProperties(const QVariantMap &properties)
0140 {
0141     m_properties = properties;
0142 
0143     if (m_enabledNotifications) {
0144         QVariantMap map;
0145         map.insert(QLatin1String("Properties"), QVariant::fromValue<QVariantMap>(m_properties));
0146         QDBusMessage message = QDBusMessage::createSignal(m_bearerPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0147         message << QLatin1String("org.kde.fakemodem.Bearer") << map << QStringList();
0148         QDBusConnection::sessionBus().send(message);
0149     }
0150 }
0151 
0152 void Bearer::setSuspended(bool suspended)
0153 {
0154     m_suspended = suspended;
0155 
0156     if (m_enabledNotifications) {
0157         QVariantMap map;
0158         map.insert(QLatin1String("Suspended"), m_suspended);
0159         QDBusMessage message = QDBusMessage::createSignal(m_bearerPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0160         message << QLatin1String("org.kde.fakemodem.Bearer") << map << QStringList();
0161         QDBusConnection::sessionBus().send(message);
0162     }
0163 }
0164 
0165 void Bearer::Connect()
0166 {
0167     // TODO
0168 }
0169 
0170 void Bearer::Disconnect()
0171 {
0172     // TODO
0173 }
0174 
0175 #include "moc_bearer.cpp"