omaprovisioning/provisioning/alwaysonadapter/Src/alwaysonadapter.cpp
changeset 73 ae69c2e8bc34
parent 71 d2517372cc44
child 77 9f85c58c0592
--- a/omaprovisioning/provisioning/alwaysonadapter/Src/alwaysonadapter.cpp	Tue Sep 28 17:53:08 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +0,0 @@
-/*
-* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Handles Always-On settings in OMA provisioning.
-*
-*/
-
-
-// INCLUDE FILES
-#include    <f32file.h>
-#include    <CWPCharacteristic.h>
-#include    <CWPParameter.h>
-#include    <pdpcontextmanagerinternalcrkeys.h>
-#include    <centralrepository.h>
-
-#include    "WPAdapterUtil.h"
-#include    "alwaysonadapter.h"
-#include    "ProvisioningDebug.h"
-
-// CONSTANTS
-_LIT( KAlwaysOnAwonPdpcStr, "AWON-PDPC" );
-_LIT( KAlwaysOnTRetryStr, "T-RETRY" );
-
-// AlwaysON PDP context status
-// Parameters shall be binary encoded using the in-line string.
-// Max length for each item is 2bytes.
-// Values are XY, where X is related to 3G flag and Y is related to 2G flag.
-// Possible values are:
-//  *   "00", AlwaysOn is OFF for both 3G and 2G
-//  *   "10", AlwaysOn is ON for 3G, OFF for 2G
-//  *   "01", AlwaysOn is OFF for 3G, ON for 2G
-//  *   "11", AlwaysOn is ON for 3G, ON for 2G
-const TInt KAwonPdpc_Off3G_Off2G = 00;
-const TInt KAwonPdpc_Off3G_On2G  = 01;
-const TInt KAwonPdpc_On3G_Off2G  = 10;
-const TInt KAwonPdpc_On3G_On2G   = 11;
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::CAlwaysOnAdapter
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CAlwaysOnAdapter::CAlwaysOnAdapter()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::ConstructL()
-    {
-    iPdpCenrep = CRepository::NewL( KCRUidPDPContextManager );
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAlwaysOnAdapter* CAlwaysOnAdapter::NewL()
-    {
-    CAlwaysOnAdapter* self = new( ELeave ) CAlwaysOnAdapter;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::~CAlwaysOnAdapter
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CAlwaysOnAdapter::~CAlwaysOnAdapter()
-    {
-    delete iVConfigData;
-    delete iTempVConfigData;
-    delete iPdpCenrep;
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::ItemCount
-// -----------------------------------------------------------------------------
-//
-TInt CAlwaysOnAdapter::ItemCount() const
-    {
-    // SummaryTitle(), SummaryText(), SaveL(), SetAsDefaultL() and
-    // CanSetAsDefault() are called ItemCount() times
-    return iVConfigData ? 1 : 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::SummaryTitle
-// -----------------------------------------------------------------------------
-//
-const TDesC16& CAlwaysOnAdapter::SummaryTitle( TInt /*aIndex*/ ) const
-    {
-    return KNullDesC();
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::SummaryText
-// -----------------------------------------------------------------------------
-//
-const TDesC16& CAlwaysOnAdapter::SummaryText( TInt /*aIndex*/ ) const
-    {
-    return KNullDesC();
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::DetailsL
-// -----------------------------------------------------------------------------
-//
-TInt CAlwaysOnAdapter::DetailsL( TInt /*aItem*/, MWPPairVisitor& /*aVisitor*/ )
-    {
-    // Detail view is a feature for later release.
-    return KErrNotSupported;
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::SaveL
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::SaveL( TInt /*aItem*/ )
-    {
-    FLOG( _L( "[Provisioning] CAlwaysOnAdapter::SaveL:" ) );
-    __ASSERT_DEBUG( iVConfigData, User::Leave( KErrCorrupt ) );
-
-    User::LeaveIfError( iPdpCenrep->Set( KPDPContextManagerEnableWhenHome,
-        TInt( iVConfigData->iAwonPdpcHPLMN ) ) );
-    User::LeaveIfError( iPdpCenrep->Set( KPDPContextManagerEnableWhenRoaming,
-        TInt( iVConfigData->iAwonPdpcVPLMN ) ) );
-    User::LeaveIfError( iPdpCenrep->Set( KPDPContextManagerRetryTimer,
-        iVConfigData->iTRetry ) );
-
-    FLOG( _L( "[Provisioning] CStreamingAdapter::SaveL: Done" ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::CanSetAsDefault
-// -----------------------------------------------------------------------------
-//
-TBool CAlwaysOnAdapter::CanSetAsDefault( TInt /*aItem*/ ) const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::SetAsDefault
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::SetAsDefaultL( TInt /*aItem*/ )
-    {
-    // This shouldn't be called because CanSetAsDefault
-    // always returns EFalse.
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::VisitL
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::VisitL( CWPCharacteristic& aCharacteristic )
-    {
-    switch( aCharacteristic.Type() )
-        {
-        case KWPVendorConfig:
-            {
-            // Init settings temporary storage
-            InitTempVConfigL();
-
-            // Accept characteristic
-            aCharacteristic.AcceptL( *this );
-
-            // Validate data
-            if( IsVConfigValid() )
-                {
-                // data is valid -> assign it to member variable
-                delete iVConfigData;
-                iVConfigData = iTempVConfigData;
-                iTempVConfigData = NULL;
-                }
-            else
-                {
-                // data is invalid
-                delete iTempVConfigData;
-                iTempVConfigData = NULL;
-                }
-            break;
-            }
-        default:
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::VisitL
-//
-//   Used to parse, the following always-on related provisioning settings
-//
-//   <characteristic type="VENDORCONFIG">
-//          <parm name="NAME" value="MRBLOBBY"/>
-//          <parm name="AWON-PDPC" value="11"/>
-//          <parm name="T-RETRY" value="100"/>
-//      </characteristic>
-//   </characteristic>
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::VisitL( CWPParameter& aParameter )
-    {
-    switch( aParameter.ID() )
-        {
-        case EWPParameterName:
-            iTempVConfigData->iName.Set( aParameter.Value() );
-            break;
-        case EWPNamedParameter:
-            {
-            if( aParameter.Name().Compare( KAlwaysOnAwonPdpcStr ) == 0 )
-                {
-                TInt awonPdpcTemp( KErrNotFound );
-                ParseIntegerL( aParameter.Value(), awonPdpcTemp );
-                ParseAwonPdpcValuesL( awonPdpcTemp );
-                }
-            else if( aParameter.Name().Compare( KAlwaysOnTRetryStr ) == 0 )
-                {
-                ParseIntegerL( aParameter.Value(), iTempVConfigData->iTRetry );
-                }
-            break;
-            }
-        default:
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::VisitLinkL
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::VisitLinkL( CWPCharacteristic& /*aCharacteristic*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::IsVConfigValid
-// -----------------------------------------------------------------------------
-//
-TBool CAlwaysOnAdapter::IsVConfigValid()
-    {
-    TBool validity( ETrue );
-
-    // Validity check:
-    //
-    // T-Retry must be >= 0
-    //      ** 0 means infinity
-    //      ** > 0 is retry timer value in seconds
-    if( iTempVConfigData->iTRetry < 0 )
-        {
-        validity = EFalse;
-        }
-
-    // AWON-PDPC
-    //      ** Allowed awon-pdpc values are speficied in the beginning of file
-    // There is no need to validate AWON-PDPC because if parsing has succeeded
-    // the values are inside correct range.
-
-    return validity;
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::InitTempVConfigL
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::InitTempVConfigL()
-    {
-    delete iTempVConfigData;
-    iTempVConfigData = NULL;
-    iTempVConfigData = new ( ELeave ) TAlwaysOnVConfigAdapterData;
-
-    // Initialize iTempVConfigData's members
-    iTempVConfigData->iName.Set( KNullDesC );
-    TInt temp( 0 );
-    User::LeaveIfError(
-        iPdpCenrep->Get( KPDPContextManagerEnableWhenHome, temp ) );
-    iTempVConfigData->iAwonPdpcHPLMN = TBool( temp );
-    User::LeaveIfError(
-        iPdpCenrep->Get( KPDPContextManagerEnableWhenRoaming, temp ) );
-    iTempVConfigData->iAwonPdpcVPLMN = TBool( temp );
-    User::LeaveIfError( iPdpCenrep->Get( KPDPContextManagerRetryTimer,
-                                iTempVConfigData->iTRetry ) );
-
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::ParseIntegerL
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::ParseIntegerL( const TDesC& aPtr, TInt& aInt )
-    {
-    TLex lex( aPtr );
-    User::LeaveIfError( lex.Val( aInt ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CAlwaysOnAdapter::ParseAwonPdpcValuesL
-// -----------------------------------------------------------------------------
-//
-void CAlwaysOnAdapter::ParseAwonPdpcValuesL( TInt aInt )
-    {
-    switch( aInt )
-        {
-        case KAwonPdpc_Off3G_Off2G:
-            iTempVConfigData->iAwonPdpcHPLMN = EFalse;
-            iTempVConfigData->iAwonPdpcVPLMN = EFalse;
-            break;
-        case KAwonPdpc_Off3G_On2G:
-            iTempVConfigData->iAwonPdpcHPLMN = EFalse;
-            iTempVConfigData->iAwonPdpcVPLMN = ETrue;
-            break;
-        case KAwonPdpc_On3G_Off2G:
-            iTempVConfigData->iAwonPdpcHPLMN = ETrue;
-            iTempVConfigData->iAwonPdpcVPLMN = EFalse;
-            break;
-        case KAwonPdpc_On3G_On2G:
-            iTempVConfigData->iAwonPdpcHPLMN = ETrue;
-            iTempVConfigData->iAwonPdpcVPLMN = ETrue;
-            break;
-        default:
-            User::Leave( KErrNotSupported );
-            break;
-        }
-    }
-
-//  End of File