--- a/usbmgmt/usbmgrtest/t_ncm/src/setncmiapcommand.cpp Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,308 +0,0 @@
-/*
-* Copyright (c) 2002-2009 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:
-*
-*/
-
-/** @file
- @internalComponent
- @test
- */
-
-#include "setncmiapcommand.h"
-#include "ncmtestconsole.h"
-
-_LIT(KSetNcmIapCommandDescription, "Set Ncm Iap ID");
-
-CSetNcmIapCommand* CSetNcmIapCommand::NewL(CUsbNcmConsole& aTestConsole, TUint aKey)
- {
- LOG_STATIC_FUNC_ENTRY
-
- CSetNcmIapCommand* self = new(ELeave) CSetNcmIapCommand(aTestConsole, aKey);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-CSetNcmIapCommand::~CSetNcmIapCommand()
- {
- EndWork();
- }
-
-CSetNcmIapCommand::CSetNcmIapCommand(CUsbNcmConsole& aTestConsole, TUint aKey)
- : CNcmCommandBase(EPriorityStandard, aTestConsole, aKey)
- {
- CActiveScheduler::Add(this);
- }
-
-void CSetNcmIapCommand::ConstructL()
- {
- SetDescription(KSetNcmIapCommandDescription());
- }
-
-void CSetNcmIapCommand::DoCommandL()
-/**
-Main function of set ncm iap.
-It will start a new console to display all Iaps in commsdb and current setting for ncm.
-Then prompt user to input ncm iap id and the index of this iap will be placed in central
-repository. Press 'ESC' for give up this function. After the setting is successful, the
-console will be destroyed and return to main console
-*/
- {
- LOG_FUNC
-
- if(!IsActive())
- {
- //If the console has existed, close the old console. The work on old console will be
- //gived up.
- if(iConsole)
- {
- __FLOG_STATIC0(KSubSys, KLogComponent , _L8("Close old console"));
- EndWork();
- }
- InitWorkL();
-
- iConsole->Printf(_L("Press \'ESC\' to exit without change\n"));
-
- //Display all iaps in commsdb
- ListAllNcmIapL();
-
- //wait user input iap id
- iConsole->Printf(KSetIapMemo());
- iCommandState = EIapId;
- iConsole->Read(iStatus);
- SetActive();
- }
- }
-
-void CSetNcmIapCommand::ListAllNcmIapL()
-/**
-Display all iaps in commsdb on console and get current config in cental repoistory
-*/
- {
- LOG_FUNC
-
- //Display commsdb's iaps
- TInt iapcount = iTestConsole.DrawAvailableIapsL();
-
- TInt iapId = 0;
-
- //Get iap config from central repository
- TInt err = iRepository->FindL(KPartialKey, KMask, iRows);
- if(err == KErrNone)
- {
- TUint count = iRows.Count();
- for (TInt row = 0; row < count; ++row)
- {
- // Read each IAP ID
- User::LeaveIfError(iRepository->Get(iRows[row], iapId));
- __FLOG_STATIC2(KSubSys, KLogComponent , _L8("index[%d]: iap = %d"), row, iapId);
- iConsole->Printf(_L("index[%d]: iap = %d\n"), row, iapId);
- }
- }
- else
- {
- __FLOG_STATIC1(KSubSys, KLogComponent , _L8("FindL() err[%d]"), err);
- }
- }
-
-void CSetNcmIapCommand::GetDefaultIapL(TInt& aDefaultIap)
-/**
-Get the default iap id (The first one) stored in central repository.
-@return the default iap id
-*/
- {
- LOG_FUNC
- aDefaultIap = 13;
- return ;
- }
-
-void CSetNcmIapCommand::SetNcmIapL()
-/**
-Set iap id into central repository. The iap id is iIapId. The place of iap id in central
-repository is iIndex. iIndex is started from 0. If the iIndex is not exist in central
-repository, iIapId will be placed at last place.
-*/
- {
- LOG_FUNC
-
- TUint count = iRows.Count();
- __FLOG_STATIC1(KSubSys, KLogComponent , _L8("now iap count = %d"), count);
-
- TInt idx;
- if(iIndex >= count)
- {
- //iIndex is not exist in central repository, create a new entry in central repository
- idx = iRows[count-1]+1;
- User::LeaveIfError(iRepository->Create(idx, iIapId));
- __FLOG_STATIC2(KSubSys, KLogComponent , _L8("add iap: idx = %d, iIapId"), idx, iIapId);
- }
- else
- {
- //iIndex exists, just set in the new value
- idx = iRows[iIndex];
- User::LeaveIfError(iRepository->Set(idx, iIapId));
- __FLOG_STATIC2(KSubSys, KLogComponent , _L8("set iap: aIdx = %d, iIapId"), idx, iIapId);
- }
-
- }
-
-void CSetNcmIapCommand::RunL()
- {
- LOG_FUNC
- __FLOG_STATIC1(KSubSys, KLogComponent , _L8("CSetNcmIapCommand::RunL - iStatus = %d"), iStatus.Int());
-
- User::LeaveIfError(iStatus.Int());
-
- TKeyCode code = iConsole->KeyCode();
- switch(code)
- {
- case EKeyEnter:
- {
- iConsole->Printf(_L("\n"));
-
- //get value
- TInt val;
- TBool typeErr = EFalse;
- if(iChars.Length() != 0)
- {
- TLex lex(iChars);
- lex.SkipSpaceAndMark();
-
- if(KErrNone != lex.Val(val))
- {
- typeErr = ETrue;
- }
- }
- else
- {
- typeErr = ETrue;
- }
-
- if(typeErr)
- {
- //Prompt user input again
- iConsole->Printf(KErrInput());
- iConsole->Printf(KSetIapMemo());
- iChars.SetLength(0);
- __FLOG_STATIC0(KSubSys, KLogComponent , _L8("Input error"));
- break;
- }
-
- //The input is correct
- __FLOG_STATIC1(KSubSys, KLogComponent , _L8("Get val = %d"), val);
-
- if(iCommandState == EIapId)
- {
- //if the command state is wait iap id, now get the iap id, wait for iap index
- iIapId = val;
- iChars.SetLength(0);
- iConsole->Printf(KSetIapIndexMemo());
- iCommandState = EIapPriority;
- }
- else //(iCommandState == EIapPriority)
- {
- //if the command state is wait iap index, now the index. set into central repoistory.
- //Then destroy the current console and update the value displayed on main console if the
- //setting value is ncm default value.
- iIndex = val;
- SetNcmIapL();
- EndWork();
- if(iIndex == 0)
- {
- iTestConsole.SetLocalIapId(iIapId);
- }
- __FLOG_STATIC2(KSubSys, KLogComponent , _L8("Set Ncm Iap, idx = %d, id = %d"),
- iIndex, iIapId);
-
- return;
- }
- }
- break;
- case EKeyEscape:
- //delete this;
- EndWork();
- return;
- case EKeyBackspace:
- if(iChars.Length() > 0)
- {
- iConsole->SetCursorPosRel(TPoint(-1, 0));
- iConsole->ClearToEndOfLine();
- iChars.SetLength(iChars.Length()-1);
- }
- break;
- default:
- iChars.Append(code);
- iConsole->Printf(_L("%c"), code);
- break;
- }
- iConsole->Read(iStatus);
- SetActive();
-
- }
-
-void CSetNcmIapCommand::DoCancel()
- {
- iConsole->ReadCancel();
- }
-
-TInt CSetNcmIapCommand::RunError(TInt aError)
- {
- User::Panic(_L("CSetNcmIapCommand"), aError);
- return aError;
- }
-
-void CSetNcmIapCommand::InitWorkL()
-/**
-Initialize work. Including start a new console, create buf for getting user input, get repoistory handle.
-*/
- {
- LOG_FUNC
-
- if(!iConsole)
- {
- iConsole = Console::NewL(_L("Set Ncm IAP Console"), TSize(-1,-1));
- __FLOG_STATIC0(KSubSys, KLogComponent , _L8("Create Console ok!"));
-
- User::LeaveIfError(iChars.Create(KMaxNumOfChars));
- __FLOG_STATIC0(KSubSys, KLogComponent , _L8("Create iChars ok!"));
-
- iRepository = CRepository::NewL(KNcmIapIdRepositoryUID);
- __FLOG_STATIC0(KSubSys, KLogComponent , _L8("Get CRepository ok!"));
-
- iIapId = 1;
- iIndex = 0;
- }
- }
-
-void CSetNcmIapCommand::EndWork()
-/**
-Finalize work. Including delete console, delete the buf used for getting user input, close repoistory handle.
-*/
- {
- LOG_FUNC
-
- if(iConsole)
- {
- __FLOG_STATIC0(KSubSys, KLogComponent , _L8("Destroy console..."));
- Cancel();
- iChars.Close();
- iRows.Close();
- delete iRepository;
- delete iConsole;
- iConsole = NULL;
- __FLOG_STATIC0(KSubSys, KLogComponent , _L8("Destroy console ok!"));
- }
- }
-