--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devicediagnosticsfw/diagframework/src/diagresultsdbitembuilder.cpp Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,285 @@
+/*
+* 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: Class definition of CDiagResultsDbItemBuilder
+*
+*/
+
+
+// CLASS DECLARATION
+#include <DiagResultsDbItemBuilder.h>
+
+// SYSTEM INCLUDE FILES
+#include <DiagResultDetail.h> // MDiagResultDetail
+
+#ifndef __DIAGFW_DISABLE_DRM_API
+#include <drmserviceapi.h> // DRM::CDrmServiceApi
+#endif // __DIAGFW_DISABLE_DRM_API
+
+// USER INCLUDE FILES
+#include "diagframework.pan" // Panic Codes
+
+
+// CONSTANTS
+
+// ======== MEMBER FUNCTIONS ========
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CDiagResultsDbItemBuilder* CDiagResultsDbItemBuilder::NewL(
+ TUid aTestUid,
+ TBool aDependencyExecution )
+ {
+ CDiagResultsDbItemBuilder* self = CDiagResultsDbItemBuilder::NewLC(
+ aTestUid,
+ aDependencyExecution );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::NewLC
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CDiagResultsDbItemBuilder* CDiagResultsDbItemBuilder::NewLC(
+ TUid aTestUid,
+ TBool aDependencyExecution )
+ {
+ CDiagResultsDbItemBuilder* self = new( ELeave )CDiagResultsDbItemBuilder(
+ aTestUid,
+ aDependencyExecution );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::CDiagResultsDbItemBuilder
+// ---------------------------------------------------------------------------
+//
+CDiagResultsDbItemBuilder::CDiagResultsDbItemBuilder(
+ TUid aTestUid,
+ TBool aDependencyExecution )
+ : iTestUid( aTestUid ),
+ iDependencyExecution( aDependencyExecution ),
+ iResult( CDiagResultsDatabaseItem::ENotPerformed )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CDiagResultsDbItemBuilder::ConstructL()
+ {
+#ifndef __DIAGFW_DISABLE_DRM_API
+ iDrmApi = DRM::CDrmServiceApi::NewL();
+#endif // __DIAGFW_DISABLE_DRM_API
+
+ SetTimeStarted( GetCurrentTime() );
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::~CDiagResultsDbItemBuilder
+// ---------------------------------------------------------------------------
+//
+CDiagResultsDbItemBuilder::~CDiagResultsDbItemBuilder()
+ {
+#ifndef __DIAGFW_DISABLE_DRM_API
+ delete iDrmApi;
+ iDrmApi = NULL;
+#endif // __DIAGFW_DISABLE_DRM_API
+ delete iResultDetail;
+ iResultDetail = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::SetTestUid
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDiagResultsDbItemBuilder::SetTestUid( TUid aUid )
+ {
+ iTestUid = aUid;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::TestUid
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUid CDiagResultsDbItemBuilder::TestUid() const
+ {
+ return iTestUid;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::GetCurrentTime
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TTime CDiagResultsDbItemBuilder::GetCurrentTime() const
+ {
+ TTime currTime = ( TInt64 )0;
+#ifndef __DIAGFW_DISABLE_DRM_API
+ TInt timeZone = 0;
+ DRMClock::ESecurityLevel secLevel = DRMClock::KInsecure;
+ if ( iDrmApi->GetSecureTime( currTime, timeZone, secLevel ) != KErrNone )
+ {
+ __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) );
+ // if we are unable to get DRM clock, use home clock.
+ currTime.UniversalTime();
+ }
+#endif // __DIAGFW_DISABLE_DRM_API
+ currTime.UniversalTime(); // Added for Time Updation in HardwareSuiteView
+ return currTime;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::SetWasDependency
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDiagResultsDbItemBuilder::SetWasDependency( TBool aWasDependency )
+ {
+ iDependencyExecution = aWasDependency;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::WasDependency
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CDiagResultsDbItemBuilder::WasDependency() const
+ {
+ return iDependencyExecution;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::SetTestCompleted
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDiagResultsDbItemBuilder::SetTestCompleted(
+ CDiagResultsDatabaseItem::TResult aResult )
+ {
+ iResult = aResult;
+ SetTimeCompleted( GetCurrentTime() );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::TestResult
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CDiagResultsDatabaseItem::TResult CDiagResultsDbItemBuilder::TestResult() const
+ {
+ return iResult;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::SetTimeStarted
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDiagResultsDbItemBuilder::SetTimeStarted( TTime aTime )
+ {
+ iStartTime = aTime;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::TimeStarted
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TTime CDiagResultsDbItemBuilder::TimeStarted() const
+ {
+ return iStartTime;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::SetTimeCompleted
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDiagResultsDbItemBuilder::SetTimeCompleted( TTime aTime )
+ {
+ iEndTime = aTime;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::TimeCompleted
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TTime CDiagResultsDbItemBuilder::TimeCompleted() const
+ {
+ return iStartTime;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::SetResultDetail
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDiagResultsDbItemBuilder::SetResultDetail(
+ MDiagResultDetail* aResultDetail )
+ {
+ delete iResultDetail;
+ iResultDetail = aResultDetail;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::ResultDetail
+// ---------------------------------------------------------------------------
+//
+EXPORT_C MDiagResultDetail& CDiagResultsDbItemBuilder::ResultDetail() const
+ {
+ __ASSERT_ALWAYS( iResultDetail, Panic( EDiagFrameworkInvalidState ) );
+ return *iResultDetail;
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::ToResultsDatabaseItemL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CDiagResultsDatabaseItem* CDiagResultsDbItemBuilder::ToResultsDatabaseItemL() const
+ {
+ CBufFlat* detailsData = NULL;
+
+ if ( iResultDetail )
+ {
+ detailsData = iResultDetail->ExternalizeToBufferL();
+ }
+
+ return CDiagResultsDatabaseItem::NewL( iTestUid,
+ iDependencyExecution,
+ iResult,
+ iStartTime,
+ iEndTime,
+ detailsData ); // ownership tranferred.
+ }
+
+// ---------------------------------------------------------------------------
+// CDiagResultsDbItemBuilder::CreateSimpleDbItemL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CDiagResultsDatabaseItem* CDiagResultsDbItemBuilder::CreateSimpleDbItemL(
+ TUid aTestUid,
+ TBool aAsDependency,
+ CDiagResultsDatabaseItem::TResult aResultType )
+ {
+ CDiagResultsDbItemBuilder* resultBuilder =
+ CDiagResultsDbItemBuilder::NewL( aTestUid,
+ aAsDependency );
+ resultBuilder->SetTestCompleted( aResultType );
+
+ CleanupStack::PushL( resultBuilder );
+ CDiagResultsDatabaseItem* dbItem = resultBuilder->ToResultsDatabaseItemL();
+ CleanupStack::PopAndDestroy( resultBuilder );
+
+ return dbItem;
+ }
+
+// End of File
+