diff -r 65a3ef1d5bd0 -r f742655b05bf commsconfig/cscengine/src/cscengstartuphandler.cpp --- a/commsconfig/cscengine/src/cscengstartuphandler.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,402 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: For CSC startup handling -* -*/ - - -#include - -#include "cscenglogger.h" -#include "cscengstartuphandler.h" - -_LIT( KTagURL, "URL=" ); -_LIT( KTagAppUid, "APPUID=" ); -_LIT( KTagAction, "ACTION=" ); -_LIT( KTagServiceId, "SERID=" ); -_LIT( KTagPluginUid, "PLUGINUID=" ); - - - -const TUint KTagUidPrefixLength = 2; -const TUint KUidLength = 8; - -// ======== MEMBER FUNCTIONS ======== - - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -CCSCEngStartupHandler::CCSCEngStartupHandler() - { - } - - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -void CCSCEngStartupHandler::ConstructL() - { - CSCENGDEBUG( "CCSCEngStartupHandler::ConstructL begin" ); - - iAction = EDefaultAction; - iServiceId = 0; - iPluginUid = KNullUid; - iAppUid = KNullUid; - - CSCENGDEBUG( "CCSCEngStartupHandler::ConstructL end" ); - } - - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -EXPORT_C CCSCEngStartupHandler* CCSCEngStartupHandler::NewL() - { - CCSCEngStartupHandler* self = new (ELeave) CCSCEngStartupHandler; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -CCSCEngStartupHandler::~CCSCEngStartupHandler() - { - CSCENGDEBUG( - "CCSCEngStartupHandler::~CCSCEngStartupHandler - begin" ); - - delete iURL; - - CSCENGDEBUG( - "CCSCEngStartupHandler::~CCSCEngStartupHandler - end" ); - } - - -// ----------------------------------------------------------------------------- -// For setting CSC application startup parameters -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CCSCEngStartupHandler::SetStartupParametersL( - const TDesC& aParameters ) - { - CSCENGDEBUG( "CCSCEngStartupHandler::SetStartupParameters - begin" ); - - TInt error( KErrNone ); - - SetAction( aParameters ); - - if ( EOpenSettingsUi == GetParamAction() ) - { - SetServiceId( aParameters ); - } - else - { - SetUid( aParameters, EPluginUid ); - SetUid( aParameters, EAppUid ); - SetUrlL( aParameters ); - } - - CSCENGDEBUG( "CCSCEngStartupHandler::SetStartupParameters - end" ); - - return error; - } - - -// ----------------------------------------------------------------------------- -// For getting parameter action -// ----------------------------------------------------------------------------- -// -EXPORT_C CCSCEngStartupHandler::TAction - CCSCEngStartupHandler::GetParamAction() const - { - CSCENGDEBUG( "CCSCEngStartupHandler::GetParamAction" ); - return iAction; - } - - -// ----------------------------------------------------------------------------- -// For getting parameter service id -// ----------------------------------------------------------------------------- -// -EXPORT_C TUint CCSCEngStartupHandler::GetParamServiceId() const - { - CSCENGDEBUG( "CCSCEngStartupHandler::GetParamServiceId" ); - return iServiceId; - } - - -// ----------------------------------------------------------------------------- -// For getting parameter plugin uid -// ----------------------------------------------------------------------------- -// -EXPORT_C const TUid CCSCEngStartupHandler::GetParamPluginUid() const - { - CSCENGDEBUG( "CCSCEngStartupHandler::GetParamPluginUid" ); - return iPluginUid; - } - - -// ----------------------------------------------------------------------------- -// For getting parameter application uid -// ----------------------------------------------------------------------------- -// -EXPORT_C const TUid CCSCEngStartupHandler::GetParamAppUid() const - { - CSCENGDEBUG( "CCSCEngStartupHandler::GetParamAppUid" ); - return iAppUid; - } - - -// ----------------------------------------------------------------------------- -// For Getting parameter URL -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CCSCEngStartupHandler::GetParamUrl( TDes& aUrl ) const - { - CSCENGDEBUG( "CCSCEngStartupHandler::GetParamUrlL - begin" ); - - if ( !iURL ) - { - return KErrNotFound; - } - else - { - aUrl.Copy( iURL->Des() ); - } - - CSCENGDEBUG( "CCSCEngStartupHandler::GetParamUrlL - end" ); - - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// For resetting uid values -// ----------------------------------------------------------------------------- -// -EXPORT_C void CCSCEngStartupHandler::ResetUid( TUidType aType ) - { - CSCENGDEBUG( "CCSCEngStartupHandler::ResetUid - begin" ); - - if ( EPluginUid == aType ) - { - iPluginUid = KNullUid; - } - else if ( EAppUid == aType ) - { - iAppUid = KNullUid; - } - - CSCENGDEBUG( "CCSCEngStartupHandler::ResetUid - end" ); - } - - -// ----------------------------------------------------------------------------- -// For resetting service id value -// ----------------------------------------------------------------------------- -// -EXPORT_C void CCSCEngStartupHandler::ResetServiceId() - { - iServiceId = 0; - } - -// ----------------------------------------------------------------------------- -// For resetting service id value -// ----------------------------------------------------------------------------- -// -EXPORT_C void CCSCEngStartupHandler::SetStartedFromHomescreen( - TBool aStartedFromHomescreen ) - { - iStartedFromHomescreen = aStartedFromHomescreen; - } - -// ----------------------------------------------------------------------------- -// For resetting service id value -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool CCSCEngStartupHandler::StartedFromHomescreen() const - { - return iStartedFromHomescreen; - } - -// --------------------------------------------------------------------------- -// For parsing and setting parameter action -// --------------------------------------------------------------------------- -// -void CCSCEngStartupHandler::SetAction( const TDesC& aParameters ) - { - CSCENGDEBUG( "CCSCEngStartupHandler::SetAction - begin" ); - - TInt start( 0 ); - - // Parse Action parameter - start = aParameters.Find( KTagAction ); - - if ( KErrNotFound != start ) - { - start = start + KTagAction().Length(); - TPtrC pPtr = aParameters.Mid( start, 1 ); - - // Convert string to TUint - TUint value( 0 ); - TLex lex( pPtr ); - lex.Val( value, EDecimal ); - - // Set action - if ( EOpenSettingsUi < iAction ) - { - iAction = EDefaultAction; - } - else - { - iAction = static_cast ( value ); - } - } - - CSCENGDEBUG( "CCSCEngStartupHandler::SetAction - end" ); - } - - -// --------------------------------------------------------------------------- -// For parsing and setting service id parameter -// --------------------------------------------------------------------------- -// -void CCSCEngStartupHandler::SetServiceId( const TDesC& aParameters ) - { - CSCENGDEBUG( "CCSCEngStartupHandler::SetServiceId - begin" ); - - TInt start( 0 ); - TUint value( 0 ); - - // Parse plug-in uid parameter - start = aParameters.Find( KTagServiceId ); - - if ( KErrNotFound != start ) - { - // exclude 'SERID=' - start = start + KTagServiceId().Length(); - - TInt serviceIdLength = aParameters.Length() - start; - - CSCENGDEBUG2( "CCSCEngStartupHandler::SetServiceId: Length=%d", serviceIdLength ); - - - TPtrC pPtr = aParameters.Mid( start, serviceIdLength ); - - TLex lex( pPtr ); - lex.Val( value, EDecimal ); - - iServiceId = value; - } - - - CSCENGDEBUG( "CCSCEngStartupHandler::SetServiceId - end" ); - } - - -// --------------------------------------------------------------------------- -// For parsing and setting uid parameters -// --------------------------------------------------------------------------- -// -void CCSCEngStartupHandler::SetUid( - const TDesC& aParameters, TUidType aUidType ) - { - CSCENGDEBUG( "CCSCEngStartupHandler::SetPluginUid - begin" ); - - TInt start( 0 ); - TUint value( 0 ); - - if ( EPluginUid == aUidType ) - { - // Parse plug-in uid parameter - start = aParameters.Find( KTagPluginUid ); - - if ( KErrNotFound != start ) - { - // exclude 'PLUGINUID=' and '0x' - start = start + KTagPluginUid().Length() + KTagUidPrefixLength; - - TPtrC pPtr = aParameters.Mid( start, KUidLength ); - - TLex lex( pPtr ); - lex.Val( value, EHex ); - - iPluginUid.iUid = value; - } - } - else - { - // Parse application uid parameter - start = aParameters.Find( KTagAppUid ); - - if ( KErrNotFound != start ) - { - // exclude 'APPUID=' and '0x' - start = start + KTagAppUid().Length() + KTagUidPrefixLength; - - TPtrC pPtr = aParameters.Mid( start, KUidLength ); - - TLex lex( pPtr ); - lex.Val( value, EHex ); - - iAppUid.iUid = value; - } - } - - CSCENGDEBUG( "CCSCEngStartupHandler::SetPluginUid - end" ); - } - - -// --------------------------------------------------------------------------- -// For parsing and setting parameter URL -// --------------------------------------------------------------------------- -// -void CCSCEngStartupHandler::SetUrlL( const TDesC& aParameters ) - { - CSCENGDEBUG( "CCSCEngStartupHandler::SetUrl - begin" ); - - TInt start( 0 ); - - // Parse URL parameter - start = aParameters.Find( KTagURL ); - - if ( KErrNotFound != start ) - { - // exclude 'URL=' - start = start + KTagURL().Length(); - - TInt urlLength = aParameters.Length() - start; - - // If iURL exists, delete it first - if ( iURL ) - { - delete iURL; - iURL = NULL; - } - - // Set URL - if ( urlLength ) - { - iURL = HBufC::NewL( urlLength ); - iURL->Des().Copy( aParameters.Mid( start, urlLength ) ); - } - } - - CSCENGDEBUG( "CCSCEngStartupHandler::SetUrl - end" ); - } -