// Copyright (c) 2003-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*/#include "CMtfTestParameter.h" #include "CMtfTestCase.h"/** Ownership of aParameter is taken at the END. aParameter must be on the cleanup stack.aParameter must not be NULL. */CMtfTestParameter* CMtfTestParameter::NewL(const TDesC& aName, TMtfTestParameterGeneralType aGeneralTypeId, TMtfTestParameterSpecificType aSpecificTypeId, TAny* aParameter){ __ASSERT_ALWAYS(aParameter != NULL, CMtfTestCase::Panic(CMtfTestCase::EMtfInvalidParameter)); CMtfTestParameter* self = new(ELeave) CMtfTestParameter(aGeneralTypeId,aSpecificTypeId); CleanupStack::PushL(self); self->ConstructL(aName); CleanupStack::Pop(self); self->iParameter = aParameter; return self; }CMtfTestParameter::CMtfTestParameter(TMtfTestParameterGeneralType aGeneralTypeId,TMtfTestParameterSpecificType aSpecificTypeId):iGeneralTypeId(aGeneralTypeId),iSpecificTypeId(aSpecificTypeId){}void CMtfTestParameter::ConstructL(const TDesC& aName){ iName = aName.AllocL();}//#include "CMTFTestCase.h"//#include <e32base.h>#include "test/testexecutelog.h"#include "TMtfTestParameterType.h"/** Depending on the parameter type, attempt to cast back to the associatedtype and delete the parameter. */CMtfTestParameter::~CMtfTestParameter() { delete iName; switch (iGeneralTypeId) { case EMtfValueType: if(iSpecificTypeId != EMtfTTime) { delete reinterpret_cast<HBufC8*>(iParameter); } break; case EMtfHBufCType: switch (iSpecificTypeId) { case EMtfHBufC: delete reinterpret_cast<HBufC*>(iParameter); break; case EMtfHBufC8: delete reinterpret_cast<HBufC8*>(iParameter); break; default: User::Panic(KMtfUnrecognisedHBufCType,0); break; } break; case EMtfCBaseType: if(iSpecificTypeId != EMtfTTime) { delete reinterpret_cast<CBase*>(iParameter); } break; default: User::Panic(KMtfParameterGeneralTypeUnrecognised,-781); break; } }const TDesC& CMtfTestParameter::Name() const { // guaranteed not to be NULL return *iName; }TMtfTestParameterGeneralType CMtfTestParameter::GeneralTypeId() const{ return iGeneralTypeId;}TMtfTestParameterSpecificType CMtfTestParameter::SpecificTypeId() const{ return iSpecificTypeId;}TAny* CMtfTestParameter::Parameter() const{ return iParameter;}