wlanutilities/wlanqtutilities/wrapper/src/wlanqtutilsconmonwrapperinfo_s60.cpp
author hgs
Mon, 24 May 2010 21:11:39 +0300
changeset 31 e8f4211554fb
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
* Private implementation of wrapper for Symbian Connection Monitor
hgs
parents:
diff changeset
    16
* library's scan interface.
hgs
parents:
diff changeset
    17
*/
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
// System includes
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <rconnmon.h>
hgs
parents:
diff changeset
    22
#include <nifvar.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// User includes
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include "wlanqtutils.h"
hgs
parents:
diff changeset
    27
#include "wlanqtutilsconnection.h"
hgs
parents:
diff changeset
    28
#include "wlanqtutilsconmonwrapper.h"
hgs
parents:
diff changeset
    29
#include "wlanqtutilsconmonwrapperinfo_s60_p.h"
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include "OstTraceDefinitions.h"
hgs
parents:
diff changeset
    32
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents:
diff changeset
    33
#include "wlanqtutilsconmonwrapperinfo_s60Traces.h"
hgs
parents:
diff changeset
    34
#endif
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
/*!
hgs
parents:
diff changeset
    37
    \class WlanQtUtilsConMonWrapperInfo
hgs
parents:
diff changeset
    38
    \brief Private wrapper for Symbian Connection Monitor library.
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
    Provides functionality to request information about connections.
hgs
parents:
diff changeset
    41
*/
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
// External function prototypes
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
// Local constants
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// ======== LOCAL FUNCTIONS ========
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
/*!
hgs
parents:
diff changeset
    52
    Constructor.
hgs
parents:
diff changeset
    53
    
hgs
parents:
diff changeset
    54
    @param [in] wrapper Wrapper to report progress to.
hgs
parents:
diff changeset
    55
*/
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
WlanQtUtilsConMonWrapperInfo::WlanQtUtilsConMonWrapperInfo(
hgs
parents:
diff changeset
    58
    WlanQtUtilsConMonWrapper *wrapper) :
hgs
parents:
diff changeset
    59
    iMonitoringConnection(0),
hgs
parents:
diff changeset
    60
    q_ptr(wrapper)
hgs
parents:
diff changeset
    61
{
hgs
parents:
diff changeset
    62
    OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERINFO_WLANQTUTILSCONMONWRAPPERINFO_ENTRY, this);
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    // Errors in Connection Monitor Server connection are fatal so just
hgs
parents:
diff changeset
    65
    // throw them as exceptions
hgs
parents:
diff changeset
    66
    QT_TRAP_THROWING(
hgs
parents:
diff changeset
    67
        iMonitor.ConnectL();
hgs
parents:
diff changeset
    68
        iMonitor.NotifyEventL(*this);
hgs
parents:
diff changeset
    69
        );
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
    OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERINFO_WLANQTUTILSCONMONWRAPPERINFO_EXIT, this);
hgs
parents:
diff changeset
    72
}
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
/*!
hgs
parents:
diff changeset
    75
    Destructor.
hgs
parents:
diff changeset
    76
*/
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
WlanQtUtilsConMonWrapperInfo::~WlanQtUtilsConMonWrapperInfo()
hgs
parents:
diff changeset
    79
{
hgs
parents:
diff changeset
    80
    OstTraceFunctionEntry1(DUP1_WLANQTUTILSCONMONWRAPPERINFO_WLANQTUTILSCONMONWRAPPERINFO_ENTRY, this);
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
    iMonitor.CancelNotifications();
hgs
parents:
diff changeset
    83
    iMonitor.Close();
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    OstTraceFunctionExit1(DUP1_WLANQTUTILSCONMONWRAPPERINFO_WLANQTUTILSCONMONWRAPPERINFO_EXIT, this);
hgs
parents:
diff changeset
    86
}
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
/*!
hgs
parents:
diff changeset
    89
   Getter for active connection information.
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
   @return Information of active connection, if one exists.
hgs
parents:
diff changeset
    92
*/ 
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
WlanQtUtilsConnection *WlanQtUtilsConMonWrapperInfo::ActiveConnection()
hgs
parents:
diff changeset
    95
{
hgs
parents:
diff changeset
    96
    OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERINFO_ACTIVECONNECTION_ENTRY, this);
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
    // Get number of active connections
