diff -r b183ec05bd8c -r 19bba8228ff0 devicediagnosticsfw/diagframework/inc/diagresultsdbItembuilder.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/devicediagnosticsfw/diagframework/inc/diagresultsdbItembuilder.h Wed Sep 01 12:27:42 2010 +0100 @@ -0,0 +1,244 @@ +/* +* Copyright (c) 2007 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: Diagnostics Results Database Item Builder +* +*/ + + + +#ifndef DIAGRESULTSDBITEMBUILDER_H +#define DIAGRESULTSDBITEMBUILDER_H + +// INCLUDES +#include // CDiagResultsDatabaseItem::TResult + +// FORWARD DECLARATIONS +namespace DRM + { + class CDrmServiceApi; + } + +class MDiagResultDetail; + + +/** +* Diagnostics Result Database Item Builder. +* +* This class can be used to build CDiagResultsDatabaseItem, without having +* to have all the values avaliable. +* +* @since S60 v5.0 +*/ +NONSHARABLE_CLASS( CDiagResultsDbItemBuilder ) : public CBase + { +public: // Constructors and Destructors + /** + * Two-phase constructor. + * + * This will set the test started time to now. + * + * @param aTestUid - Test Uid. + * @param aDependencyExecution - Whether thsa was executed as dependency. + * @return New instance of CDiagResultsDbItemBuilder + */ + IMPORT_C static CDiagResultsDbItemBuilder* NewL( TUid aTestUid, + TBool aDependencyExecution ); + IMPORT_C static CDiagResultsDbItemBuilder* NewLC( TUid aTestUid, + TBool aDependencyExecution ); + + /** + * Destructor + * + */ + virtual ~CDiagResultsDbItemBuilder(); + +public: // New Interface + + /** + * Set Test Uid + * + * @param aUid - Test uid. + */ + IMPORT_C void SetTestUid( TUid aUid ); + + /** + * Get Test Uid + * + * @return Test uid. + */ + IMPORT_C TUid TestUid() const; + + /** + * Get current time. If DRM clock is available, it will use the DRM clock. + * + */ + IMPORT_C TTime GetCurrentTime() const; + + /** + * Set whether test was executed as dependency or not. + * + * @param aWasDependency + */ + IMPORT_C void SetWasDependency( TBool aWasDependency ); + + /** + * Get was dependency value + * + * @return ETrue if test was executed as a dependency. + */ + IMPORT_C TBool WasDependency() const; + + /** + * Update test result and also set completed time to now + * + * @param aResult - Test result. + */ + IMPORT_C void SetTestCompleted( CDiagResultsDatabaseItem::TResult aResult ); + + /** + * Get Test result + * + * @return Test result. + */ + IMPORT_C CDiagResultsDatabaseItem::TResult TestResult() const; + + /** + * Set Time Started + * + * @param aTime - time started. + */ + IMPORT_C void SetTimeStarted( TTime aTime ); + + /** + * Get Time started. + * + * @return Time started. + */ + IMPORT_C TTime TimeStarted() const; + + /** + * Set Time Completed + * + * @param aTime - time completed. + */ + IMPORT_C void SetTimeCompleted( TTime aTime ); + + /** + * Get Time Completed.. + * + * @return Time Completed. + */ + IMPORT_C TTime TimeCompleted() const; + + /** + * Set result detail object. If it was already set, previous object is deleted. + * + * @param aResultDetail - Result detail object. Ownership is transferred. + */ + IMPORT_C void SetResultDetail( MDiagResultDetail* aResultDetail ); + + /** + * Get result detail object. Use static_cast to change to specific instance. + * If result detail was not set previosuly, it will Panic with + * EDiagFrameworkInvalidState + * + * @return Result detail object. + */ + IMPORT_C MDiagResultDetail& ResultDetail() const; + + /** + * Create CDiagResultsDatabaseItem from data available. + * + */ + IMPORT_C CDiagResultsDatabaseItem* ToResultsDatabaseItemL() const; + + /** + * Create a simple CDiagResultsDatabaseItem. This function is meant to be + * used to create default result data with just with minimal set of information. + * It will use current time as both start and end time of test. + * If manipulation of other information in needed, either instantiate + * CDiagResultsDbItemBuilder or CDiagResultsDatabaseItem + * + * @param aTestUid - Uid of test plugin. + * @param aAsDependency - Whether it was executed as dependency or not. + * @param aResultType - Result of the test. + * @return Instance of CDiagResultsDatabaseItem* with given info. + * Ownership is transferred. + */ + IMPORT_C static CDiagResultsDatabaseItem* CreateSimpleDbItemL( + TUid aTestUid, + TBool aAsDependency, + CDiagResultsDatabaseItem::TResult aResultType ); + + +protected: // constructors + /** + * C++ Constructor + * + * @param aTestUid - Uid of the test + * @param aDependencyExecution - Whether this is being executed as dependency. + */ + CDiagResultsDbItemBuilder( TUid aTestUid, + TBool aDependencyExecution ); + /** + * ConstructL + * + */ + void ConstructL(); + +private: // Data + /** + * iTestUid - Uid of the test plug-in that this result is for. + */ + TUid iTestUid; + + /** + * iDependencyExecution - Whether this test is being executed to + * satisfy dependency or not. + */ + TBool iDependencyExecution; + + /** + * iResut - Actual result of the test. + */ + CDiagResultsDatabaseItem::TResult iResult; + + /** + * iStartTime - Time test started. + */ + TTime iStartTime; + + /** + * iEndTime - Time test finished. + */ + TTime iEndTime; + + /** + * iResultDetail - Extra details data. + * Owns. + */ + MDiagResultDetail* iResultDetail; + + /** + * iDrmApi - Used to get accurate clock through DRM. + * Owns. + */ + DRM::CDrmServiceApi* iDrmApi; + }; + + +#endif // DIAGRESULTSDBITEMBUILDER_H + +// End of File +