diff -r 000000000000 -r b497e44ab2fc devicediagnosticsfw/diagframework/src/diagrootsuite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/devicediagnosticsfw/diagframework/src/diagrootsuite.cpp Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,374 @@ +/* +* Copyright (c) 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: Class definition of CDiagRootSuite +* +*/ + + +// CLASS DECLARATION +#include "diagrootsuite.h" + +// SYSTEM INCLUDE FILES +#include // TDiagSuiteExecParam +#include // MDiagSuiteObserver + +// USER INCLUDE FILES +#include "diagframework.pan" // panic codes. +#include "diagrootsuite.h" // CDiagRootSuite + +using namespace DiagFwInternal; + +// ======== LOCAL FUNCTIONS ======== +/** +* Compares two plug-ins by order. Used for RArray InsertInOrderAllowRepeats +* @param aFirst - first plug-in +* @param aSecond - second plug-in +* @return positive if aFirst > aSecond +* 0 if same. +* negative if aFirst < aSecond +*/ +static TInt ComparePluginByOrder( const MDiagPlugin& aFirst, + const MDiagPlugin& aSecond ) + { + return aFirst.Order() - aSecond.Order(); + } + + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CDiagRootSuite::ConstructL() +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::ConstructL() + { + } + + +// --------------------------------------------------------------------------- +// CDiagRootSuite::NewL() +// --------------------------------------------------------------------------- +// +CDiagRootSuite* CDiagRootSuite::NewL() + { + CDiagRootSuite* self = CDiagRootSuite::NewLC(); + CleanupStack::Pop( self ); + return self; + } + + +// --------------------------------------------------------------------------- +// CDiagRootSuite::NewLC() +// --------------------------------------------------------------------------- +// +CDiagRootSuite* CDiagRootSuite::NewLC() + { + CDiagRootSuite* self = new( ELeave )CDiagRootSuite(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CDiagRootSuite::CDiagRootSuite +// --------------------------------------------------------------------------- +// +CDiagRootSuite::CDiagRootSuite() + : iChildren() + { + } + +// --------------------------------------------------------------------------- +// CDiagRootSuite::~CDiagRootSuite +// --------------------------------------------------------------------------- +// +CDiagRootSuite::~CDiagRootSuite() + { + iChildren.Close(); + } + + +// --------------------------------------------------------------------------- +// from MDiagPlugin +// CDiagRootSuite::GetPluginNameL +// --------------------------------------------------------------------------- +// +HBufC* CDiagRootSuite::GetPluginNameL( TNameLayoutType /* aLayoutType */) const + { + _LIT( KRootSuitePluginName, "*Root Suite" ); + return KRootSuitePluginName().AllocL(); + } + +// --------------------------------------------------------------------------- +// from MDiagPlugin +// CDiagRootSuite::ServiceLogicalName +// --------------------------------------------------------------------------- +// +const TDesC& CDiagRootSuite::ServiceLogicalName() const + { + _LIT( KRootSuiteServiceName, "" ); + return KRootSuiteServiceName(); + } + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::GetLogicalDependenciesL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::GetLogicalDependenciesL( CPtrCArray& /* aArray */ ) const + { + } + + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::Type +// --------------------------------------------------------------------------- +// +MDiagPlugin::TPluginType CDiagRootSuite::Type() const + { + return ETypeSuitePlugin; + } + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::CreateIconL +// --------------------------------------------------------------------------- +// +CGulIcon* CDiagRootSuite::CreateIconL() const + { + return NULL; + } + + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::IsVisible +// --------------------------------------------------------------------------- +// +TBool CDiagRootSuite::IsVisible() const + { + return EFalse; + } + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::IsSupported +// --------------------------------------------------------------------------- +// +TBool CDiagRootSuite::IsSupported() const + { + return ETrue; + } + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::GetTitleL +// --------------------------------------------------------------------------- +// +HBufC* CDiagRootSuite::GetTitleL() const + { + // This should never be displayed to the end user. + _LIT( KRootSuitePluginTitle, "*Root Suite Title" ); + return KRootSuitePluginTitle().AllocL(); + } + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::GetDescriptionL +// --------------------------------------------------------------------------- +// +HBufC* CDiagRootSuite::GetDescriptionL() const + { + // This should never be displayed to the end user. + _LIT( KRootSuitePluginDesc, "*Root Suite Desc" ); + return KRootSuitePluginDesc().AllocL(); + } + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::Uid +// --------------------------------------------------------------------------- +// +TUid CDiagRootSuite::Uid() const + { + return TUid::Uid( 0 ); + } + + + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::ParentUid +// --------------------------------------------------------------------------- +// +TUid CDiagRootSuite::ParentUid() const + { + return TUid::Uid( 0 ); + } + + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::SetDtorIdKey +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::SetDtorIdKey( TUid /* aDtorIdKey */ ) + { + } + + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::CustomOperationL +// --------------------------------------------------------------------------- +// +TAny* CDiagRootSuite::CustomOperationL( TUid /*aUid*/, TAny* /*aParam*/ ) + { + User::Leave( KErrNotSupported ); + return NULL; + } + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::GetCustomL +// --------------------------------------------------------------------------- +// +TAny* CDiagRootSuite::GetCustomL( TUid /* aUid */, TAny* /*aParam*/ ) + { + User::Leave( KErrNotSupported ); + return NULL; + } + + +// --------------------------------------------------------------------------- +// From MDiagTestPlugin +// CDiagRootSuite::TestSessionBeginL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::TestSessionBeginL( MDiagEngineCommon& /* aEngine */, + TBool /* aSkipDependencyCheck */, + TAny* /* aCustomParams */ ) + { + // nothing to do + } + +// --------------------------------------------------------------------------- +// From MDiagTestPlugin +// CDiagRootSuite::CleanupL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::TestSessionEndL( MDiagEngineCommon& /* aEngine */, + TBool /* aSkipDependencyCheck */, + TAny* /* aCustomParams */ ) + { + // nothing to do + } + + + +// --------------------------------------------------------------------------- +// From MDiagPlugin +// CDiagRootSuite::Order +// --------------------------------------------------------------------------- +// +TUint CDiagRootSuite::Order() const + { + return 0; + } + + +// --------------------------------------------------------------------------- +// From MDiagSuitePlugin +// CDiagRootSuite::GetChildrenL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::GetChildrenL( RPointerArray& aChildren, + TSortOrder aOrder ) const + { + if ( aOrder != ENotSorted && aOrder != ESortByPosition ) + User::Leave( KErrArgument ); + + for ( TInt i = 0; i < iChildren.Count(); i++ ) + { + aChildren.AppendL( iChildren[i] ); + } + } + +// --------------------------------------------------------------------------- +// From MDiagSuitePlugin +// CDiagRootSuite::AddChildL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::AddChildL( MDiagPlugin* aChild ) + { + TLinearOrder order( *ComparePluginByOrder ); + User::LeaveIfError( iChildren.InsertInOrderAllowRepeats( aChild, order ) ); + } + +// --------------------------------------------------------------------------- +// From MDiagSuitePlugin +// CDiagRootSuite::PrepareChildrenExecutionL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::PrepareChildrenExecutionL( TDiagSuiteExecParam* aParam, + TBool /* aSkipDependencyCheck */, + TBool /* aDependencyExecution */ ) + { + aParam->Observer().ContinueExecutionL( *this ); + delete aParam; + } + +// --------------------------------------------------------------------------- +// From MDiagSuitePlugin +// CDiagRootSuite::FinalizeExecutionL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::FinalizeChildrenExecutionL( TDiagSuiteExecParam* aParam, + TBool /* aSkipDependencyCheck */, + TBool /* aDependencyExecution */ ) + { + aParam->Observer().ContinueExecutionL( *this ); + delete aParam; + } + + +// --------------------------------------------------------------------------- +// From MDiagSuitePlugin +// CDiagRootSuite::GetChildrenUidsL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::GetChildrenUidsL( RArray& aUids, + TSortOrder aOrder ) const + { + if ( aOrder != ENotSorted && aOrder != ESortByPosition ) + User::Leave( KErrArgument ); + + for ( TInt i = 0; i < iChildren.Count(); i++ ) + { + aUids.AppendL( iChildren[i]->Uid() ); + } + } + +// --------------------------------------------------------------------------- +// From MDiagSuitePlugin +// CDiagRootSuite::ExecutionStopL +// --------------------------------------------------------------------------- +// +void CDiagRootSuite::ExecutionStopL( TStopReason /* aReason */ ) + { + } + +// End of File +