diff -r 819e59dfc032 -r 2d9cac8919d3 creator/engine/src/creator_logelement.cpp --- a/creator/engine/src/creator_logelement.cpp Mon Oct 04 10:09:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,171 +0,0 @@ -/* -* Copyright (c) 2010 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: -* -*/ - - - -#include "creator_logelement.h" -#include "creator_traces.h" -#include "creator_log.h" - -using namespace creatorlog; - -/* - * - */ -CCreatorLogElement* CCreatorLogElement::NewL(CCreatorEngine* aEngine, const TDesC& aName, const TDesC& aContext ) - { - CCreatorLogElement* self = new (ELeave) CCreatorLogElement(aEngine); - CleanupStack::PushL(self); - self->ConstructL(aName, aContext); - CleanupStack::Pop(self); - return self; - } -/* - * - */ -CCreatorLogElement::CCreatorLogElement(CCreatorEngine* aEngine) -: -CCreatorScriptElement(aEngine) - { - iIsCommandElement = ETrue; - } -/* - * - */ -void CCreatorLogElement::ExecuteCommandL() - { - const CCreatorScriptAttribute* amountAttr = FindAttributeByName(KAmount); - TInt logAmount = 1; - if( amountAttr ) - { - logAmount = ConvertStrToIntL(amountAttr->Value()); - } - // Get 'fields' element - CCreatorScriptElement* fieldsElement = FindSubElement(KFields); - if( fieldsElement && fieldsElement->SubElements().Count() > 0 ) - { - // Get sub-elements - const RPointerArray& fields = fieldsElement->SubElements(); - // Create log entries, the amount of entries is defined by logAmount: - for( TInt cI = 0; cI < logAmount; ++cI ) - { - TInt direction = -1; - CLogsParameters* param = new (ELeave) CLogsParameters; - CleanupStack::PushL(param); - - for( TInt i = 0; i < fields.Count(); ++i ) - { - CCreatorScriptElement* field = fields[i]; - TPtrC elemName = field->Name(); - TPtrC elemContent = field->Content(); - const CCreatorScriptAttribute* randomAttr = field->FindAttributeByName(KRandomLength); - const CCreatorScriptAttribute* increaseAttr = field->FindAttributeByName(KIncrease); - TBool increase( EFalse ); - if ( increaseAttr ) - { - increase = ConvertStrToBooleanL( increaseAttr->Value() ); - } - - if( elemName == KDirection ) - { - direction = GetLogCommandL(elemContent, randomAttr || elemContent.Length() == 0); - } - else if( elemName == KDuration ) - { - if( randomAttr || elemContent.Length() == 0 ) - { - param->iDuration = iEngine->RandomNumber(7200); - } - else - { - param->iDuration = ConvertStrToIntL(elemContent); - } - } - else if( elemName == KPhonenumber ) - { - if( randomAttr || elemContent.Length() == 0 ) - { - SetContentToTextParamL(param->iPhoneNumber, iEngine->RandomString(CCreatorEngine::EPhoneNumber)); - } - else - { - if ( increase ) - { - delete param->iPhoneNumber; - param->iPhoneNumber = NULL; - param->iPhoneNumber = HBufC::NewL( elemContent.Length() + 3 ); - IncreasePhoneNumL( elemContent, cI, param->iPhoneNumber ); - } - else - { - SetContentToTextParamL(param->iPhoneNumber, elemContent); - } - } - } - else if( elemName == KDatetime ) - { - if( randomAttr || elemContent.Length() == 0 ) - { - param->iEventTime = iEngine->RandomTime(iEngine->RandomDate(CCreatorEngine::EDatePast), CCreatorEngine::EDatePast); - } - else - { - param->iEventTime = ConvertToDateTimeL(elemContent); - } - } - } - - if( direction == -1 ) - { - direction = GetLogCommandL(KEmpty, ETrue); - } - iEngine->AppendToCommandArrayL(direction, param); - CleanupStack::Pop(); // param - } - } - else - { - for(TInt i = 0; i < logAmount; ++i ) - { - iEngine->AppendToCommandArrayL(GetLogCommandL(KEmpty, ETrue), 0, 1); - } - } - } - -TInt CCreatorLogElement::GetLogCommandL( const TDesC& aLogCmdStr, TBool aRandom ) const - { - if( aRandom ) - { - TInt commandArray[] = { - ECmdCreateLogEntryMissedCalls, - ECmdCreateLogEntryReceivedCalls, - ECmdCreateLogEntryDialledNumbers - }; - return commandArray[iEngine->RandomNumber(0, 2)]; - } - - if( CompareIgnoreCase(aLogCmdStr, KMissed) == 0 ) - return ECmdCreateLogEntryMissedCalls; - else if( CompareIgnoreCase(aLogCmdStr, KIn) == 0 ) - return ECmdCreateLogEntryReceivedCalls; - else if( CompareIgnoreCase(aLogCmdStr, KOut) == 0 ) - return ECmdCreateLogEntryDialledNumbers; - - LOGSTRING2("CCreatorLogElement::GetLogCommandL: Unknown log direction: %S", &aLogCmdStr); - User::Leave(KErrNotFound); - return -1; // Not reached, but disables compiler warning... - }