--- a/usbengines/usbotgwatcher/src/cusbotgwatcher.cpp Fri Mar 12 15:48:40 2010 +0200
+++ b/usbengines/usbotgwatcher/src/cusbotgwatcher.cpp Mon Mar 15 12:44:42 2010 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 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"
@@ -64,28 +64,28 @@
#endif
#ifndef STIF
- User::LeaveIfError(RProperty::Define(KPSUidUsbWatcher,
- KUsbWatcherIsPeripheralConnected, RProperty::EInt,
- KAlwaysPassPolicy, KLocalServicesPolicy));
+ LEAVEIFERROR(RProperty::Define(KPSUidUsbWatcher,
+ KUsbWatcherIsPeripheralConnected, RProperty::EInt,
+ KAlwaysPassPolicy, KLocalServicesPolicy));
- User::LeaveIfError(RProperty::Set(KPSUidUsbWatcher,
- KUsbWatcherIsPeripheralConnected,
- KUsbWatcherPeripheralIsNotConnected));
+ LEAVEIFERROR(RProperty::Set(KPSUidUsbWatcher,
+ KUsbWatcherIsPeripheralConnected,
+ KUsbWatcherPeripheralIsNotConnected));
#endif
iUsbServiceControl = CUsbServiceControl::NewL(*this, iUsb);
- User::LeaveIfError(iStates.Append(CUsbStateHostUndefined::NewL(*this)));
- User::LeaveIfError(iStates.Append(CUsbStateHostAInitiate::NewL(*this)));
- User::LeaveIfError(iStates.Append(CUsbStateHostAHost::NewL(*this)));
- User::LeaveIfError(iStates.Append(CUsbStateHostAPeripheral::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostUndefined::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostAInitiate::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostAHost::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostAPeripheral::NewL(*this)));
- User::LeaveIfError(iStates.Append(CUsbStateHostDelayAttachedHandle::NewL(
- *this)));
- User::LeaveIfError(iStates.Append(
- CUsbStateHostDelayNotAttachedHandle::NewL(*this)));
- User::LeaveIfError(iStates.Append(
- CUsbStateHostHandleDropping::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostDelayAttachedHandle::NewL(
+ *this)));
+ LEAVEIFERROR(iStates.Append(
+ CUsbStateHostDelayNotAttachedHandle::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(
+ CUsbStateHostHandleDropping::NewL(*this)));
iIdPinObserver = CUsbIdPinObserver::NewL();
iVBusObserver = CUsbVBusObserver::NewL();
@@ -122,7 +122,7 @@
//
EXPORT_C TBool CUsbOtgWatcher::IsDeviceA()
{
- __ASSERT_DEBUG(iIdPinObserver != NULL, Panic(EIdPinObserverNULLPointer));
+ ASSERT_PANIC(iIdPinObserver != NULL, EIdPinObserverNULLPointer);
return (iIdPinObserver->IdPin() == CUsbIdPinObserver::EIdPinOn
? ETrue
: EFalse);
@@ -356,7 +356,7 @@
if (KErrNone != err)
{
LOG( "ErrorStoppingUsbServices" );
- Panic(ECanNotStopUsbServices);
+ PANIC(ECanNotStopUsbServices);
}
}
@@ -366,7 +366,7 @@
//
void CUsbOtgWatcher::IdPinErrorL(TInt aError)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
HandleHostProblemL(EUsbWatcherIdPinError, EUsbStateHostHandleDropping);
}
@@ -378,7 +378,7 @@
//
void CUsbOtgWatcher::VBusDownL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->VBusDownL();
}
@@ -388,7 +388,7 @@
//
void CUsbOtgWatcher::VBusUpL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->VBusUpL();
}
@@ -398,7 +398,7 @@
//
void CUsbOtgWatcher::VBusObserverErrorL(TInt aError)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
HandleHostProblemL(EUsbWatcherVBusObserverError,
EUsbStateHostHandleDropping);
}
@@ -410,7 +410,7 @@
//
void CUsbOtgWatcher::AIdleL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->AIdleL();
}
@@ -420,7 +420,7 @@
//
void CUsbOtgWatcher::AHostL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->AHostL();
}
@@ -430,7 +430,7 @@
//
void CUsbOtgWatcher::APeripheralL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->APeripheralL();
}
@@ -440,7 +440,7 @@
//
void CUsbOtgWatcher::AVBusErrorL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->AVBusErrorL();
}
@@ -450,7 +450,7 @@
//
void CUsbOtgWatcher::BIdleL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->BIdleL();
}
@@ -460,7 +460,7 @@
//
void CUsbOtgWatcher::BPeripheralL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->BPeripheralL();
}
@@ -470,7 +470,7 @@
//
void CUsbOtgWatcher::BHostL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->BHostL();
}
@@ -480,7 +480,7 @@
//
void CUsbOtgWatcher::OtgStateErrorL(TInt aError)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
HandleHostProblemL(EUsbWatcherOtgStateError, EUsbStateHostHandleDropping);
}
@@ -491,7 +491,7 @@
//
void CUsbOtgWatcher::BusIdleL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->BusIdleL();
}
@@ -501,7 +501,7 @@
//
void CUsbOtgWatcher::BusActiveL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->BusActiveL();
}
@@ -511,7 +511,7 @@
//
void CUsbOtgWatcher::BusActivityErrorL(TInt aError)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
// no action, continue
}
@@ -522,7 +522,7 @@
//
void CUsbOtgWatcher::DeviceAttachedL(TDeviceEventInformation aTdi)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->DeviceAttachedL(aTdi);
}
@@ -532,7 +532,7 @@
//
void CUsbOtgWatcher::DeviceDetachedL(TDeviceEventInformation aTdi)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->DeviceDetachedL(aTdi);
}
@@ -542,7 +542,7 @@
//
void CUsbOtgWatcher::DriverLoadSuccessL(TDeviceEventInformation aTdi)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->DriverLoadSuccessL(aTdi);
}
@@ -552,7 +552,7 @@
//
void CUsbOtgWatcher::DriverLoadPartialSuccessL(TDeviceEventInformation aTdi)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->DriverLoadPartialSuccessL(aTdi);
}
@@ -562,7 +562,7 @@
//
void CUsbOtgWatcher::DriverLoadFailureL(TDeviceEventInformation aTdi)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->DriverLoadFailureL(aTdi);
}
@@ -572,7 +572,7 @@
//
void CUsbOtgWatcher::HostEventNotificationErrorL(TInt aError)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
HandleHostProblemL(EUsbWatcherHostEventNotificationError,
EUsbStateHostHandleDropping);
}
@@ -584,7 +584,7 @@
//
void CUsbOtgWatcher::MessageNotificationReceivedL(TInt aMessage)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->MessageNotificationReceivedL(aMessage);
}
@@ -594,7 +594,7 @@
//
void CUsbOtgWatcher::BadHubPositionL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->BadHubPositionL();
}
@@ -604,7 +604,7 @@
//
void CUsbOtgWatcher::VBusErrorL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->VBusErrorL();
}
@@ -614,7 +614,7 @@
//
void CUsbOtgWatcher::SrpReceivedL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->SrpReceivedL();
}
@@ -624,7 +624,7 @@
//
void CUsbOtgWatcher::SessionRequestedL()
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
iHostState->SessionRequestedL();
}
@@ -634,7 +634,7 @@
//
void CUsbOtgWatcher::MessageNotificationErrorL(TInt aError)
{
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadHostState));
+ ASSERT_PANIC(iHostState != NULL, EBadHostState);
HandleHostProblemL(EUsbWatcherMessageNotificationError,
EUsbStateHostHandleDropping);
}
@@ -737,7 +737,7 @@
//
CUsbStateHostHandle* CUsbOtgWatcher::HostHandle(TUsbStateIds aInState) const
{
- __ASSERT_DEBUG(iStates[aInState] != NULL, Panic(EBadState));
+ ASSERT_PANIC(iStates[aInState] != NULL, EBadState);
return (CUsbStateHostHandle*) iStates[aInState];
}
@@ -760,13 +760,15 @@
// sets new state
// be careful to add states into States in exactly the same order as they enumerated
- // this method will work right as long as states, which in the enumeration, is added to the list iStates in the same order as they enumerated
- // and no one state is added, if all previous states are not added. no need to add all states, but if added - previous all must be added.
+ // this method will work right as long as states, which in the enumeration, is added
+ // to the list iStates in the same order as they enumerated and no one state is added,
+ // if all previous states are not added. no need to add all states, but if added -
+ // previous all must be added.
// For the general case, when some states added, some not, this method has to implement search by state ID. for this CUsbOtgWatcher::Id() is maintained.
iState = iStates[aNewStateId];
- __ASSERT_DEBUG(iState != NULL, Panic(EBadState));
+ ASSERT_PANIC(iState != NULL, EBadState);
iState->JustAdvancedToThisStateL(); // do any initial activity, once advanced to the state
@@ -790,13 +792,15 @@
// set new state
// be careful to add states into States in exactly the same order as they enumerated
- // this method will work right as long as states, which in the enumeration, is added to the list iStates in the same order as they enumerated
- // and no one state is added, if all previous states are not added. no need to add all states, but if added - previous all must be added.
- // For the general case, when some states added, some not, this method has to implement search by state Id. for this CUsbOtgWatcher::Id() is maintained.
+ // this method will work right as long as states, which in the enumeration, is added
+ // to the list iStates in the same order as they enumerated and no one state is added,
+ // if all previous states are not added. no need to add all states, but if added -
+ // previous all must be added.
+ // For the general case, when some states added, some not, this method has to implement search by state ID. for this CUsbOtgWatcher::Id() is maintained.
iHostState = iStates[aNewStateId];
- __ASSERT_DEBUG(iHostState != NULL, Panic(EBadState));
+ ASSERT_PANIC(iHostState != NULL, EBadState)
iHostState->JustAdvancedToThisStateL(); // checks if there are conditions for advancing to another state(s)
@@ -857,6 +861,8 @@
LOG1( "aError = %d" , aError);
+ iUsbServiceRequest = CUsbServiceControl::ERequestUndefined;
+
switch (aError)
{
case KErrInUse:
@@ -869,12 +875,19 @@
{
break; // do normal routine
}
+ case KErrNoMemory:
+ {
+ HandleHostProblemL(EUsbWatcherNoMemory,
+ EUsbStateHostHandleDropping);
+ return;
+ }
- default: // handle the issue
+ default:
+ // handle the issue
{
if (iUsbServiceRequest == CUsbServiceControl::EStartUsbService) // Handle only start issues
{
- HandleHostProblemL(EUsbWatcherCanNotStartUsbServices,
+ HandleHostProblemL(EUsbWatcherNoMemory,
EUsbStateHostHandleDropping);
}
@@ -899,6 +912,7 @@
switch (serviceState)
{
case EUsbServiceIdle: // just stopped usb service
+
{
LOG("UsbServiceState == EUsbServiceIdle" );
// do nothing
@@ -906,6 +920,7 @@
}
case EUsbServiceStarted: // just started usb service
+
{
LOG( "UsbServiceState == EUsbServiceStarted" );
@@ -918,25 +933,27 @@
LOG("UsbServiceState == EUsbServiceStarting" );
// should not receive that, due to call back is called when service stopped or started
// therefore scream
- // no break statement here
+ PANIC(EUnexpectedUsbServiceState);
+ break;
}
case EUsbServiceStopping:
{
LOG("UsbServiceState == EUsbServiceStopping" );
// should not receive that, due to call back is called when service stopped or started
// therefore scream
- // no break statement here
+ PANIC(EUnexpectedUsbServiceState);
+ break;
}
case EUsbServiceFatalError:
{
LOG( "UsbServiceState == EUsbServiceFatalError" );
- Panic(EUnexpectedUsbServiceState);
+ PANIC(EUnexpectedUsbServiceState);
break;
}
default:
{
- Panic(EUnknownUsbServiceState);
+ PANIC(EUnknownUsbServiceState);
}
}
}
@@ -964,27 +981,27 @@
if (iIdPinObserver != IdPinObserver())
{
- User::Leave(KErrGeneral);
+ LEAVE(KErrGeneral);
}
if (iOtgStateObserver != OtgStateObserver())
{
- User::Leave(KErrGeneral);
+ LEAVE(KErrGeneral);
}
if (iBusActivityObserver != BusActivityObserver())
{
- User::Leave(KErrGeneral);
+ LEAVE(KErrGeneral);
}
if (iHostEventNotificationObserver != HostEventNotificationObserver())
{
- User::Leave(KErrGeneral);
+ LEAVE(KErrGeneral);
}
if (iMessageNotificationObserver != MessageNotificationObserver())
{
- User::Leave(KErrGeneral);
+ LEAVE(KErrGeneral);
}
LOG( "Observers destructors" );
@@ -1003,22 +1020,22 @@
LOG("Creating states");
- User::LeaveIfError(iStates.Append(CUsbStateHostUndefined::NewL(*this)));
- User::LeaveIfError(iStates.Append(CUsbStateHostAInitiate::NewL(*this)));
- User::LeaveIfError(iStates.Append(CUsbStateHostAHost::NewL(*this)));
- User::LeaveIfError(iStates.Append(CUsbStateHostAPeripheral::NewL(*this)));
- User::LeaveIfError(iStates.Append(CUsbStateHostDelayAttachedHandle::NewL(
+ LEAVEIFERROR(iStates.Append(CUsbStateHostUndefined::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostAInitiate::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostAHost::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostAPeripheral::NewL(*this)));
+ LEAVEIFERROR(iStates.Append(CUsbStateHostDelayAttachedHandle::NewL(
*this)));
- User::LeaveIfError(iStates.Append(
+ LEAVEIFERROR(iStates.Append(
CUsbStateHostDelayNotAttachedHandle::NewL(*this)));
- User::LeaveIfError(iStates.Append(
+ LEAVEIFERROR(iStates.Append(
CUsbStateHostHandleDropping::NewL(*this)));
LOG("Check State()" );
if (iStates[EUsbStateHostAInitiate] != State(EUsbStateHostAInitiate))
{
- User::Leave(KErrGeneral);
+ LEAVE(KErrGeneral);
}
LOG("Check CurrentHostState()" );
@@ -1027,14 +1044,14 @@
if (iStates[EUsbStateHostAInitiate] != CurrentHostState())
{
- User::Leave(KErrGeneral);
+ LEAVE(KErrGeneral);
}
LOG("NotifManager and WarningNotifier." );
CUsbNotifManager* usbnotifmanager = CUsbNotifManager::NewL(*this);
RNotifier rnotifier;
- User::LeaveIfError(rnotifier.Connect());
+ LEAVEIFERROR(rnotifier.Connect());
CUsbWarningNotifier* usbnotifier = CUsbWarningNotifier::NewL(rnotifier,
*usbnotifmanager, EUsbOtgPartiallySupportedDevice);
usbnotifier->IsFeedbackNeeded();
@@ -1082,7 +1099,7 @@
if (KErrNotFound != iOtgStateObservers.Find(&aObserver))
{
LOG( "Observer already exists" );
- Panic(EObserverAlreadyExists);
+ PANIC(EObserverAlreadyExists);
return;
}
iOtgStateObservers.AppendL(&aObserver);
@@ -1101,7 +1118,7 @@
if (KErrNotFound == i)
{
LOG( "Observer not found" );
- Panic(ECanNotFindUsbOtgWatcherStateObserver);
+ PANIC(ECanNotFindUsbOtgWatcherStateObserver);
return;
}