diff -r 7068aba64af5 -r a15c582fbf97 usbengines/usbotgwatcher/src/cusbstatehostdelayattachedhandle.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usbengines/usbotgwatcher/src/cusbstatehostdelayattachedhandle.cpp Fri Mar 12 15:48:40 2010 +0200 @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2008-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: Implementation + * + */ + +#include + +#include "cusbstatehostdelayattachedhandle.h" +#ifndef STIF +#include "cusbtimer.h" +#else +#include "mockcusbtimer.h" +#endif + +#include "errors.h" +#include "debug.h" +#include "panic.h" + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CUsbStateHostDelayAttachedHandle::CUsbStateHostDelayAttachedHandle( + CUsbOtgWatcher& aWatcher) : + CUsbStateHostDelayHandle(aWatcher) + { + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CUsbStateHostDelayAttachedHandle* CUsbStateHostDelayAttachedHandle::NewL( + CUsbOtgWatcher& aWatcher) + { + LOG_FUNC + + CUsbStateHostDelayAttachedHandle* self = + new (ELeave) CUsbStateHostDelayAttachedHandle(aWatcher); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CUsbStateHostDelayAttachedHandle::ConstructL() + { + LOG_FUNC + + CUsbStateHostDelayHandle::ConstructL(); + iDriversNotFoundTimer = CUsbTimer::NewL(*this, EDriversNotFoundTimer); + + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +CUsbStateHostDelayAttachedHandle::~CUsbStateHostDelayAttachedHandle() + { + LOG_FUNC + + delete iDriversNotFoundTimer; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TUsbStateIds CUsbStateHostDelayAttachedHandle::Id() + { + return EUsbStateHostDelayAttachedHandle; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CUsbStateHostDelayAttachedHandle::JustBeforeLeavingThisStateL() + { + LOG_FUNC + + iDriversNotFoundTimer->Cancel(); + + // do general things + CUsbStateHostDelayHandle::JustBeforeLeavingThisStateL(); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CUsbStateHostDelayAttachedHandle::DoHandleL() + { + LOG_FUNC + LOG1( "iWhat = %d" , iWhat); + + switch (iWhat) + { + case EUsbWatcherErrDriversNotFound: + { + LOG("DriversNotFound" ); + + iDriversNotFoundTimer->After(KTimeDriversNotFound); + break; + + } + + default: + { + LOG1("Unexpected request id = %d" , iWhat ); + Panic( EUnexpectedSituationToHandle); + break; + } + } + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CUsbStateHostDelayAttachedHandle::DeviceDetachedL( + TDeviceEventInformation) + { + LOG_FUNC + + ChangeHostStateL( EUsbStateHostAInitiate); + } + +// From TimerObserver +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void CUsbStateHostDelayAttachedHandle::TimerElapsedL(TUsbTimerId aTimerId) + { + LOG_FUNC + + switch (aTimerId) + { + case EDriversNotFoundTimer: + { + LOG( "EDriversNotFoundTimer" ); + HandleL(EUsbWatcherErrUnsupportedDevice, + EUsbStateHostHandleDropping); + + break; + } + default: + { + LOG1( "Unknown timer id = %d", aTimerId ); + Panic( EWrongTimerId); + } + } + }