connectionmonitoring/connmon/connectionmonitor/src/ConnMonBearerGPRS.cpp
changeset 3 f7816ffc66ed
parent 0 5a93021fdf25
child 23 7ec726f93df1
equal deleted inserted replaced
2:086aae6fc07e 3:f7816ffc66ed
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description:  Implementation for bearer GPRS.
    14 * Description:  Implementation for bearer GPRS.
    15 *
    15 *
    16 */
    16 */
       
    17 
       
    18 #include <centralrepository.h>
       
    19 #include <cmmanagerkeys.h>
       
    20 #include <cmgenconnsettings.h>
    17 
    21 
    18 #include "ConnMonBearerGPRS.h"
    22 #include "ConnMonBearerGPRS.h"
    19 #include "connmoncommsdatcache.h"
    23 #include "connmoncommsdatcache.h"
    20 #include "ConnMonIAP.h"
    24 #include "ConnMonIAP.h"
    21 #include "log.h"
    25 #include "log.h"
    43     aAvailable = EFalse;
    47     aAvailable = EFalse;
    44 
    48 
    45     // Is bearer available
    49     // Is bearer available
    46     TBool byCell( EFalse );
    50     TBool byCell( EFalse );
    47     TBool byPhone( EFalse );
    51     TBool byPhone( EFalse );
    48 
    52  
    49     // Find out if we are in 2G or in 3G - it is needed for calculating bearer availability
    53     if ( CurrentCellularDataUsage() != ECmCellularDataUsageDisabled )
    50     RMobilePhone::TMobilePhoneNetworkMode mode;
       
    51     err = iConnMonIAP->MobilePhone()->GetCurrentMode( mode );
       
    52 
       
    53     if ( KErrNone == err )
       
    54         {
    54         {
    55         switch ( mode )
    55         // Find out if we are in 2G or in 3G - it is needed for calculating bearer availability
    56             {
    56         RMobilePhone::TMobilePhoneNetworkMode mode;
    57             case RMobilePhone::ENetworkModeGsm:
    57         err = iConnMonIAP->MobilePhone()->GetCurrentMode( mode );
    58             case RMobilePhone::ENetworkModeUnknown: // Emulator default
       
    59                 err = iConnMonIAP->GetBearerSupportInfo( EBearerIdGPRS, byCell, byPhone );
       
    60                 break;
       
    61             case RMobilePhone::ENetworkModeWcdma:
       
    62                 err = iConnMonIAP->GetBearerSupportInfo( EBearerIdWCDMA, byCell, byPhone );
       
    63                 break;
       
    64             default:
       
    65                 LOGEXITFN1("TConnMonBearerGPRS::GetAvailability()", err)
       
    66                 return err; // Return silently, report not available
       
    67             }
       
    68 
    58 
    69         if ( KErrNone == err )
    59         if ( KErrNone == err )
    70             {
    60             {
    71             if ( byCell && byPhone )
    61             switch ( mode )
    72                 {
    62                 {
    73                 aAvailable = ETrue;
    63                 case RMobilePhone::ENetworkModeGsm:
       
    64                 case RMobilePhone::ENetworkModeUnknown: // Emulator default
       
    65                     err = iConnMonIAP->GetBearerSupportInfo( EBearerIdGPRS, byCell, byPhone );
       
    66                     break;
       
    67                 case RMobilePhone::ENetworkModeWcdma:
       
    68                     err = iConnMonIAP->GetBearerSupportInfo( EBearerIdWCDMA, byCell, byPhone );
       
    69                     break;
       
    70                 default:
       
    71                     LOGEXITFN1("TConnMonBearerGPRS::GetAvailability()", err)
       
    72                     return err; // Return silently, report not available
       
    73                 }
       
    74 
       
    75             if ( KErrNone == err )
       
    76                 {
       
    77                 if ( byCell && byPhone )
       
    78                     {
       
    79                     aAvailable = ETrue;
       
    80                     }
    74                 }
    81                 }
    75             }
    82             }
       
    83         
       
    84     
       
    85         // Make GPRS available in wins
       
    86 #if defined(__WINSCW__)
       
    87         LOGIT2("GetAvailability: Emulator override, true values were %d <%d>", aAvailable, err)
       
    88         err = KErrNone;
       
    89         aAvailable = ETrue;
       
    90 #endif
    76         }
    91         }
    77 
    92     
    78     // Make GPRS available in wins
       
    79 #if defined(__WINSCW__)
       
    80     LOGIT2("GetAvailability: Emulator override, true values were %d <%d>", aAvailable, err)
       
    81     err = KErrNone;
       
    82     aAvailable = ETrue;
       
    83 #endif
       
    84 
       
    85     //LOGEXITFN1("TConnMonBearerGPRS::GetAvailability()", err)
    93     //LOGEXITFN1("TConnMonBearerGPRS::GetAvailability()", err)
    86     return err;
    94     return err;
    87     }
    95     }
    88 
    96 
    89 // ---------------------------------------------------------------------------
    97 // ---------------------------------------------------------------------------
   121         }
   129         }
   122 
   130 
   123     LOGEXITFN("TConnMonBearerGPRS::FlagAvailableIaps()")
   131     LOGEXITFN("TConnMonBearerGPRS::FlagAvailableIaps()")
   124     }
   132     }
   125 
   133 
       
   134 // ---------------------------------------------------------------------------
       
   135 // Read current cellular data usage setting from Central Repository
       
   136 // ---------------------------------------------------------------------------
       
   137 //
       
   138 TInt TConnMonBearerGPRS::CurrentCellularDataUsage() const
       
   139     {
       
   140     // Use default value if repository is not available
       
   141     TInt value( ECmCellularDataUsageAutomatic );
       
   142     CRepository* cmRepository = NULL;
       
   143     
       
   144     TRAPD( err, cmRepository = CRepository::NewL( KCRUidCmManager ) )
       
   145     
       
   146     if ( err == KErrNone )
       
   147         {
       
   148         err = cmRepository->Get( KCurrentCellularDataUsage, value );
       
   149         LOGIT2("KCurrentCellularDataUsage from repository: %d error: <%d>", value, err )
       
   150         }
       
   151     
       
   152     delete cmRepository;
       
   153     return value;
       
   154     }
       
   155     
   126 // End-of-file
   156 // End-of-file