void QConnmanEngine::disconnectFromId(const QString &id) { QMutexLocker locker(&mutex); QString servicePath = serviceFromId(id); QConnmanServiceInterface serv(servicePath); if(!serv.isValid()) { emit connectionError(id, DisconnectionError); } else { serv.disconnect(); } }
void QConnmanEngine::connectToId(const QString &id) { QMutexLocker locker(&mutex); QString servicePath = serviceFromId(id); QConnmanServiceInterface serv(servicePath); if(!serv.isValid()) { emit connectionError(id, QBearerEngineImpl::InterfaceLookupError); } else { serv.connect(); } }
QNetworkSession::State QConnmanEngine::sessionStateForId(const QString &id) { QMutexLocker locker(&mutex); QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); if (!ptr) return QNetworkSession::Invalid; if (!ptr->isValid) { return QNetworkSession::Invalid; } QString service = serviceFromId(id); QConnmanServiceInterface serv(service); QString servState = serv.getState(); if(serv.isFavorite() && (servState == QLatin1String("idle") || servState == QLatin1String("failure"))) { return QNetworkSession::Disconnected; } if(servState == QLatin1String("association") || servState == QLatin1String("configuration") || servState == QLatin1String("login")) { return QNetworkSession::Connecting; } if(servState == QLatin1String("ready") || servState == QLatin1String("online")) { return QNetworkSession::Connected; } if ((ptr->state & QNetworkConfiguration::Discovered) == QNetworkConfiguration::Discovered) { return QNetworkSession::Disconnected; } else if ((ptr->state & QNetworkConfiguration::Defined) == QNetworkConfiguration::Defined) { return QNetworkSession::NotAvailable; } else if ((ptr->state & QNetworkConfiguration::Undefined) == QNetworkConfiguration::Undefined) { return QNetworkSession::NotAvailable; } return QNetworkSession::Invalid; }
void QConnmanEngine::disconnectFromId(const QString &id) { QMutexLocker locker(&mutex); QString servicePath = serviceFromId(id); QConnmanServiceInterface serv(servicePath); if(!serv.isValid()) { emit connectionError(id, DisconnectionError); } else { if(serv.getType() != QLatin1String("cellular")) { serv.disconnect(); } else { QOfonoManagerInterface ofonoManager(0); QString modemPath = ofonoManager.currentModem().path(); QOfonoDataConnectionManagerInterface dc(modemPath,0); foreach(const QDBusObjectPath dcPath,dc.getPrimaryContexts()) { if(dcPath.path().contains(servicePath.section(QLatin1Char('_'),-1))) { QOfonoPrimaryDataContextInterface primaryContext(dcPath.path(),0); primaryContext.setActive(false); } } } } }
void QConnmanEngine::connectToId(const QString &id) { QMutexLocker locker(&mutex); QString servicePath = serviceFromId(id); QConnmanServiceInterface serv(servicePath); if(!serv.isValid()) { emit connectionError(id, QBearerEngineImpl::InterfaceLookupError); } else { if(serv.getType() != "cellular") { serv.connect(); } else { QOfonoManagerInterface ofonoManager(0); QString modemPath = ofonoManager.currentModem().path(); QOfonoDataConnectionManagerInterface dc(modemPath,0); foreach(const QDBusObjectPath dcPath,dc.getPrimaryContexts()) { if(dcPath.path().contains(servicePath.section("_",-1))) { QOfonoPrimaryDataContextInterface primaryContext(dcPath.path(),0); primaryContext.setActive(true); } } } } }