hgs
parents:
diff changeset
    99
    TRequestStatus status;
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
    WlanQtUtilsConnection *activeConn = NULL;
hgs
parents:
diff changeset
   102
    TUint numConnections = 0;
hgs
parents:
diff changeset
   103
    iMonitor.GetConnectionCount(numConnections, status);
hgs
parents:
diff changeset
   104
    User::WaitForRequest(status);
hgs
parents:
diff changeset
   105
    if (status.Int() == KErrNone) {
hgs
parents:
diff changeset
   106
        // Get connection info of this connection
hgs
parents:
diff changeset
   107
        for (TUint i = 1; i <= numConnections; i++) {
hgs
parents:
diff changeset
   108
            TUint numSubConnections = 0;
hgs
parents:
diff changeset
   109
            TUint connectionId = 0;
hgs
parents:
diff changeset
   110
            TInt ret = iMonitor.GetConnectionInfo(
hgs
parents:
diff changeset
   111
                i,
hgs
parents:
diff changeset
   112
                connectionId,
hgs
parents:
diff changeset
   113
                numSubConnections);
hgs
parents:
diff changeset
   114
            if (ret == KErrNone) {
hgs
parents:
diff changeset
   115
                activeConn = ConnectionInfo(connectionId);
hgs
parents:
diff changeset
   116
                if (activeConn != NULL) {
hgs
parents:
diff changeset
   117
                    // ConnectionInfo() only returns WLAN connections,
hgs
parents:
diff changeset
   118
                    // and there may be only one active WLAN connection,
hgs
parents:
diff changeset
   119
                    // so this is the one we want to return and also
hgs
parents:
diff changeset
   120
                    // remember later.
hgs
parents:
diff changeset
   121
                    Q_ASSERT(iMonitoringConnection == 0 
hgs
parents:
diff changeset
   122
                        || iMonitoringConnection == connectionId);
hgs
parents:
diff changeset
   123
                    iMonitoringConnection = connectionId;
hgs
parents:
diff changeset
   124
                    break;
hgs
parents:
diff changeset
   125
                }
hgs
parents:
diff changeset
   126
            }
hgs
parents:
diff changeset
   127
        }
hgs
parents:
diff changeset
   128
    }
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
    OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERINFO_ACTIVECONNECTION_EXIT, this);
hgs
parents:
diff changeset
   131
    return activeConn;
hgs
parents:
diff changeset
   132
}
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
/*!
hgs
parents:
diff changeset
   135
   Returns information of a connection with the given connection ID.
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
   @param[in] connectionId Connection ID.
hgs
parents:
diff changeset
   138
   @return Information of the given connection, if one exists.
hgs
parents:
diff changeset
   139
*/
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
WlanQtUtilsConnection *WlanQtUtilsConMonWrapperInfo::ConnectionInfo(
hgs
parents:
diff changeset
   142
    uint connectionId)
hgs
parents:
diff changeset
   143
{
hgs
parents:
diff changeset
   144
    OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERINFO_CONNECTIONINFO_ENTRY, this);
hgs
parents:
diff changeset
   145
    
hgs
parents:
diff changeset
   146
    WlanQtUtilsConnection *activeConn = NULL;
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
    if (IsWlanConnection(connectionId)) {
hgs
parents:
diff changeset
   149
        activeConn = new WlanQtUtilsConnection();
hgs
parents:
diff changeset
   150
        activeConn->setConnectionId(connectionId);
hgs
parents:
diff changeset
   151
        if (!ConnectionInfoDetails(activeConn)) {
hgs
parents:
diff changeset
   152
            delete activeConn;
hgs
parents:
diff changeset
   153
            activeConn = NULL;
hgs
parents:
diff changeset
   154
        }
hgs
parents:
diff changeset
   155
    }
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
    OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERINFO_CONNECTIONINFO_EXIT, this);
hgs
parents:
diff changeset
   158
    return activeConn;
hgs
parents:
diff changeset
   159
}
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
/*!
hgs
parents:
diff changeset
   162
   Gets detailed information of a given connection.
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
   @param[out] connection Where to store info. Connection ID must already
hgs
parents:
diff changeset
   165
                          be valid.
hgs
parents:
diff changeset
   166
                          
hgs
parents:
diff changeset
   167
   @return Returns ETrue if detail fetching succeeded.
hgs
parents:
diff changeset
   168
*/
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
TBool WlanQtUtilsConMonWrapperInfo::ConnectionInfoDetails(
hgs
parents:
diff changeset
   171
    WlanQtUtilsConnection *connection)
