videoutils_plat/videoconnutility_api/tsrc/VCXTestCommon/inc/VCXTestStatsKeeper.h
branchRCL_3
changeset 48 13a33d82ad98
parent 0 822a42b6c3f1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoutils_plat/videoconnutility_api/tsrc/VCXTestCommon/inc/VCXTestStatsKeeper.h	Wed Sep 01 12:20:37 2010 +0100
@@ -0,0 +1,236 @@
+/*
+* 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 the License "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 VCXTESTSTATSKEEPER_H
+#define VCXTESTSTATSKEEPER_H
+
+//  INCLUDES
+#include <e32base.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+* Class to hold a single statistics item.
+*/
+class CVCXTestStatsItem : public CBase
+    {
+    public:  // Constructors and destructor
+    
+        /**
+        * Two-phased constructor.
+        */
+        static CVCXTestStatsItem* NewL();
+
+        /**
+        * Destructor.
+        */
+        virtual ~CVCXTestStatsItem();
+	
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CVCXTestStatsItem();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+    
+    public: // Data
+
+        TBool iIsActive;
+        
+        TInt32 iId;
+        HBufC* iDescId;
+        HBufC* iDesc;
+        TInt iError;
+        TTime iStartTime;
+        TTime iEndTime;
+        
+        RPointerArray<HBufC> iTraces;
+        RPointerArray<CVCXTestStatsItem> iProgresses;
+    };
+
+/**
+* Class to hold summary for statistics.
+*/
+class CVCXTestStatsItemSummary : public CBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CVCXTestStatsItemSummary* NewL();
+
+        /**
+        * Destructor.
+        */
+        virtual ~CVCXTestStatsItemSummary();
+    
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CVCXTestStatsItemSummary();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+    
+    public: // Data
+        TInt32 iId;
+        HBufC* iDescId;
+        HBufC* iDesc;
+        
+        TUint iCount;
+        TUint iFailCount;
+
+        // These are all microseconds.
+        TInt64 iMinTime;
+        TInt64 iMaxTime;
+        TReal iAvgTime;
+        
+        TInt64 iTotalTime;
+        TInt64 iFailTime;
+    };
+
+/**
+* Class to keep track of statistics.
+*/
+class CVCXTestStatsKeeper : public CBase
+    {
+    public:  // Constructors and destructor
+    
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C static CVCXTestStatsKeeper* NewL();
+
+        /**
+        * Destructor.
+        */
+        virtual ~CVCXTestStatsKeeper ();
+
+    public: // New functions
+
+    	/**
+    	* Sets the name and filename for statistics. Report is written when class is desctructed.
+    	*/
+		IMPORT_C void StartStatsKeepingL( const TDesC& aName, const TDesC& aFileName );
+
+		/**
+		 * Adds an action to the statistics lists.
+		 */
+		IMPORT_C void ActionStartL( TInt32 aId, const TDesC& aDesc );
+
+        /**
+         * Adds an action to the statistics lists. 
+         * if param aDescMerge is true then action descsription will contain the descid. 
+         */
+        IMPORT_C void ActionStartL( const TDesC& aDescId, const TDesC& aDesc, TBool aDescMerge = EFalse );
+		
+		/**
+		 * Ends an action.
+		 * Leaves with KErrAbort if more than 33% of actions have failed. Test should abort itself in that case.
+		 */
+		IMPORT_C void ActionEndL( TInt32 aId, TInt aError );
+
+        /**
+         * Ends an action.
+         * Leaves with KErrAbort if more than 33% of actions have failed. Test should abort itself in that case.
+         */
+        IMPORT_C void ActionEndL( const TDesC& aDescId, TInt aError );
+		
+		/**
+		 * Sets progress information for an action. These are saved in the report.
+		 */
+		IMPORT_C void ActionProgressL( TInt32 aId, const TDesC& aProgressDesc );
+
+        /**
+         * Sets progress information for an action. These are saved in the report.
+         */
+        IMPORT_C void ActionProgressL( const TDesC& aDescId, const TDesC& aProgressDesc );
+		
+		/**
+		 * Generic trace for different actions. Last 20 of these are saved in the report only if action fails.
+		 */
+		IMPORT_C void ActionTraceL( const TDesC& aDesc );
+		
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CVCXTestStatsKeeper();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    private: // New functions.
+        
+        CVCXTestStatsItem* GetActiveAction( TInt32 aId );
+        
+        CVCXTestStatsItem* GetActiveAction( const TDesC& aDesc );
+        
+        CVCXTestStatsItem* GetLastActiveAction( TBool aOnlyDescId );
+        
+        TInt FormatDate( const TTime& aDate, TDes& aStr );
+        
+        void GenerateReportL( const TDesC& aFileName, TBool aFullReport );
+        
+        TUint DataSizeL();
+        
+        void CheckFailsL();
+
+        void GetActionSummariesL( RPointerArray<CVCXTestStatsItemSummary>& aSummaries, TBool aFailActiveActions );
+        
+    private:    // Data
+
+        TBool iStarted;
+        
+        HBufC* iReportName;
+        
+        HBufC* iReportFileName;       
+        
+        RPointerArray<CVCXTestStatsItem> iActions;
+        
+        RPointerArray<HBufC> iTraces;
+        
+        TBool iAbortedBecauseTooManyFails;
+    };
+
+#endif      // VCXTESTSTATSKEEPER_H
+
+// End of File