QList<XQAccessPoint> XQAccessPointManagerPrivate::availableAccessPointsL() const { QList<XQAccessPoint> iaps; RConnectionMonitor monitor; monitor.ConnectL(); CleanupClosePushL(monitor); TRequestStatus status; TPckgBuf<TConnMonNetworkNames> pkgNetworks; TConnMonIapInfoBuf iapBuf; monitor.GetPckgAttribute(EBearerIdAll, 0, KIapAvailability, iapBuf, status); User::WaitForRequest(status) ; if (status.Int() == KErrNone) { XQAccessPoint ap; for(TUint i=0; i<iapBuf().iCount; i++) { ap = accessPointById(iapBuf().iIap[i].iIapId); if (!ap.isNull()) { iaps << ap; } } } CleanupStack::PopAndDestroy(&monitor); return iaps; }
QList<XQAccessPoint> XQAccessPointManagerPrivate::activeAccessPointsL() const { QList<XQAccessPoint> iaps; RConnectionMonitor monitor; monitor.ConnectL(); CleanupClosePushL(monitor); TRequestStatus status; TUint connectionCount; monitor.GetConnectionCount(connectionCount, status); User::WaitForRequest(status); TUint connectionId; TUint subConnectionCount; TUint apId; if (status.Int() == KErrNone) { XQAccessPoint ap; for (TInt i = 1; i <= connectionCount; i++) { monitor.GetConnectionInfo(i, connectionId, subConnectionCount); monitor.GetUintAttribute(connectionId, subConnectionCount, KIAPId, apId, status); User::WaitForRequest(status); ap = accessPointById(apId); if (!ap.isNull()) { iaps << ap; } } } CleanupStack::PopAndDestroy(&monitor); return iaps; }
QList<XQWLAN> XQAccessPointManagerPrivate::availableWLANsL() const { QList<XQWLAN> wlans; RConnectionMonitor monitor; monitor.ConnectL(); CleanupClosePushL(monitor); TRequestStatus status; TPckgBuf<TConnMonNetworkNames> pkgNetworks; monitor.GetPckgAttribute(EBearerIdWLAN, 0, KNetworkNames, pkgNetworks, status); User::WaitForRequest( status ) ; if (status.Int() == KErrNone) { for(TUint i=0; i<pkgNetworks().iCount; i++) { XQWLAN wlan; wlan.d = new XQWLANPrivate(); TBuf<1000> buf16; buf16.Copy(pkgNetworks().iNetwork[i].iName); wlan.d->ssid = QString::fromUtf16(buf16.Ptr(),buf16.Length()); wlan.d->signalStrength = pkgNetworks().iNetwork[i].iSignalStrength; wlans << wlan; } } CleanupStack::PopAndDestroy(&monitor); return wlans; }
// --------------------------------------------------------- // CActiveDisconnectDlgPlugin::IsConnectionL // --------------------------------------------------------- // TBool CActiveDisconnectDlgPlugin::IsConnectionL( CConnectionInfo* aConnectionInfo ) { CLOG_ENTERFN( "CActiveDisconnectDlgPlugin::IsConnectionL" ); TBool result( EFalse ); TUint i( 0 ); TUint connectionCount( 0 ); TUint connNum( 0 ); TUint subConnectionCount( 0 ); TUint connId( 0 ); TInt bearer( 0 ); TInt connStatus( 0 ); //TRequestStatus status; TName apName; RConnectionMonitor connMon; result = connMon.ConnectL(); CLOG_WRITEF( _L( "result: %d" ), result ); CDisconnectDlgActiveWaiter* waiter = CDisconnectDlgActiveWaiter::NewL(); CleanupStack::PushL( waiter ); connMon.GetConnectionCount( connNum, waiter->iStatus ); waiter->WaitForRequest(); //User::WaitForRequest( status ); CLOG_WRITEF( _L( "status: %d" ), waiter->iStatus.Int() ); CLOG_WRITEF( _L( "connNum: %d" ), connNum ); for( i = 1; i < ( connNum + 1 ) && !connectionCount; ++i ) { connMon.GetConnectionInfo( i, connId, subConnectionCount ); connMon.GetStringAttribute( connId, 0, KIAPName, apName, waiter->iStatus ); waiter->WaitForRequest(); //User::WaitForRequest( status ); CLOG_WRITEF( _L( "KIAPName status: %d" ), waiter->iStatus.Int() ); connMon.GetIntAttribute( connId, 0, KBearer, bearer, waiter->iStatus ); waiter->WaitForRequest(); //User::WaitForRequest( status ); CLOG_WRITEF( _L( "KBearer status: %d" ), waiter->iStatus.Int() ); connMon.GetIntAttribute( connId, 0, KConnectionStatus, connStatus, waiter->iStatus ); waiter->WaitForRequest(); //User::WaitForRequest( status ); CLOG_WRITEF( _L( "KConnectionStatus status: %d" ), waiter->iStatus.Int() ); TUint iapId( 0 ); connMon.GetUintAttribute( connId, 0, KIAPId, iapId, waiter->iStatus ); waiter->WaitForRequest(); //User::WaitForRequest( status ); CLOG_WRITEF(_L( "KIAPId status: %d" ), waiter->iStatus.Int() ); CLOG_WRITEF(_L( "iapId: %d" ), iapId ); TConnMonTimeBuf timeBuf; connMon.GetPckgAttribute( connId, 0, KStartTime, timeBuf, waiter->iStatus ); waiter->WaitForRequest(); CLOG_WRITEF(_L( "KStartTime status: %d" ), waiter->iStatus.Int() ); switch( bearer ) { case EBearerGPRS : case EBearerEdgeGPRS : case EBearerExternalGPRS : case EBearerExternalEdgeGPRS : case EBearerWCDMA : case EBearerExternalWCDMA : #ifdef __WINS__ case EBearerLAN : #endif // WINS { if ( ( connStatus == KLinkLayerOpen ) || ( connStatus == KConnectionOpen && bearer >= EBearerExternalCSD ) ) { apName.Trim(); if( apName.Left( KMrouterName().Length() ). CompareF( KMrouterName ) ) { ++connectionCount; aConnectionInfo->SetIapNameL( apName ); aConnectionInfo->SetBearerType( bearer ); aConnectionInfo->SetConnId( connId ); aConnectionInfo->SetIAPId( iapId ); aConnectionInfo->SetStartTime( timeBuf() ); TConnMonClientEnumBuf clientEnum; connMon.GetPckgAttribute( connId, 0, KClientInfo, clientEnum, waiter->iStatus ); waiter->WaitForRequest(); //User::WaitForRequest( status ); aConnectionInfo->SetClientInfo( clientEnum() ); CLOG_WRITEF( _L( "KClientInfo status: %d" ), waiter->iStatus.Int() ); } } break; } default : { break; } } } CleanupStack::PopAndDestroy( waiter ); connMon.Close(); result = connectionCount ? ETrue : EFalse; CLOG_WRITEF( _L( "connectionCount: %d" ), connectionCount ); CLOG_WRITEF( _L( "result: %d" ), result ); CLOG_LEAVEFN( "CActiveDisconnectDlgPlugin::IsConnectionL" ); return result; }