hgs
parents:
diff changeset
   172
{
hgs
parents:
diff changeset
   173
    OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERINFO_CONNECTIONINFODETAILS_ENTRY, this);
hgs
parents:
diff changeset
   174
    Q_ASSERT(connection != NULL);
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    TBool success = EFalse;
hgs
parents:
diff changeset
   177
    TUint connectionId = connection->connectionId();
hgs
parents:
diff changeset
   178
    TRequestStatus status;
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
    // Get connection IAP ID.
hgs
parents:
diff changeset
   181
    TUint iapId = 0;
hgs
parents:
diff changeset
   182
    iMonitor.GetUintAttribute(
hgs
parents:
diff changeset
   183
        connectionId,
hgs
parents:
diff changeset
   184
        0,
hgs
parents:
diff changeset
   185
        KIAPId,
hgs
parents:
diff changeset
   186
        iapId,
hgs
parents:
diff changeset
   187
        status);
hgs
parents:
diff changeset
   188
    User::WaitForRequest(status);
hgs
parents:
diff changeset
   189
    if (status.Int() == KErrNone) {
hgs
parents:
diff changeset
   190
        connection->setIapId(iapId);
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
        // Get connection status.
hgs
parents:
diff changeset
   193
        TInt connectionStatus = 0;
hgs
parents:
diff changeset
   194
        iMonitor.GetIntAttribute(
hgs
parents:
diff changeset
   195
            connectionId,
hgs
parents:
diff changeset
   196
            0,
hgs
parents:
diff changeset
   197
            KConnectionStatus,
hgs
parents:
diff changeset
   198
            connectionStatus,
hgs
parents:
diff changeset
   199
            status);
hgs
parents:
diff changeset
   200
        User::WaitForRequest(status);
hgs
parents:
diff changeset
   201
        if (status.Int() == KErrNone) {
hgs
parents:
diff changeset
   202
            connection->setConnectionStatus(
hgs
parents:
diff changeset
   203
                ConnMonConnStatusMap(connectionStatus));
hgs
parents:
diff changeset
   204
            success = ETrue;
hgs
parents:
diff changeset
   205
        }
hgs
parents:
diff changeset
   206
    }
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
    OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERINFO_CONNECTIONINFODETAILS_EXIT, this);
hgs
parents:
diff changeset
   209
    return success;
hgs
parents:
diff changeset
   210
}
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
/*!
hgs
parents:
diff changeset
   213
   Handler of Connection Monitor Server events.
hgs
parents:
diff changeset
   214
   
hgs
parents:
diff changeset
   215
   @param [in] connMonEvent Connection monitor event.
hgs
parents:
diff changeset
   216
*/
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
void WlanQtUtilsConMonWrapperInfo::EventL(const CConnMonEventBase& connMonEvent)
hgs
parents:
diff changeset
   219
{
hgs
parents:
diff changeset
   220
    OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERINFO_EVENTL_ENTRY, this);
hgs
parents:
diff changeset
   221
hgs
parents:
diff changeset
   222
    TUint connectionId = connMonEvent.ConnectionId();
hgs
parents:
diff changeset
   223
    
