diff -r 48060abbbeaf -r b3cee849fa46 creator/inc/creator_model.h --- a/creator/inc/creator_model.h Thu Aug 19 09:55:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,455 +0,0 @@ -/* -* Copyright (c) 2008 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: -* -*/ - - - - - -#ifndef __CREATORENGINE_H__ -#define __CREATORENGINE_H__ - - -#include "creator_appui.h" -#include "creator.hrh" - -#include "creator_std.h" -#include "creator_scriptentry.h" -#include "creator_modulebase.h" -#include "creator_browser.h" -#include "creator_calendar.h" -#include "creator_phonebookbase.h" -#include "creator_note.h" -#include "creator_log.h" -#include "creator_connectionmethodbase.h" -#include "creator_mailbox.h" -#include "creator_imps.h" -#include "creator_message.h" -#include "creator_landmark.h" -#include "creator_randomdataparser.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include //TFrameInfo - -class CCreatorAppUi; -class TCommand; -class CCreatorBrowser; -class CCreatorCalendarBase; -class CCreatorNotepad; -class CCreatorLogs; -class CCreatorAccessPoints; -class CCreatorMailboxes; -class CCreatorIMPS; -class CCreatorFiles; -class CCreatorMessages; -class CCreatorLandmarks; -class CDictionaryFileStore; -class CImageDecoder; -class CFbsBitmap; -class CBitmapScaler; - -// Common constant for undefined integer value: -const TInt KUndef = KErrNotFound; - -class CCreatorEngine : public CActive, public MProgressDialogCallback - { -public: - - enum TRandomStringType - { - EFirstName = 0, - ESurname, - ECompany, - EAddress, - EJobTitle, - EPhoneNumber, - EGroupName, - EMeetingReason, - EMeetingPlace, - EMemoText, - EAnniversaryReason, - EToDoText, - EReminderText, - EMessageSubject, - EMessageText, - ECity, - ECountry, - EPostcode, - EState, - EPobox, - EPrefix, - ESuffix, - ELandmarkName, - ELandmarkDescription - }; - - -// note! changing order will cause regression in other modules - - enum TTestDataPath - { - EJPEG_25kB = 0, - EJPEG_200kB, - EJPEG_500kB, - EPNG_15kB, - EGIF_2kB, - ERNG_1kB, - EMIDI_10kB, - EWAVE_20kB, - EAMR_20kB, - EExcel_15kB, - EWord_20kB, - EPowerPoint_40kB, - EText_10kB, - EText_70kB, - E3GPP_70kB, - EMP3_250kB, - EAAC_100kB, - ERM_95kB, - EBMP_25kB, - EHTML_20kB, - EJAD_1kB, - EJAR_10kB, - EJP2_65kB, - EMP4_200kB, - EMXMF_40kB, - ERAM_1kB, - ESVG_15kB, - ESWF_15kB, - ETIF_25kB, - EVCF_1kB, - EVCS_1kB, - ESISX_10kB, - EWMA_50kB, - EWMV_200kB, - ESavedDeck_1kB, - LAST_FILE_ID//When you add new items to enum, add them before last item, so random number generations does not need to be updated also - }; - - enum TRandomDateType - { - EDatePast, - EDateFuture - }; - -public: - static CCreatorEngine* NewL(CCreatorAppUi* aAppUi); - ~CCreatorEngine(); - -private: - CCreatorEngine(); - void ConstructL(CCreatorAppUi* aAppUi); - void Init(); - void RunL(); - TInt RunError(TInt aError); - void DoCancel(); - - void ExecuteFirstCommandL(const TDesC& aText); - void ExecuteCommand(); - void StartEnginesL(); - void ShutDownEnginesL(); - void CheckForMoreCommandsL(); - void DialogDismissedL(TInt aButtonId); //from MProgressDialogCallback - - TBool IsDeleteCommand( TInt aCommand ); - - TInt ReadRandomDataL(const TRandomStringType aRandomStringType, - const TInt aResourceId, - const TDesC& aFilename, - const CCreatorRandomDataParser::TRandomDataType aRandomDataType); - void GenerateSourceImageFileL( const TTestDataPath aFileType, const TDesC& aFileName ); - void GenereteSourceTextFileL( const TDesC& aFileName, TInt aSize ); - -public: - void ExecuteOptionsMenuCommandL(TInt aCommand); - void RunScriptL(); - TInt RunScriptL(const TDesC& aScriptFile); - - void AppendToCommandArrayL(TInt aCommand, CCreatorModuleBaseParameters* aParameters, TInt aNumberOfEntries = 1); - TInt CommandArrayCount(); - - TBool EntriesQueryDialogL(TInt& aNumberOfEntries, const TDesC& aPrompt, TBool aAcceptsZero=EFalse); - TBool TimeQueryDialogL(TTime& aTime, TInt aResourceId); - TBool YesNoQueryDialogL(const TDesC& aPrompt); - - TPtrC TestDataPathL(enum TTestDataPath aTestDataPath); - TPtrC RandomSoundFileL(); // Returns temporary path, which will be removed on shutdown - TPtrC RandomPictureFileL(); // Returns temporary path, which will be removed on shutdown - TPtrC CreateRandomSoundFileL(); // Copies file to new location and returns the new path - TPtrC CreateSoundFileL(TTestDataPath aId); // Copies file to new location and returns the new path - - void CopyFileL(const TFileName& aSourceFile, const TFileName& aTargetFile, TBool aOverwrite = EFalse ); - /* - * Gets attacment file id based on the file id string - * @return Attachment file id - * @param aAttachmentIdStr Attachment file id string - */ - TInt GetAttachmentIdL( const TDesC& aAttachmentIdStr ) const; - - TUint32 GetDefaultIAPL(); - TUint32 AccessPointNameToIdL(const TDesC& aAPName, TBool aAnyIfNotFound = EFalse ); - - TPtrC RandomString(enum TRandomStringType aRandomStringType); - TInt RandomNumber(TInt aRange); - TInt RandomNumber(TInt aMin, TInt aMax); - TTime RandomDate(TRandomDateType type, TInt aMinDays = 0, TInt aMaxDays = 360 ); - TTime RandomDate(TTime baseTime, TRandomDateType type, TInt aMinDays = 0, TInt aMaxDays = 360); - TTime RandomTime(TTime baseTime, TRandomDateType type, TInt aMinHours=0, TInt aMaxHours=24, TInt aMinMinutes=0, TInt aMaxMinutes=60 ); - CDesCArrayFlat* SoundFilesL(); - CDesCArrayFlat* PictureFilesL(); - - HBufC* CreateEmailAddressLC(); - HBufC* CreateHTTPUrlLC(); - HBufC* CreateRandomStringLC(TInt aStrLen); - - HBufC* CreateEmailAddressLC( - const TDesC& firstname, - const TDesC& lastname, - const TDesC& domain, - const TDesC& country ) const; - - HBufC* CreateUrlLC( - const TDesC& protocol, - const TDesC& prefix, - const TDesC& domain, - const TDesC& country) const; - - void SetDefaultPathForFileCommandL(TInt aCommand, TFileName& aPath); - - TBool GetRandomDataFilenameL(TDes& aFilename); - TBool GetRandomDataFromFileL(const TDesC& aFilename); - void CancelComplete(); - CDictionaryFileStore* FileStoreLC(); - void ReadEntryIdsFromStoreL( RArray& aEntryIds, const TUid aModuleUid ); - void WriteEntryIdsToStoreL( RArray& aEntryIds, const TUid aModuleUid ); - void ReadEntryIdsFromStoreL( RArray& aEntryIds, const TUid aModuleUid ); - void WriteEntryIdsToStoreL( RArray& aEntryIds, const TUid aModuleUid ); - void RemoveStoreL( const TUid aModuleUid ); - -private: - // needed by the engine itself - RTimer iTimer; - CEikonEnv* iEnv; - CCreatorAppUi* iAppUi; - TInt iCurrentEntry; - TInt iEntriesToBeCreated; - TInt iFailedCommands; - - CDesCArrayFlat* iSoundFileArray; - CDesCArrayFlat* iPictureFileArray; - CCommandArray* iCommandArray; - RPointerArray iParameterArray; - // progress bar - CAknProgressDialog* iProgressDialog; - CEikProgressInfo* iProgressInfo; - - // for the random data generator - TInt64 iSeed; - - class TStringArrayPtr - { - public: - TStringArrayPtr(TRandomStringType aType, CDesCArray* aPtr) - { - iStringType = aType; - iArrayPtr = aPtr; - }; - TRandomStringType iStringType; - CDesCArray* iArrayPtr; - }; - - RArray iStringArrays; - - // modules - CCreatorBrowser* iBrowser; - CCreatorCalendarBase* iCalendar; - CCreatorPhonebookBase* iPhonebook; - CCreatorNotepad* iNotepad; - CCreatorLogs* iLogs; - CCreatorConnectionSettingsBase* iAccessPoints; - CCreatorMailboxes* iMailboxes; - CCreatorIMPS* iIMPS; - CCreatorFiles* iFiles; - CCreatorMessages* iMessages; - CCreatorLandmarks* iLandmarks; - - // options menu command home module - MCreatorModuleBase* iUsedOptionsMenuModule; - - HBufC* iTempPath; - - RPointerArray iAllocatedFilePaths; - TBool iUserCancelled; - - // For generating missing bitmaps - HBufC8* iBitmapData; - CFbsBitmap* iBitmap; - CFbsBitmap* iScaledBitmap; - CImageDecoder* iDecoder; - TFrameInfo iFrameinfo; - CImageEncoder* iEncoder; - CFrameImageData* iFrameImageData; - CBitmapScaler* iScaler; - -public: - - }; - -// this class contains a command which will be executed -class TCommand - { -public: - TInt iCommandId; - CCreatorModuleBaseParameters* iParameters; -public: - TCommand(TInt aCommandId, CCreatorModuleBaseParameters* aParameters); - ~TCommand(); - - }; - - -// utility class for waiting for asychronous requests -class CAsyncWaiter : public CActive - { -public: - static CAsyncWaiter* NewL( TInt aPriority = EPriorityStandard ); - static CAsyncWaiter* NewLC( TInt aPriority = EPriorityStandard ); - ~CAsyncWaiter(); - - void StartAndWait(); - TInt Result() const; - -private: - CAsyncWaiter( TInt aPriority ); - - // from CActive - void RunL(); - void DoCancel(); - -private: - CActiveSchedulerWait iWait; - TInt iError; - }; - - -/* - * Maps file id string (file name) to TTestDataPath (file id) and TCreatorIds (command id) - */ -// File ids: - - _LIT(K3GPP_70KB, "3GPP-70kB"); - _LIT(KAAC_100KB, "AAC-100kB"); - _LIT(KAMR_20KB, "AMR-20kB"); - _LIT(KXLS_15KB, "XLS-15kB"); - _LIT(KGIF_2KB, "GIF-2kB"); - _LIT(KJPEG_200KB, "JPEG-200kB"); - _LIT(KJPEG_25KB, "JPEG-25kB"); - _LIT(KJPEG_500KB, "JPEG-500kB"); - _LIT(KMIDI_10KB, "MIDI-10kB"); - _LIT(KMP3_250KB, "MP3-250kB"); - _LIT(KPNG_15KB, "PNG-15kB"); - _LIT(KPPT_40KB, "PPT-40kB"); - _LIT(KRM_95KB, "RM-95kB"); - _LIT(KRNG_1KB, "RNG-1kB"); - _LIT(KTXT_10KB, "TXT-10kB"); - _LIT(KTXT_70KB, "TXT-70kB"); - _LIT(KWAV_20KB, "WAV-20kB"); - _LIT(KDOC_20KB, "DOC-20kB"); - _LIT(KSWF_15KB, "SWF-15kB"); - _LIT(KJAD_1KB, "JAD-1kB"); - _LIT(KJAR_10KB, "JAR-10kB"); - _LIT(KTIF_25KB, "TIF-25kB"); - _LIT(KMXMF_40KB, "MXMF-40kB"); - _LIT(KBMP_25KB, "BMP-25kB"); - _LIT(KJP2_25KB, "JP2-25kB"); - _LIT(KSVG_15KB, "SVG-15kB"); - _LIT(KHTML_20KB, "HTML-20kB"); - _LIT(KVCF_1KB, "VCF-1kB"); - _LIT(KVCS_1KB, "VCS-1kB"); - _LIT(KMP4_200KB, "MP4-200kB"); - _LIT(KSISX_10KB, "SISX-10kB"); - _LIT(KRAM_1KB, "RAM-1kB"); - _LIT(KDECK_1KB, "DECK-1kB"); - _LIT(KWMA_50KB, "WMA-50kB"); - _LIT(KWMV_200KB, "WMV-200kB"); - -class FileMapping - { - public: - FileMapping(const TDesC& aFileName, TInt aFileId, TInt aCommandId ); - const TDesC& FileName() const; - TInt FileId() const; - TInt CommandId() const; - - private: - const TDesC& iFileName; - TInt iFileId; - TInt iCommandId; - }; - - /* - * This table contains the string <-> TTestDataPath mappings for the file types - */ - static FileMapping FileMap[] = - { - - FileMapping(K3GPP_70KB, CCreatorEngine::E3GPP_70kB, ECmdCreateFileEntry3GPP_70kB), - FileMapping(KAAC_100KB, CCreatorEngine::EAAC_100kB, ECmdCreateFileEntryAAC_100kB), - FileMapping(KAMR_20KB, CCreatorEngine::EAMR_20kB, ECmdCreateFileEntryAMR_20kB), - FileMapping(KXLS_15KB, CCreatorEngine::EExcel_15kB, ECmdCreateFileEntryXLS_15kB), - FileMapping(KGIF_2KB, CCreatorEngine::EGIF_2kB, ECmdCreateFileEntryGIF_2kB), - FileMapping(KJPEG_200KB, CCreatorEngine::EJPEG_200kB, ECmdCreateFileEntryJPEG_200kB), - FileMapping(KJPEG_25KB, CCreatorEngine::EJPEG_25kB, ECmdCreateFileEntryJPEG_25kB), - FileMapping(KJPEG_500KB, CCreatorEngine::EJPEG_500kB, ECmdCreateFileEntryJPEG_500kB), - FileMapping(KMIDI_10KB, CCreatorEngine::EMIDI_10kB, ECmdCreateFileEntryMIDI_10kB), - FileMapping(KMP3_250KB, CCreatorEngine::EMP3_250kB, ECmdCreateFileEntryMP3_250kB), - FileMapping(KPNG_15KB, CCreatorEngine::EPNG_15kB, ECmdCreateFileEntryPNG_15kB), - FileMapping(KPPT_40KB, CCreatorEngine::EPowerPoint_40kB, ECmdCreateFileEntryPPT_40kB), - FileMapping(KRM_95KB, CCreatorEngine::ERM_95kB, ECmdCreateFileEntryRM_95kB), - FileMapping(KRNG_1KB, CCreatorEngine::ERNG_1kB, ECmdCreateFileEntryRNG_1kB), - FileMapping(KTXT_10KB, CCreatorEngine::EText_10kB, ECmdCreateFileEntryTXT_10kB), - FileMapping(KTXT_70KB, CCreatorEngine::EText_70kB, ECmdCreateFileEntryTXT_70kB), - FileMapping(KWAV_20KB, CCreatorEngine::EWAVE_20kB, ECmdCreateFileEntryWAV_20kB), - FileMapping(KDOC_20KB, CCreatorEngine::EWord_20kB, ECmdCreateFileEntryDOC_20kB), - FileMapping(KBMP_25KB, CCreatorEngine::EBMP_25kB, ECmdCreateFileEntryBMP_25kB), - FileMapping(KDECK_1KB, CCreatorEngine::ESavedDeck_1kB, ECmdCreateFileEntryDeck_1kB), - FileMapping(KHTML_20KB, CCreatorEngine::EHTML_20kB, ECmdCreateFileEntryHTML_20kB), - FileMapping(KJAD_1KB, CCreatorEngine::EJAD_1kB, ECmdCreateFileEntryJAD_1kB), - FileMapping(KJAR_10KB, CCreatorEngine::EJAR_10kB, ECmdCreateFileEntryJAR_10kB), - FileMapping(KJP2_25KB, CCreatorEngine::EJP2_65kB, ECmdCreateFileEntryJP2_65kB), - FileMapping(KMP4_200KB, CCreatorEngine::EMP4_200kB, ECmdCreateFileEntryMP4_200kB), - FileMapping(KMXMF_40KB, CCreatorEngine::EMXMF_40kB, ECmdCreateFileEntryMXMF_40kB), - FileMapping(KRAM_1KB, CCreatorEngine::ERAM_1kB, ECmdCreateFileEntryRAM_1kB), - FileMapping(KSVG_15KB, CCreatorEngine::ESVG_15kB, ECmdCreateFileEntrySVG_15kB), - FileMapping(KSWF_15KB, CCreatorEngine::ESWF_15kB, ECmdCreateFileEntrySWF_15kB), - FileMapping(KTIF_25KB, CCreatorEngine::ETIF_25kB, ECmdCreateFileEntryTIF_25kB), - FileMapping(KVCF_1KB, CCreatorEngine::EVCF_1kB, ECmdCreateFileEntryVCF_1kB), - FileMapping(KVCS_1KB, CCreatorEngine::EVCS_1kB, ECmdCreateFileEntryVCS_1kB), - FileMapping(KSISX_10KB, CCreatorEngine::ESISX_10kB, ECmdCreateFileEntrySISX_10kB), - FileMapping(KWMA_50KB, CCreatorEngine::EWMA_50kB, ECmdCreateFileEntryWMA_50kB), - FileMapping(KWMV_200KB, CCreatorEngine::EWMV_200kB, ECmdCreateFileEntryWMV_200kB) - }; - -#endif // __CREATORENGINE_H__ -