diff -r 000000000000 -r c9bc50fca66e usbmgmt/usbmgr/device/classcontroller/SRC/CUsbClassControllerBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usbmgmt/usbmgr/device/classcontroller/SRC/CUsbClassControllerBase.cpp Tue Feb 02 02:02:59 2010 +0200 @@ -0,0 +1,93 @@ +/* +* Copyright (c) 1997-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: +* Implements part of UsbMan USB Class Controller Framework. +* All USB classes to be managed by UsbMan must derive +* from this class. +* +*/ + +/** + @file +*/ + +#include +#include + + +/** + * Constructor. + * + * @param aOwner Owner and manager of this object + * @param aStartupPriority The priority of the Class Controller (the + * priorities of all present Class Controllers determines the order in which + * they are started). + */ +EXPORT_C CUsbClassControllerBase::CUsbClassControllerBase( + MUsbClassControllerNotify& aOwner, TInt aStartupPriority) + : CActive(EPriorityStandard), iStartupPriority(aStartupPriority), + iState(EUsbServiceIdle), iOwner(aOwner) + { + CActiveScheduler::Add(this); + } + +/** + * Destructor. + */ +EXPORT_C CUsbClassControllerBase::~CUsbClassControllerBase() + { + } + +/** + * Fetch the owner of the USB class controller. + * + * @return The owner of the USB class controller + */ +EXPORT_C MUsbClassControllerNotify& CUsbClassControllerBase::Owner() const + { + return iOwner; + } + +/** + * Get the state of this USB class controller. + * + * @return The state of this USB class controller + */ +EXPORT_C TUsbServiceState CUsbClassControllerBase::State() const + { + return iState; + } + +/** + * Get the startup priority of this USB class controller. + * + * @return The startup priority of this USB class controller + */ +EXPORT_C TInt CUsbClassControllerBase::StartupPriority() const + { + return iStartupPriority; + } + +EXPORT_C TInt CUsbClassControllerBase::Compare(const CUsbClassControllerBase& aFirst, + const CUsbClassControllerBase& aSecond) + { + if (aFirst.StartupPriority() < aSecond.StartupPriority()) { + return -1; + } + else if (aFirst.StartupPriority() > aSecond.StartupPriority()) { + return 1; + } + return 0; + } +