diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/tsrc/alfperfapp/inc/alfperfappmodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/tsrc/alfperfapp/inc/alfperfappmodel.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,267 @@ +/* +* 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: alfperfapp model class definition. +* +*/ + + +#ifndef C_ALFPERFAPPMODEL_H +#define C_ALFPERFAPPMODEL_H + +#include +#include + +#include "alfperfappconstants.h" +class CDesC16ArrayFlat; +class CAlfPerfAppModelTestSuite; + + +/** + * CAlfPerfAppModel model class. + * This class records test cases to be executed as well as + * results of those cases. + */ +class CAlfPerfAppModel : public CBase + { +public: + + struct TTestCaseResultItem + { + // Header + TBuf8 iSuiteName; + TBuf8 iCaseName; + TInt iCaseId; // Case id + TInt iPhase; // Phase: 0=startup, 1=run, 2=teardown + + // Data + TUint32 iTimeStamp; // Timestamp + TUint32 imsSinceCase; // ms since case start + TUint32 imsSincePhase; // ms since phase start + + // Application memory + TInt iAppCells; + TInt iAppMemory; + TInt iAppFree; + + // Server memory + TInt iServerCells; + TInt iServerMemory; + TInt iServerFree; + + // Frame count from server + TUint iFrameCount; // Frames from beginning of phase + TReal32 iFPS; // During this phase + + // System total memory consumption + TInt iSystemMemory; + TInt iSystemFree; + + // Testcase specifig result + TBuf8 specificResult8; + }; + + +public: + static CAlfPerfAppModel* NewL(); + ~CAlfPerfAppModel(); + + // + // Test set management functions + // + + /** + * Loads test set. + * @param aResourceId resource id for test set. + */ + void LoadTestSetL( TInt aResourceId ); + + /** + * Returns amount of test suites. + * @return amount of test suites. + */ + TInt SuiteCount() const; + + /** + * Returns name of specified suite. + * @param aSuiteIndex index to suite. + * @return name of suite. + */ + TPtrC SuiteName( TInt aSuiteIndex ) const; + + /** + * Returns flags of specified suite. + * @param aSuiteIndex index to suite. + * @return flags of suite. + */ + TInt SuiteFlags( TInt aSuiteIndex ) const; + + /** + * Returns amount of test cases in specified suite. + * @param aSuiteIndex index to suite. + * @return amount of test cases in the suite. + */ + TInt TestCaseCount( TInt aSuiteIndex ) const; + + /** + * Gets information about specified suite. + * @param aSuiteIndex index to suite. + * @param aTestCaseIndex index inside suite. + * @param aTestCaseName this is updated to point to name. + * @param aTestCaseId this is updated to hold case id. + */ + void GetTestCase( + TInt aSuiteIndex, + TInt aTestCaseIndex, + TPtrC& aTestCaseName, + TInt& aTestCaseId, + TInt& aTestCaseFlags, + TInt& aTestCaseSequenceLength ) const; + + /** + * Finds test suite name & test case name by case id. + * @param aCaseId test case id. + * @param aSuiteName this is updated to point to suite name. + * @param aTestCaseName this is updated to point to test case name. + * @return KErrNone in success, KErrNotFound if not found. + */ + TInt FindById( + TInt aCaseId, + TPtrC& aSuiteName, + TPtrC& aTestCaseName ) const; + + // + // Execute array management functions + // + /** + * Resets execute test cases array. + */ + void ResetExecuteArray(); + + /** + * Appends a case to execute array. + * @param aCaseId case to be added. + */ + void AddToExecuteArrayL( TInt aCaseId ); + + /** + * Gets first test case to be executed. + * This also removes that item from array. + */ + TBool GetFromExecuteArray( TInt& aCaseId ); + + // + // Test results management functions + // + /** + * Appends a result item to result files. + * @param aItem result item to be added. + */ + void AddToResultFilesL( const TTestCaseResultItem& aItem); + + + /** + * Adds error. + * @param aMessage message to be added. + */ + void AddToErrorArrayL( const TDesC& aMessage ); + + /** + * Returns total amount of error messages. + * @return total amounf of error messages. + */ + TInt ErrorArrayCount(); + + /** + * Gets error message. + * @param aIndex index from which to take. + * @param aMessage message. + */ + void GetFromErrorArray( TInt aIndex, TPtrC& aMessage ); + + /** + * Resets error array. + */ + void ResetErrorArray(); + + /* + * Tells if there are any results available in file. + */ + TBool ResultsNotAddedToFile(); + + /* + * Returns pointer to the file which results are written to + */ + RFile* ResultFile(); + + + /* + * Returns the target path location. + */ + TFileName TargetPath(); + + /* + * Returns if the files existed when the program was launched. + */ + TBool TargetFilesExisted(); + + /* + * Opens the result files for appending. Creates new ones if necessary. + * If reset is set to ETrue, forces recreation. + */ + void OpenFilesL(TBool reset = EFalse); + +private: + + CAlfPerfAppModel(); + void ConstructL(); + +private: + + /** + * Test suites. + * Owned. + */ + RPointerArray< CAlfPerfAppModelTestSuite > iSuites; + + /** + * Array of cases to be executed. + * Owned. + */ + RArray< TInt > iExecuteTestCases; + + /** + * Array of error messages. + * Owned. + */ + CDesC16ArrayFlat* iErrorMessages; + + TBool iFilesOpened; + TBool iFilesExisted; + TFileName iTargetPath; + + RFs iTargetFileServerSession; + TFileName iTargetFileName; + RFile iTargetFile; + + TBool iResultItemsNotAddedToFile; + + TFileName iSummaryFileName; + RFile iSummaryFile; + TFileText iSummaryWriteFileText; + + }; + +#endif // C_ALFPERFAPPMODEL_H + +// End of File