src/plugins/bearer/connman/qconnmanservice_linux.cpp
changeset 37 758a864f9613
parent 33 3e2da88830cd
equal deleted inserted replaced
36:ef0373b55136 37:758a864f9613
    51 #include <QtDBus/QDBusObjectPath>
    51 #include <QtDBus/QDBusObjectPath>
    52 #include <QtDBus/QDBusPendingCall>
    52 #include <QtDBus/QDBusPendingCall>
    53 
    53 
    54 #include "qconnmanservice_linux_p.h"
    54 #include "qconnmanservice_linux_p.h"
    55 
    55 
       
    56 #ifndef QT_NO_BEARERMANAGEMENT
       
    57 #ifndef QT_NO_DBUS
    56 
    58 
    57 QT_BEGIN_NAMESPACE
    59 QT_BEGIN_NAMESPACE
    58 static QDBusConnection dbusConnection = QDBusConnection::systemBus();
    60 static QDBusConnection dbusConnection = QDBusConnection::systemBus();
    59 
    61 
    60 
    62 
   127     return var;
   129     return var;
   128 }
   130 }
   129 
   131 
   130 QVariantMap QConnmanManagerInterface::getProperties()
   132 QVariantMap QConnmanManagerInterface::getProperties()
   131 {
   133 {
   132     QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
   134     if(this->isValid()) {
   133     return reply.value();
   135         QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
       
   136         return reply.value();
       
   137     } else return QVariantMap();
   134 }
   138 }
   135 
   139 
   136 QString QConnmanManagerInterface::getState()
   140 QString QConnmanManagerInterface::getState()
   137 {
   141 {
   138     QDBusReply<QString > reply =  this->call("GetState");
   142     QDBusReply<QString > reply =  this->call("GetState");
   475 {
   479 {
   476     QVariant var;
   480     QVariant var;
   477     QVariantMap map = getProperties();
   481     QVariantMap map = getProperties();
   478     if (map.contains(property)) {
   482     if (map.contains(property)) {
   479         var = map.value(property);
   483         var = map.value(property);
   480     } else {
   484     } 
   481         qDebug() <<__FUNCTION__<< "Could not find" << property;
       
   482     }
       
   483     return var;
   485     return var;
   484 }
   486 }
   485 
   487 
   486 // properties
   488 // properties
   487 QString QConnmanProfileInterface::getName()
   489 QString QConnmanProfileInterface::getName()
   516 {
   518 {
   517 }
   519 }
   518 
   520 
   519 void QConnmanServiceInterface::connectNotify(const char *signal)
   521 void QConnmanServiceInterface::connectNotify(const char *signal)
   520 {
   522 {
   521 //    qWarning() << __FUNCTION__ << signal << this->path();
       
   522 
       
   523     if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
   523     if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
   524         dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
   524         dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
   525                                this->path(),
   525                                this->path(),
   526                                QLatin1String(CONNMAN_SERVICE_INTERFACE),
   526                                QLatin1String(CONNMAN_SERVICE_INTERFACE),
   527                                QLatin1String("PropertyChanged"),
   527                                QLatin1String("PropertyChanged"),
   549     }
   549     }
   550 }
   550 }
   551 
   551 
   552 QVariantMap QConnmanServiceInterface::getProperties()
   552 QVariantMap QConnmanServiceInterface::getProperties()
   553 {
   553 {
   554     QDBusReply<QVariantMap> reply =  this->call(QLatin1String("GetProperties"));
   554     if(this->isValid()) {
   555     return reply.value();
   555         QDBusReply<QVariantMap> reply =  this->call(QLatin1String("GetProperties"));
       
   556         return reply.value();
       
   557     }
       
   558     else
       
   559         return QVariantMap();
   556 }
   560 }
   557 
   561 
   558 QVariant QConnmanServiceInterface::getProperty(const QString &property)
   562 QVariant QConnmanServiceInterface::getProperty(const QString &property)
   559 {
   563 {
   560     QVariant var;
   564     QVariant var;
   561     QVariantMap map = getProperties();
   565     QVariantMap map = getProperties();
   562     if (map.contains(property)) {
   566     if (map.contains(property)) {
   563         var = map.value(property);
   567         var = map.value(property);
   564     } else {
   568     } 
   565 //        qDebug() <<__FUNCTION__<< "Could not find" << property;
       
   566     }
       
   567     return var;
   569     return var;
   568 }
   570 }
   569 
   571 
   570 // clearProperty
   572 // clearProperty
   571 void QConnmanServiceInterface::connect()
   573 void QConnmanServiceInterface::connect()
   722 QVariantMap QConnmanServiceInterface::getEthernet()
   724 QVariantMap QConnmanServiceInterface::getEthernet()
   723 {
   725 {
   724     QVariant var = getProperty("Ethernet");
   726     QVariant var = getProperty("Ethernet");
   725     return qdbus_cast<QVariantMap >(var);
   727     return qdbus_cast<QVariantMap >(var);
   726 }
   728 }
       
   729 
       
   730 QString QConnmanServiceInterface::getMethod()
       
   731 {
       
   732     QVariant var;
       
   733     QVariantMap map = getEthernet();
       
   734     QMapIterator<QString,QVariant> it(map);
       
   735     while(it.hasNext()) {
       
   736         it.next();
       
   737         if(it.key() == "Method") {
       
   738             return it.value().toString();
       
   739         }
       
   740     }
       
   741  return QString();
       
   742 }
       
   743 
       
   744 QString QConnmanServiceInterface::getInterface()
       
   745 {
       
   746     QVariant var;
       
   747     QVariantMap map = getEthernet();
       
   748 
       
   749     QMapIterator<QString,QVariant> it(map);
       
   750     while(it.hasNext()) {
       
   751         it.next();
       
   752         if(it.key() == "Interface") {
       
   753             return it.value().toString();
       
   754         }
       
   755     }
       
   756 
       
   757     return QString();
       
   758 }
       
   759 
       
   760 QString QConnmanServiceInterface::getMacAddress()
       
   761 {
       
   762     QVariant var;
       
   763     QVariantMap map = getEthernet();
       
   764 
       
   765     QMapIterator<QString,QVariant> it(map);
       
   766     while(it.hasNext()) {
       
   767         it.next();
       
   768         if(it.key() == "Address") {
       
   769             return it.value().toString();
       
   770         }
       
   771     }
       
   772     return QString();
       
   773 }
       
   774 
       
   775 quint16 QConnmanServiceInterface::getMtu()
       
   776 {
       
   777     quint16 mtu=0;
       
   778     QVariant var;
       
   779     QVariantMap map = getEthernet();
       
   780 
       
   781     QMapIterator<QString,QVariant> it(map);
       
   782     while(it.hasNext()) {
       
   783         it.next();
       
   784         if(it.key() == "MTU") {
       
   785             return it.value().toUInt();
       
   786         }
       
   787     }
       
   788     return mtu;
       
   789 }
       
   790 
       
   791 quint16 QConnmanServiceInterface::getSpeed()
       
   792 {
       
   793     quint16 speed=0;
       
   794     QVariant var;
       
   795     QVariantMap map = getEthernet();
       
   796 
       
   797     QMapIterator<QString,QVariant> it(map);
       
   798     while(it.hasNext()) {
       
   799         it.next();
       
   800         if(it.key() == "Speed") {
       
   801             return it.value().toUInt();
       
   802         }
       
   803     }
       
   804     return speed;
       
   805 }
       
   806 
       
   807 QString QConnmanServiceInterface::getDuplex()
       
   808 {
       
   809     QVariant var;
       
   810     QVariantMap map = getEthernet();
       
   811 
       
   812     QMapIterator<QString,QVariant> it(map);
       
   813     while(it.hasNext()) {
       
   814         it.next();
       
   815         if(it.key() == "Duplex") {
       
   816             return it.value().toString();
       
   817         }
       
   818     }
       
   819     return QString();
       
   820 }
       
   821 
   727 
   822 
   728 bool QConnmanServiceInterface::isOfflineMode()
   823 bool QConnmanServiceInterface::isOfflineMode()
   729 {
   824 {
   730     QVariant var = getProperty("OfflineMode");
   825     QVariant var = getProperty("OfflineMode");
   731     return qdbus_cast<bool>(var);
   826     return qdbus_cast<bool>(var);
   887 {
   982 {
   888 }
   983 }
   889 
   984 
   890 quint32 QConnmanCounterInterface::getReceivedByteCount()
   985 quint32 QConnmanCounterInterface::getReceivedByteCount()
   891 {
   986 {
   892 return 0;
   987     return 0;
   893 }
   988 }
   894 
   989 
   895 quint32 QConnmanCounterInterface::getTransmittedByteCount()
   990 quint32 QConnmanCounterInterface::getTransmittedByteCount()
   896 {
   991 {
   897 return 0;
   992     return 0;
       
   993 }
       
   994 
       
   995 quint64 QConnmanCounterInterface::getTimeOnline()
       
   996 {
       
   997     return 0;
   898 }
   998 }
   899 
   999 
   900 /////////////////////////////////////////
  1000 /////////////////////////////////////////
   901 QConnmanDeviceInterface::QConnmanDeviceInterface(const QString &dbusPathName,QObject *parent)
  1001 QConnmanDeviceInterface::QConnmanDeviceInterface(const QString &dbusPathName,QObject *parent)
   902     : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
  1002     : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
   948     return reply.value();
  1048     return reply.value();
   949 }
  1049 }
   950 
  1050 
   951 bool QConnmanDeviceInterface::setProperty(const QString &name, const QDBusVariant &value)
  1051 bool QConnmanDeviceInterface::setProperty(const QString &name, const QDBusVariant &value)
   952 {
  1052 {
   953 
       
   954 //    QList<QVariant> args;
       
   955     qWarning() << __FUNCTION__ << name << value.variant();
       
   956 //    args << qVariantFromValue(name);
       
   957 //    args << qVariantFromValue(value);
       
   958 
       
   959     QDBusMessage reply = this->call(QLatin1String("SetProperty"),name, qVariantFromValue(value));
  1053     QDBusMessage reply = this->call(QLatin1String("SetProperty"),name, qVariantFromValue(value));
   960 qWarning() << reply.errorMessage();
       
   961 
       
   962     return true;
  1054     return true;
   963 }
  1055 }
   964 
  1056 
   965 void QConnmanDeviceInterface::scan()
  1057 void QConnmanDeviceInterface::scan()
   966 {
  1058 {
  1045     QList<QVariant> args;
  1137     QList<QVariant> args;
  1046     args << qVariantFromValue(QString("Powered"))
  1138     args << qVariantFromValue(QString("Powered"))
  1047     << qVariantFromValue(QDBusVariant(powered));
  1139     << qVariantFromValue(QDBusVariant(powered));
  1048 
  1140 
  1049     QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args);
  1141     QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args);
  1050     qWarning() << reply.errorMessage() << reply.errorName();
       
  1051     return true;
  1142     return true;
  1052 }
  1143 }
  1053 
  1144 
  1054 QConnmanDBusHelper::QConnmanDBusHelper(QObject * parent)
  1145 QConnmanDBusHelper::QConnmanDBusHelper(QObject * parent)
  1055         : QObject(parent)
  1146         : QObject(parent)
  1061 }
  1152 }
  1062 
  1153 
  1063 void QConnmanDBusHelper::propertyChanged(const QString &item, const QDBusVariant &var)
  1154 void QConnmanDBusHelper::propertyChanged(const QString &item, const QDBusVariant &var)
  1064 {
  1155 {
  1065     QDBusMessage msg = this->message();
  1156     QDBusMessage msg = this->message();
  1066 //    qWarning() << sender();
       
  1067  //   qWarning()  << msg.interface() << msg.path() << item << var.variant() <<"\n";
       
  1068     Q_EMIT propertyChangedContext(msg.path() ,item, var);
  1157     Q_EMIT propertyChangedContext(msg.path() ,item, var);
  1069 }
  1158 }
  1070 
  1159 
  1071 /////////////////
  1160 /////////////////
  1072 QT_END_NAMESPACE
  1161 QT_END_NAMESPACE
       
  1162 
       
  1163 #endif // QT_NO_DBUS
       
  1164 #endif // QT_NO_BEARERMANAGEMENT
       
  1165