diff -r 819e59dfc032 -r 2d9cac8919d3 creator/engine/src/creator_log.cpp --- a/creator/engine/src/creator_log.cpp Mon Oct 04 10:09:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,486 +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 - -#include "engine.h" -#include "enginewrapper.h" -#include "creator_log.h" -#include "creator_traces.h" - -static const TInt KLogsFieldLength = 256; - -//_LIT(KCreatorLogsPrefixName, "CR_"); - -//---------------------------------------------------------------------------- - -CLogsParameters::CLogsParameters() - { - LOGSTRING("Creator: CLogsParameters::CLogsParameters"); - - iPhoneNumber = HBufC::New(KLogsFieldLength); - /*iMissedCallPhoneNumber = HBufC::New(KLogsFieldLength); - iReceivedCallPhoneNumber = HBufC::New(KLogsFieldLength); - iDialledNumberPhoneNumber = HBufC::New(KLogsFieldLength);*/ - } - -CLogsParameters::~CLogsParameters() - { - LOGSTRING("Creator: CLogsParameters::~CLogsParameters"); - - delete iPhoneNumber; - /*delete iDialledNumberPhoneNumber; - delete iReceivedCallPhoneNumber; - delete iMissedCallPhoneNumber;*/ - } - -//---------------------------------------------------------------------------- - -CCreatorLogs* CCreatorLogs::NewL(CCreatorEngine* aEngine) - { - CCreatorLogs* self = CCreatorLogs::NewLC(aEngine); - CleanupStack::Pop(self); - return self; - } - -CCreatorLogs* CCreatorLogs::NewLC(CCreatorEngine* aEngine) - { - CCreatorLogs* self = new (ELeave) CCreatorLogs; - CleanupStack::PushL(self); - self->ConstructL(aEngine); - return self; - } - -CCreatorLogs::CCreatorLogs() : CActive(0) - { - iEntriesToBeCreated = 1; - } - -void CCreatorLogs::ConstructL(CCreatorEngine* aEngine) - { - LOGSTRING("Creator: CCreatorLogs::ConstructL"); - - iEngine = aEngine; - - iLogClient = CLogClient::NewL(CEikonEnv::Static()->FsSession()); - iLogEvent = CLogEvent::NewL(); - - CActiveScheduler::Add(this); // needed by CActive - } - -CCreatorLogs::~CCreatorLogs() - { - LOGSTRING("Creator: CCreatorLogs::~CCreatorLogs"); - - Cancel(); //from CActive - - if ( iEngine && iEntryIds.Count() ) - { - TRAP_IGNORE( iEngine->WriteEntryIdsToStoreL( iEntryIds, KUidDictionaryUidLogs ) ); - } - iEntryIds.Reset(); - iEntryIds.Close(); - - delete iLogEvent; - delete iLogClient; - - if (iParameters) - delete iParameters; - } - -//---------------------------------------------------------------------------- - -void CCreatorLogs::QueryDialogClosedL(TBool aPositiveAction, TInt aUserData) - { - LOGSTRING("Creator: CCreatorModuleBase::QueryDialogClosedL"); - - if( aPositiveAction == EFalse ) - { - iEngine->ShutDownEnginesL(); - return; - } - - const TDesC* showText = &KSavingText; - TBool finished(EFalse); - TBool retval(ETrue); - switch(aUserData) - { - case ECreatorLogsDelete: - showText = &KDeletingText; - iEntriesToBeCreated = 1; - finished = ETrue; - break; - case ECreatorLogsStart: - finished = ETrue; - break; - default: - //some error - retval = EFalse; - break; - } - if( retval == EFalse ) - { - iEngine->ShutDownEnginesL(); - } - else if( finished ) - { - // add this command to command array - iEngine->AppendToCommandArrayL(iCommand, NULL, iEntriesToBeCreated); - // started exucuting commands - iEngine->ExecuteFirstCommandL( *showText ); - } - } - -//---------------------------------------------------------------------------- - -TBool CCreatorLogs::AskDataFromUserL(TInt aCommand) - { - LOGSTRING("Creator: CCreatorLogs::AskDataFromUserL"); - - iCommand = aCommand; - - if ( aCommand == ECmdDeleteLogs ) - { - return iEngine->GetEngineWrapper()->YesNoQueryDialog( _L("Delete all log entries?"), this, ECreatorLogsDelete ); - } - else if ( aCommand == ECmdDeleteCreatorLogs ) - { - return iEngine->GetEngineWrapper()->YesNoQueryDialog( _L("Delete all log entries created with Creator?"), this, ECreatorLogsDelete ); - } - return iEngine->GetEngineWrapper()->EntriesQueryDialog( &iEntriesToBeCreated, _L("How many entries to create?"), EFalse, this, ECreatorLogsStart ); - } - -//---------------------------------------------------------------------------- - -void CCreatorLogs::RunL() - { - LOGSTRING("Creator: CCreatorLogs::RunL"); - - // log writing finished, stop the async waiting - iLogWriteWait.AsyncStop(); - } - -//---------------------------------------------------------------------------- - -void CCreatorLogs::DoCancel() - { - } - -//---------------------------------------------------------------------------- - -TInt CCreatorLogs::CreateMissedCallEntryL(CLogsParameters *aParameters) - { - LOGSTRING("Creator: CCreatorLogs::CreateMissedCallEntryL"); - - // clear any existing parameter definations - delete iParameters; - iParameters = NULL; - - CLogsParameters* parameters = aParameters; - - // random data needed if no predefined data available - if (!parameters) - { - iParameters = new(ELeave) CLogsParameters; - parameters = iParameters; - - /*iParameters->iMissedCallPhoneNumber->Des().Zero(); - iParameters->iMissedCallPhoneNumber->Des().AppendNum( iEngine->RandomNumber(1000000, 9999999) ); - - iParameters->iMissedCallEventTime.UniversalTime(); - iParameters->iMissedCallEventTime -= TTimeIntervalMinutes( iEngine->RandomNumber(12000) );*/ - parameters->iPhoneNumber->Des().Zero(); - parameters->iPhoneNumber->Des().AppendNum( iEngine->RandomNumber(1000000, 9999999) ); - - parameters->iEventTime.UniversalTime(); - parameters->iEventTime -= TTimeIntervalMinutes( iEngine->RandomNumber(12000) ); - - } - - // defaults - iLogEvent->SetId( KLogNullId ); - iLogEvent->SetEventType( KNullUid ); - iLogEvent->SetRemoteParty( KNullDesC ); - iLogEvent->SetDirection( KNullDesC ); - iLogEvent->SetTime( Time::NullTTime() ); - iLogEvent->SetDurationType( KLogNullDurationType ); - iLogEvent->SetDuration( KLogNullDuration ); - iLogEvent->SetStatus( KNullDesC ); - iLogEvent->SetSubject( KNullDesC ); - iLogEvent->SetNumber( KNullDesC ); - iLogEvent->SetContact( KNullContactId ); - iLogEvent->SetLink( KLogNullLink ); - iLogEvent->SetDescription( KNullDesC ); - iLogEvent->SetFlags( KLogNullFlags ); - iLogEvent->SetEventType(KLogCallEventTypeUid); - iLogEvent->SetSubject(_L("A")); - - // set direction - TLogString missed; - iLogClient->GetString(missed, R_LOG_DIR_MISSED); - iLogEvent->SetDirection(missed); - - // set duration - iLogEvent->SetDurationType( KLogDurationNone ); - TLogDuration duration = 0; - iLogEvent->SetDuration(duration); - - // set the phone number - //iLogEvent->SetNumber( iParameters->iMissedCallPhoneNumber->Des() ); - iLogEvent->SetNumber( parameters->iPhoneNumber->Des() ); - - // set event time - //iLogEvent->SetTime( iParameters->iMissedCallEventTime ); - iLogEvent->SetTime( parameters->iEventTime ); - - // start writing - __ASSERT_ALWAYS(!IsActive(), User::Panic(_L("LogWriter"), 150)); - iLogClient->AddEvent(*iLogEvent, iStatus); - SetActive(); - - // wait till adding has finished - iLogWriteWait.Start(); - - // id has been generated, store it for being able to delete - // entries created only with Creator - TRAP_IGNORE( iEntryIds.AppendL( iLogEvent->Id() ) ); - - return iStatus.Int(); // should be KErrNone if writing was succesful - } - -//---------------------------------------------------------------------------- - -TInt CCreatorLogs::CreateReceivedCallEntryL(CLogsParameters *aParameters) - { - LOGSTRING("Creator: CCreatorLogs::CreateReceivedCallEntryL"); - - // clear any existing parameter definations - delete iParameters; - iParameters = NULL; - - CLogsParameters* parameters = aParameters; - - // random data needed if no predefined data available - if (!parameters) - { - iParameters = new(ELeave) CLogsParameters; - parameters = iParameters; - - /*iParameters->iReceivedCallPhoneNumber->Des().Zero(); - iParameters->iReceivedCallPhoneNumber->Des().AppendNum( iEngine->RandomNumber(1000000, 9999999) ); - - iParameters->iReceivedCallEventTime.UniversalTime(); - iParameters->iReceivedCallEventTime -= TTimeIntervalMinutes( iEngine->RandomNumber(12000) ); - - iParameters->iReceivedCallDuration = iEngine->RandomNumber(7200);*/ - parameters->iPhoneNumber->Des().Zero(); - parameters->iPhoneNumber->Des().AppendNum( iEngine->RandomNumber(1000000, 9999999) ); - - parameters->iEventTime.UniversalTime(); - parameters->iEventTime -= TTimeIntervalMinutes( iEngine->RandomNumber(12000) ); - - parameters->iDuration = iEngine->RandomNumber(7200); - } - - // defaults - iLogEvent->SetId( KLogNullId ); - iLogEvent->SetEventType( KNullUid ); - iLogEvent->SetRemoteParty( KNullDesC ); - iLogEvent->SetDirection( KNullDesC ); - iLogEvent->SetTime( Time::NullTTime() ); - iLogEvent->SetDurationType( KLogNullDurationType ); - iLogEvent->SetDuration( KLogNullDuration ); - iLogEvent->SetStatus( KNullDesC ); - iLogEvent->SetSubject( KNullDesC ); - iLogEvent->SetNumber( KNullDesC ); - iLogEvent->SetContact( KNullContactId ); - iLogEvent->SetLink( KLogNullLink ); - iLogEvent->SetDescription( KNullDesC ); - iLogEvent->SetFlags( KLogNullFlags ); - iLogEvent->SetEventType(KLogCallEventTypeUid); - iLogEvent->SetSubject(_L("A")); - - // set direction - TLogString incoming; - iLogClient->GetString(incoming, R_LOG_DIR_IN); - iLogEvent->SetDirection(incoming); - - // set duration - iLogEvent->SetDurationType( KLogDurationValid ); - //iLogEvent->SetDuration( iParameters->iReceivedCallDuration ); - iLogEvent->SetDuration( parameters->iDuration ); - - // set the phone number - //iLogEvent->SetNumber( iParameters->iReceivedCallPhoneNumber->Des() ); - iLogEvent->SetNumber( parameters->iPhoneNumber->Des() ); - - // set event time - //iLogEvent->SetTime( iParameters->iReceivedCallEventTime ); - iLogEvent->SetTime( parameters->iEventTime ); - - // start writing - __ASSERT_ALWAYS(!IsActive(), User::Panic(_L("LogWriter"), 151)); - iLogClient->AddEvent(*iLogEvent, iStatus); - SetActive(); - - // wait till adding has finished - iLogWriteWait.Start(); - - // id has been generated, store it for being able to delete - // entries created only with Creator - TRAP_IGNORE( iEntryIds.AppendL( iLogEvent->Id() ) ); - - return iStatus.Int(); // should be KErrNone if writing was succesful - } - -//---------------------------------------------------------------------------- - - -TInt CCreatorLogs::CreateDialledNumberEntryL(CLogsParameters *aParameters) - { - LOGSTRING("Creator: CCreatorLogs::CreateDialledNumberEntryL"); - - // clear any existing parameter definations - delete iParameters; - iParameters = NULL; - - CLogsParameters* parameters = aParameters; - - // random data needed if no predefined data available - if (!parameters) - { - iParameters = new(ELeave) CLogsParameters; - parameters = iParameters; - - /*iParameters->iDialledNumberPhoneNumber->Des().Zero(); - iParameters->iDialledNumberPhoneNumber->Des().AppendNum( iEngine->RandomNumber(1000000, 9999999) ); - - iParameters->iDialledNumberEventTime.UniversalTime(); - iParameters->iDialledNumberEventTime -= TTimeIntervalMinutes( iEngine->RandomNumber(12000) ); - - iParameters->iDialledNumberDuration = iEngine->RandomNumber(7200);*/ - parameters->iPhoneNumber->Des().Zero(); - parameters->iPhoneNumber->Des().AppendNum( iEngine->RandomNumber(1000000, 9999999) ); - - parameters->iEventTime.UniversalTime(); - parameters->iEventTime -= TTimeIntervalMinutes( iEngine->RandomNumber(12000) ); - - parameters->iDuration = iEngine->RandomNumber(7200); - - } - - // defaults - iLogEvent->SetId( KLogNullId ); - iLogEvent->SetEventType( KNullUid ); - iLogEvent->SetRemoteParty( KNullDesC ); - iLogEvent->SetDirection( KNullDesC ); - iLogEvent->SetTime( Time::NullTTime() ); - iLogEvent->SetDurationType( KLogNullDurationType ); - iLogEvent->SetDuration( KLogNullDuration ); - iLogEvent->SetStatus( KNullDesC ); - iLogEvent->SetSubject( KNullDesC ); - iLogEvent->SetNumber( KNullDesC ); - iLogEvent->SetContact( KNullContactId ); - iLogEvent->SetLink( KLogNullLink ); - iLogEvent->SetDescription( KNullDesC ); - iLogEvent->SetFlags( KLogNullFlags ); - iLogEvent->SetEventType(KLogCallEventTypeUid); - iLogEvent->SetSubject(_L("A")); - - // set direction - TLogString outgoing; - iLogClient->GetString(outgoing, R_LOG_DIR_OUT); - iLogEvent->SetDirection(outgoing); - - // set duration - iLogEvent->SetDurationType( KLogDurationValid ); - //iLogEvent->SetDuration( iParameters->iDialledNumberDuration ); - iLogEvent->SetDuration( parameters->iDuration ); - - // set the phone number - //iLogEvent->SetNumber( iParameters->iDialledNumberPhoneNumber->Des() ); - iLogEvent->SetNumber( parameters->iPhoneNumber->Des() ); - - // set event time - //iLogEvent->SetTime( iParameters->iDialledNumberEventTime ); - iLogEvent->SetTime( parameters->iEventTime ); - - // start writing - __ASSERT_ALWAYS(!IsActive(), User::Panic(_L("LogWriter"), 152)); - iLogClient->AddEvent(*iLogEvent, iStatus); - SetActive(); - - // wait till adding has finished - iLogWriteWait.Start(); - - // id has been generated, store it for being able to delete - // only entries created with Creator - TRAP_IGNORE( iEntryIds.AppendL( iLogEvent->Id() ) ); - - return iStatus.Int(); // should be KErrNone if writing was succesful - } - -//---------------------------------------------------------------------------- -void CCreatorLogs::DeleteAllL() - { - LOGSTRING("Creator: CCreatorLogs::DeleteAllL"); - iLogClient->ClearLog( TTime( Time::MaxTTime() ), iStatus ); - SetActive(); - - // wait till delete has finished - iLogWriteWait.Start(); - User::LeaveIfError( iStatus.Int() ); - - // reset must be done here, because iEntryIds is stored in destructor - iEntryIds.Reset(); - - // all entries deleted, remove the Logs related registry - iEngine->RemoveStoreL( KUidDictionaryUidLogs ); - } - -//---------------------------------------------------------------------------- -void CCreatorLogs::DeleteAllCreatedByCreatorL() - { - LOGSTRING("Creator: CCreatorLogs::DeleteAllCreatedByCreatorL"); - iEntryIds.Reset(); - - // fetch ids of entries created by Creator - iEngine->ReadEntryIdsFromStoreL( iEntryIds, KUidDictionaryUidLogs ); - - // delete entries - for ( TInt i = 0; i < iEntryIds.Count(); i++ ) - { - // This could be implemented with while loop - // with additional cancel flag. That would enable - // using CancelOp() and cancelling would be bit smoother. - // With this for loop implementation all entries will be - // deleted whether or not user cancels during logs operation. - - iLogClient->DeleteEvent( iEntryIds[i], iStatus ); - SetActive(); - // wait till delete has finished - iLogWriteWait.Start(); - } - - // reset must be done here, because iEntryIds is stored in destructor - iEntryIds.Reset(); - - // all entries deleted, remove the Logs related registry - iEngine->RemoveStoreL( KUidDictionaryUidLogs ); - }