hgs
parents:
diff changeset
   224
    OstTraceExt2(
hgs
parents:
diff changeset
   225
        TRACE_NORMAL,
hgs
parents:
diff changeset
   226
        WLANQTUTILSCONMONWRAPPERINFO_EVENTL_EVENTTYPE,
hgs
parents:
diff changeset
   227
        "WlanQtUtilsConMonWrapperInfo::EventL;connectionId=%u;aConnMonEvent.EventType()=%{ConnMonEvent}",
hgs
parents:
diff changeset
   228
        connectionId,
hgs
parents:
diff changeset
   229
        connMonEvent.EventType());
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
    switch (connMonEvent.EventType()) {
hgs
parents:
diff changeset
   232
    case EConnMonCreateConnection:
hgs
parents:
diff changeset
   233
        // Filter out other than WLAN connections
hgs
parents:
diff changeset
   234
        if (IsWlanConnection(connectionId)) {
hgs
parents:
diff changeset
   235
            iMonitoringConnection = connectionId;
hgs
parents:
diff changeset
   236
            emit q_ptr->connCreatedEventFromWrapper(connectionId);
hgs
parents:
diff changeset
   237
        }
hgs
parents:
diff changeset
   238
        break;
hgs
parents:
diff changeset
   239
        
hgs
parents:
diff changeset
   240
    case EConnMonDeleteConnection:
hgs
parents:
diff changeset
   241
        if (iMonitoringConnection == connectionId) {
hgs
parents:
diff changeset
   242
            iMonitoringConnection = 0;
hgs
parents:
diff changeset
   243
            emit q_ptr->connDeletedEventFromWrapper(connectionId);
hgs
parents:
diff changeset
   244
        }
hgs
parents:
diff changeset
   245
        break;
hgs
parents:
diff changeset
   246
        
hgs
parents:
diff changeset
   247
    case EConnMonConnectionStatusChange:
hgs
parents:
diff changeset
   248
        if (iMonitoringConnection == connectionId) {
hgs
parents:
diff changeset
   249
            // Find out the new status for the connection
hgs
parents:
diff changeset
   250
            const CConnMonConnectionStatusChange *connMonStatusEvent;
hgs
parents:
diff changeset
   251
            connMonStatusEvent =
hgs
parents:
diff changeset
   252
                static_cast< const CConnMonConnectionStatusChange* >(&connMonEvent);
hgs
parents:
diff changeset
   253
            WlanQtUtils::ConnStatus connectionStatus;
hgs
parents:
diff changeset
   254
            connectionStatus =
hgs
parents:
diff changeset
   255
                ConnMonConnStatusMap(connMonStatusEvent->ConnectionStatus());
hgs
parents:
diff changeset
   256
            
hgs
parents:
diff changeset
   257
            OstTraceExt2(
hgs
parents:
diff changeset
   258
                TRACE_NORMAL,
hgs
parents:
diff changeset
   259
                WLANQTUTILSCONMONWRAPPERINFO_EVENTL_CONNSTATUS,
hgs
parents:
diff changeset
   260
                "WlanQtUtilsConMonWrapperInfo::EventL;connectionId=%u;eventConnectionStatusChange->ConnectionStatus()=%{ConnMonConnStatus}",
hgs
parents:
diff changeset
   261
                connectionId,
hgs
parents:
diff changeset
   262
                connMonStatusEvent->ConnectionStatus());
hgs
parents:
diff changeset
   263
    
hgs
parents:
diff changeset
   264
            if (connectionStatus != WlanQtUtils::ConnStatusNone) {
hgs
parents:
diff changeset
   265
                emit q_ptr->connStatusEventFromWrapper(
hgs
parents:
diff changeset
   266
                    connectionId,
hgs
parents:
diff changeset
   267
                    connectionStatus);
hgs
parents:
diff changeset
   268
            }
hgs
parents:
diff changeset
   269
        }
hgs
parents:
diff changeset
   270
        break;
hgs
parents:
diff changeset
   271
        
hgs
parents:
diff changeset
   272
    default:
hgs
parents:
diff changeset
   273
        // Not interesting
hgs
parents:
diff changeset
   274
        break;
hgs
parents:
diff changeset
   275
    }
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
    OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERINFO_EVENTL_EXIT, this);
hgs
parents:
diff changeset
   278
}
hgs
parents:
diff changeset
   279
hgs
parents:
diff changeset
   280
/*!
hgs
parents:
diff changeset
   281
   Maps Connection Monitor's connection status value into
hgs
parents:
diff changeset
   282
   WlanQtUtilsConnectionStatus.
hgs
parents:
diff changeset
   283
   
hgs
parents:
diff changeset
   284
   Note: Mapping is only valid for WLAN connections.
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
   @param connStatus Connection status as used by Connection
hgs
parents:
diff changeset
   287
                     Monitor server. Defined in nifvar.h.
hgs
parents:
diff changeset
   288
   @return Connection status in Wlan Qt Utilities style.
hgs
parents:
diff changeset
   289
*/
hgs
parents:
diff changeset
   290
hgs
parents:
diff changeset
   291
WlanQtUtils::ConnStatus WlanQtUtilsConMonWrapperInfo::ConnMonConnStatusMap(
hgs
parents:
diff changeset
   292
    TInt connStatus)
