localconnectivityservice/dun/plugins/src/usb/DunUsbConfig.cpp
branchRCL_3
changeset 20 4a793f564d72
parent 19 0aa8cc770c8a
child 21 74aa6861c87d
--- a/localconnectivityservice/dun/plugins/src/usb/DunUsbConfig.cpp	Tue Aug 31 16:03:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
-/*
-* Copyright (c) 2006-2008 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:  DUN USB configuration accessor and listener
-*
-*/
-
-
-#include "DunUsbConfig.h"
-#include "DunDebug.h"
-
-const TUint KDunUsbSupportedConfigVersion = 1;
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CDunUsbConfig* CDunUsbConfig::NewL( MDunServerCallback* aServer,
-                                    MDunUsbConfig* aCallback,
-                                    TUint8 aProtocol )
-    {
-    CDunUsbConfig* self = new (ELeave) CDunUsbConfig( aServer,
-                                                      aCallback,
-                                                      aProtocol );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CDunUsbConfig::~CDunUsbConfig()
-    {
-    FTRACE(FPrint( _L("CDunUsbConfig::~CDunUsbConfig()" )));
-    ResetData();
-    FTRACE(FPrint( _L("CDunUsbConfig::~CDunUsbConfig() complete" )));
-    }
-
-// ---------------------------------------------------------------------------
-// Resets data to initial values
-// ---------------------------------------------------------------------------
-//
-void CDunUsbConfig::ResetData()
-    {
-    // APIs affecting this:
-    // IssueRequest()
-    Stop();
-    // NewL()
-    iAcmProperty.Close();
-    // Internal
-    Initialize();
-    }
-
-// ---------------------------------------------------------------------------
-// Compares initialized protocol number to configuration by index
-// ---------------------------------------------------------------------------
-//
-TInt CDunUsbConfig::GetConfigValidityByIndex( TInt aIndex, TBool& aValidity )
-    {
-    FTRACE(FPrint( _L("CDunUsbConfig::GetConfigValidityByIndex()" )));
-    if ( iConfigState != EUsbConfigStateIdle )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::GetConfigValidityByIndex() (not ready) complete" )));
-        return KErrNotReady;
-        }
-    if ( !iConfigExist )
-        {
-        TInt retTemp = GetConfiguration( iConfig );
-        if ( retTemp != KErrNone )
-            {
-            FTRACE(FPrint( _L("CDunUsbConfig::GetConfigValidityByIndex() (get failed) complete" )));
-            return retTemp;
-            }
-        }
-    if ( aIndex < 0 ||
-         aIndex >= iConfig.iAcmCount ||
-         aIndex >= TPublishedAcmConfigs::KAcmMaxFunctions )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::GetConfigValidityByIndex() (not found) complete" )));
-        return KErrNotFound;
-        }
-    if ( iConfig.iAcmConfig[aIndex].iProtocol == iProtocol )
-        {
-        aValidity = ETrue;
-        }
-    else
-        {
-        aValidity = EFalse;
-        }
-    FTRACE(FPrint( _L("CDunUsbConfig::GetConfigValidityByIndex() complete (%d/%d)" ), aIndex, aValidity));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// Starts listening for ACM configuration changes
-// ---------------------------------------------------------------------------
-//
-TInt CDunUsbConfig::IssueRequest()
-    {
-    FTRACE(FPrint( _L("CDunUsbConfig::IssueRequest()" )));
-    if ( iConfigState != EUsbConfigStateIdle )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::IssueRequest() (not ready) complete" )));
-        return KErrNotReady;
-        }
-    iStatus = KRequestPending;
-    iAcmProperty.Subscribe( iStatus );
-    SetActive();
-    iConfigState = EUsbConfigStateWaiting;
-    FTRACE(FPrint( _L("CDunUsbConfig::IssueRequest() complete" )));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// Stops listening for ACM configuration changes
-// ---------------------------------------------------------------------------
-//
-TInt CDunUsbConfig::Stop()
-    {
-    FTRACE(FPrint( _L("CDunUsbConfig::Stop()" )));
-    if ( iConfigState != EUsbConfigStateWaiting )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::Stop() (not ready) complete" )));
-        return KErrNotReady;
-        }
-    iAcmProperty.Cancel();
-    Cancel();
-    iConfigState = EUsbConfigStateIdle;
-    FTRACE(FPrint( _L("CDunUsbConfig::Stop() complete" )));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// CDunUsbConfig::CDunUsbConfig
-// ---------------------------------------------------------------------------
-//
-CDunUsbConfig::CDunUsbConfig( MDunServerCallback* aServer,
-                              MDunUsbConfig* aCallback,
-                              TUint8 aProtocol ) :
-    CActive( EPriorityStandard ),
-    iServer( aServer ),
-    iCallback( aCallback ),
-    iProtocol( aProtocol )
-    {
-    Initialize();
-    }
-
-// ---------------------------------------------------------------------------
-// CDunUsbConfig::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CDunUsbConfig::ConstructL()
-    {
-    FTRACE(FPrint( _L("CDunUsbConfig::ConstructL()" )));
-    if ( !iServer || !iCallback )
-        {
-        User::Leave( KErrGeneral );
-        }
-    User::LeaveIfError( iAcmProperty.Attach(KUidSystemCategory,KAcmKey) );
-    CActiveScheduler::Add( this );
-    FTRACE(FPrint( _L("CDunUsbConfig::ConstructL() complete" )));
-    }
-
-// ---------------------------------------------------------------------------
-// Initializes this class
-// ---------------------------------------------------------------------------
-//
-void CDunUsbConfig::Initialize()
-    {
-    // Don't initialize iCallback here (it is set through NewL)
-    // Don't initialize iProtocol here (it is set through NewL)
-    iConfigState = EUsbConfigStateIdle;
-    iConfig.iAcmConfigVersion = 0;
-    iConfig.iAcmCount = 0;
-    iConfigExist = EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// Gets current ACM configuration
-// ---------------------------------------------------------------------------
-//
-TInt CDunUsbConfig::GetConfiguration( TPublishedAcmConfigs& aConfig )
-    {
-    FTRACE(FPrint( _L("CDunUsbConfig::GetConfiguration()" )));
-    TPckgBuf<TPublishedAcmConfigs> configBuf;
-    TInt retTemp = iAcmProperty.Get( configBuf );
-    if ( retTemp != KErrNone )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::GetConfiguration() (ERROR) complete" )));
-        return retTemp;
-        }
-    aConfig = configBuf();
-    // Check that version is that which we currently support
-    if ( aConfig.iAcmConfigVersion != KDunUsbSupportedConfigVersion )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::GetConfiguration() (not supported) complete" )));
-        return KErrNotSupported;
-        }
-    // Check that count is within bounds
-    if ( aConfig.iAcmCount > TPublishedAcmConfigs::KAcmMaxFunctions )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::GetConfiguration() (overflow) complete" )));
-        return KErrOverflow;
-        }
-    iConfigExist = ETrue;
-    FTRACE(FPrint( _L("CDunUsbConfig::GetConfiguration() complete" )));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// From class CActive.
-// Gets called when ACM configuration changes
-// ---------------------------------------------------------------------------
-//
-void CDunUsbConfig::RunL()
-    {
-    FTRACE(FPrint( _L("CDunUsbConfig::RunL()" )));
-    iConfigState = EUsbConfigStateIdle;
-
-    TPublishedAcmConfigs newConfig;
-    TInt retTemp = GetConfiguration( newConfig );
-    if ( retTemp != KErrNone )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::RunL() (ERROR) complete (%d)" ), retTemp));
-        iServer->NotifyPluginCloseRequest( KDunUsbPluginUid, ETrue );
-        return;
-        }
-    // Change that is same is not possible so check that first
-    if ( newConfig.iAcmCount == iConfig.iAcmCount )
-        {
-        FTRACE(FPrint( _L("CDunUsbConfig::RunL() (no change) complete" )));
-        iServer->NotifyPluginCloseRequest( KDunUsbPluginUid, ETrue );
-        return;
-        }
-
-    // Now we have the changed configuration so find out are there added or
-    // removed USB ACMs
-
-    TInt i;
-    if ( newConfig.iAcmCount > iConfig.iAcmCount )  // addition
-        {
-        // Addition is always done to end of ACM queue by N entry addition
-        // Scan through new array and report change if necessary
-        for ( i=iConfig.iAcmCount; i<newConfig.iAcmCount; i++ )
-            {
-            if ( newConfig.iAcmConfig[i].iProtocol == iProtocol )
-                {
-                iCallback->NotifyConfigAddition( i );
-                }
-            }
-        }
-    else  // removal ( newConfig.iAcmCount < iConfig.iAcmCount )
-        {
-        // Removal is always done to end of ACM queue by N entry removal
-        // Scan through old array and report change if necessary
-        for ( i=newConfig.iAcmCount; i<iConfig.iAcmCount; i++ )
-            {
-            if ( iConfig.iAcmConfig[i].iProtocol == iProtocol )
-                {
-                iCallback->NotifyConfigRemoval( i );
-                }
-            }
-        }
-
-    // Update config and restart listening
-    iConfig = newConfig;
-    IssueRequest();
-
-    FTRACE(FPrint( _L("CDunUsbConfig::RunL() complete" )));
-    }
-
-// ---------------------------------------------------------------------------
-// From class CActive.
-// Gets called on cancel
-// ---------------------------------------------------------------------------
-//
-void CDunUsbConfig::DoCancel()
-    {
-    }