connectionmonitoring/connmon/connectionmonitor/src/ConnMonBearerGroupManager.cpp
changeset 0 5a93021fdf25
equal deleted inserted replaced
-1:000000000000 0:5a93021fdf25
       
     1 /*
       
     2 * Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Implementation for bearer and bearer group mapping.
       
    15 *
       
    16 */
       
    17 
       
    18 #include "ConnMonBearerGroupManager.h"
       
    19 #include "log.h"
       
    20 
       
    21 // ---------------------------------------------------------------------------
       
    22 // Constructor
       
    23 // ---------------------------------------------------------------------------
       
    24 //
       
    25 CConnMonBearerGroupManager::CConnMonBearerGroupManager()
       
    26     {
       
    27     }
       
    28 
       
    29 // ---------------------------------------------------------------------------
       
    30 // Constructor
       
    31 // ---------------------------------------------------------------------------
       
    32 //
       
    33 CConnMonBearerGroupManager* CConnMonBearerGroupManager::NewL()
       
    34     {
       
    35     CConnMonBearerGroupManager* bgm = new( ELeave ) CConnMonBearerGroupManager();
       
    36 
       
    37     CleanupStack::PushL( bgm );
       
    38     bgm->ConstructL();
       
    39     CleanupStack::Pop( bgm );
       
    40 
       
    41     return bgm;
       
    42     }
       
    43 
       
    44 // ---------------------------------------------------------------------------
       
    45 // Constructor
       
    46 // ---------------------------------------------------------------------------
       
    47 //
       
    48 void CConnMonBearerGroupManager::ConstructL()
       
    49     {
       
    50     // Create group masks for each bearer
       
    51     // NOTE: Masks must be appended in correct order to be able to use
       
    52     // TConnMonDetailedBearer enumeration as indexes
       
    53 
       
    54     iBearerGroupMasks1.Reset();
       
    55     // EBearerUnknown
       
    56     TUint unknown( 0 );
       
    57     User::LeaveIfError( iBearerGroupMasks1.Append( unknown ) );
       
    58 
       
    59     //EBearerCSD
       
    60     TUint csd = EBearerGroupCellular | EBearerGroupCircuitSwitched | EBearerGroup2G;
       
    61     User::LeaveIfError( iBearerGroupMasks1.Append( csd ) );
       
    62 
       
    63     // EBearerWCDMA
       
    64     TUint wcdma = EBearerGroupCellular | EBearerGroupCellularPacket | EBearerGroup3G;
       
    65     User::LeaveIfError( iBearerGroupMasks1.Append( wcdma ) );
       
    66 
       
    67     // EBearerLAN
       
    68     TUint lan = EBearerGroupNonCellular | EBearerGroupLANBased | EBearerGroupWired;
       
    69     User::LeaveIfError( iBearerGroupMasks1.Append( lan ) );
       
    70 
       
    71     // EBearerCDMA2000
       
    72     TUint cdma2000 = 0;
       
    73     User::LeaveIfError( iBearerGroupMasks1.Append( cdma2000 ) );
       
    74 
       
    75     // EBearerGPRS
       
    76     TUint gprs = EBearerGroupCellular | EBearerGroupCellularPacket |
       
    77                  EBearerGroup2G | EBearerGroup2GPacket;
       
    78     User::LeaveIfError( iBearerGroupMasks1.Append( gprs ) );
       
    79 
       
    80     // EBearerHSCSD
       
    81     TUint hscsd = EBearerGroupCellular | EBearerGroupCircuitSwitched | EBearerGroup2G;
       
    82     User::LeaveIfError( iBearerGroupMasks1.Append( hscsd ) );
       
    83 
       
    84     // EBearerEdgeGPRS
       
    85     TUint egprs = EBearerGroupCellular | EBearerGroupCellularPacket |
       
    86                   EBearerGroup2G | EBearerGroup2GPacket;
       
    87     User::LeaveIfError( iBearerGroupMasks1.Append( egprs ) );
       
    88 
       
    89     // EBearerWLAN
       
    90     TUint wlan = EBearerGroupNonCellular | EBearerGroupLANBased | EBearerGroupWLAN;
       
    91     User::LeaveIfError( iBearerGroupMasks1.Append( wlan ) );
       
    92 
       
    93     // EBearerBluetooth
       
    94     TUint bt = EBearerGroupNonCellular | EBearerGroupIPOverConnectivityProtocol;
       
    95     User::LeaveIfError( iBearerGroupMasks1.Append( bt ) );
       
    96 
       
    97     // EBearerVirtual
       
    98     TUint virt = EBearerGroupVirtual;
       
    99     User::LeaveIfError( iBearerGroupMasks1.Append( virt ) );
       
   100 
       
   101     // EBearerVirtualVPN
       
   102     TUint virtVPN = EBearerGroupVirtual;
       
   103     User::LeaveIfError( iBearerGroupMasks1.Append( virtVPN ) );
       
   104 
       
   105     // EBearerWcdmaCSD
       
   106     TUint wcdmaCSD = EBearerGroupCellular | EBearerGroupCircuitSwitched | EBearerGroup3G;
       
   107     User::LeaveIfError( iBearerGroupMasks1.Append( wcdmaCSD ) );
       
   108 
       
   109     // EBearerHSDPA
       
   110     TUint hsdpa = EBearerGroupCellular | EBearerGroupCellularPacket |
       
   111                   EBearerGroup3G | EBearerGroup3GPacket | EBearerGroupHSPA;
       
   112     User::LeaveIfError( iBearerGroupMasks1.Append( hsdpa ) );
       
   113 
       
   114     // EBearerHSUPA (== EBearerHSDPA in this sense)
       
   115     TUint hsupa = hsdpa;
       
   116     User::LeaveIfError( iBearerGroupMasks1.Append( hsupa ) );
       
   117 
       
   118     // EBearerHSxPA (== EBearerHSDPA and EBearerHSUPA in this sense)
       
   119     TUint hsxpa = hsdpa;
       
   120     User::LeaveIfError( iBearerGroupMasks1.Append( hsxpa ) );
       
   121     }
       
   122 
       
   123 // ---------------------------------------------------------------------------
       
   124 // Destructor
       
   125 // ---------------------------------------------------------------------------
       
   126 //
       
   127 CConnMonBearerGroupManager::~CConnMonBearerGroupManager()
       
   128     {
       
   129     iBearerGroupMasks1.Close();
       
   130     iBearerGroupMasks2.Close();
       
   131     }
       
   132 
       
   133 // ---------------------------------------------------------------------------
       
   134 // GetBearerGroups
       
   135 // ---------------------------------------------------------------------------
       
   136 //
       
   137 TInt CConnMonBearerGroupManager::GetBearerGroups(
       
   138         const TConnMonBearerInfo aBearer,
       
   139         TUint& aBearerGroups1,
       
   140         TUint& aBearerGroups2 )
       
   141     {
       
   142     // Check first group mask
       
   143     if ( iBearerGroupMasks1.Count() > 0 )
       
   144         {
       
   145         if ( iBearerGroupMasks1.Count() >= aBearer )
       
   146             {
       
   147             aBearerGroups1 = iBearerGroupMasks1[aBearer];
       
   148             }
       
   149         else
       
   150             {
       
   151             return KErrNotFound;
       
   152             }
       
   153         }
       
   154     else
       
   155         {
       
   156         return KErrNotFound;
       
   157         }
       
   158 
       
   159     // And second
       
   160     if ( iBearerGroupMasks2.Count() > 0 )
       
   161         {
       
   162         if ( iBearerGroupMasks2.Count() >= aBearer )
       
   163             {
       
   164             aBearerGroups2 = iBearerGroupMasks2[aBearer];
       
   165             }
       
   166         else
       
   167             {
       
   168             return KErrNotFound;
       
   169             }
       
   170         }
       
   171 
       
   172     return KErrNone;
       
   173     }
       
   174 
       
   175 // End of file