hgs
parents:
diff changeset
   293
    {    
hgs
parents:
diff changeset
   294
    OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERINFO_CONNMONCONNSTATUSMAP_ENTRY, this);
hgs
parents:
diff changeset
   295
hgs
parents:
diff changeset
   296
    WlanQtUtils::ConnStatus utilsConnStatus;
hgs
parents:
diff changeset
   297
    switch (connStatus) {
hgs
parents:
diff changeset
   298
    // KConnectionOpen is not final status for WLAN, because DHCP is
hgs
parents:
diff changeset
   299
    // run after that
hgs
parents:
diff changeset
   300
    case KConnectionOpen:
hgs
parents:
diff changeset
   301
    case KStartingConnection:
hgs
parents:
diff changeset
   302
        utilsConnStatus = WlanQtUtils::ConnStatusConnecting;
hgs
parents:
diff changeset
   303
        break;
hgs
parents:
diff changeset
   304
        
hgs
parents:
diff changeset
   305
    case KLinkLayerOpen:
hgs
parents:
diff changeset
   306
        utilsConnStatus = WlanQtUtils::ConnStatusConnected;
hgs
parents:
diff changeset
   307
        break;
hgs
parents:
diff changeset
   308
        
hgs
parents:
diff changeset
   309
    case KLinkLayerClosed:
hgs
parents:
diff changeset
   310
        utilsConnStatus = WlanQtUtils::ConnStatusDisconnected;
hgs
parents:
diff changeset
   311
        break;
hgs
parents:
diff changeset
   312
        
hgs
parents:
diff changeset
   313
    default:
hgs
parents:
diff changeset
   314
        // Ignore all other values
hgs
parents:
diff changeset
   315
        utilsConnStatus = WlanQtUtils::ConnStatusNone;
hgs
parents:
diff changeset
   316
        break;
hgs
parents:
diff changeset
   317
    }
hgs
parents:
diff changeset
   318
    
hgs
parents:
diff changeset
   319
    OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERINFO_CONNMONCONNSTATUSMAP_EXIT, this);
hgs
parents:
diff changeset
   320
    return utilsConnStatus;
hgs
parents:
diff changeset
   321
}
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
/*!
hgs
parents:
diff changeset
   324
    Checks the bearer of given connection.
hgs
parents:
diff changeset
   325
    Meant for filtering handling only for WLAN IAP's.
hgs
parents:
diff changeset
   326
    
hgs
parents:
diff changeset
   327
    @param [in] connectionId Connection ID.
hgs
parents:
diff changeset
   328
    
hgs
parents:
diff changeset
   329
    @return Returns ETrue if connection a WLAN connection, otherwise false. 
hgs
parents:
diff changeset
   330
*/
hgs
parents:
diff changeset
   331
hgs
parents:
diff changeset
   332
TBool WlanQtUtilsConMonWrapperInfo::IsWlanConnection(TUint connectionId)
hgs
parents:
diff changeset
   333
{
hgs
parents:
diff changeset
   334
    OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERINFO_ISWLANCONNECTION_ENTRY, this);
hgs
parents:
diff changeset
   335
    
hgs
parents:
diff changeset
   336
    TBool result = EFalse;
hgs
parents:
diff changeset
   337
    TRequestStatus status;
hgs
parents:
diff changeset
   338
hgs
parents:
diff changeset
   339
    TInt bearer = 0;
hgs
parents:
diff changeset
   340
    iMonitor.GetIntAttribute(
hgs
parents:
diff changeset
   341
        connectionId,
hgs
parents:
diff changeset
   342
        0,
hgs
parents:
diff changeset
   343
        KBearer,
hgs
parents:
diff changeset
   344
        bearer,
hgs
parents:
diff changeset
   345
        status);
hgs
parents:
diff changeset
   346
    User::WaitForRequest(status);
hgs
parents:
diff changeset
   347
hgs
parents:
diff changeset
   348
    if (status.Int() == KErrNone && bearer == EBearerWLAN) {
hgs
parents:
diff changeset
   349
        result = ETrue;
hgs
parents:
diff changeset
   350
    }
hgs
parents:
diff changeset
   351
    
hgs
parents:
diff changeset
   352
    OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERINFO_ISWLANCONNECTION_EXIT, this);
hgs
parents:
diff changeset
   353
    return result;
hgs
parents:
diff changeset
   354
}