--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/testexecfw/tef/utils/src/datawrapper.cpp Mon Mar 08 15:03:44 2010 +0800
@@ -0,0 +1,240 @@
+/*
+* Copyright (c) 2005-2009 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:
+* @file
+* This contains CDataWrapper
+*
+*/
+
+
+
+/**
+ @prototype
+ @test
+*/
+
+#include "DataWrapper.h"
+
+_LIT(KDictionaryName, "name");
+
+EXPORT_C CDataWrapper::CDataWrapper()
+/**
+ * Constructor
+ */
+: iDataDictionary(NULL)
+, iTestBlockController(NULL)
+, iOutstanding(0)
+ {
+ }
+
+EXPORT_C CDataWrapper::~CDataWrapper()
+/**
+ * Destructor
+ */
+ {
+ }
+
+EXPORT_C void CDataWrapper::SetTestBlockController(CTestBlockController* aTestBlockController)
+/**
+ * Set the test block controller
+ *
+ * @param aTestBlockController - the controller
+ *
+ * @see CTestBlockController
+ */
+ {
+ iTestBlockController = aTestBlockController;
+ }
+
+EXPORT_C void CDataWrapper::SetDataDictionary(CDataDictionary* aDataDictionary)
+/**
+ * Set the data dictionary
+ *
+ * @param aDataDictionary - the data dictionary
+ *
+ * @see CDataDictionary
+ */
+ {
+ iDataDictionary = aDataDictionary;
+ }
+
+// MDataAccess implementation
+EXPORT_C TBool CDataWrapper::GetBoolFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TBool& aResult)
+ {
+ return iTestBlockController?iTestBlockController->GetBoolFromConfig(aSectName, aKeyName, aResult):EFalse;
+ }
+
+EXPORT_C TBool CDataWrapper::GetIntFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt& aResult)
+ {
+ return iTestBlockController?iTestBlockController->GetIntFromConfig(aSectName, aKeyName, aResult):EFalse;
+ }
+
+EXPORT_C TBool CDataWrapper::GetStringFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TPtrC& aResult)
+ {
+ return iTestBlockController?iTestBlockController->GetStringFromConfig(aSectName, aKeyName, aResult):EFalse;
+ }
+
+EXPORT_C TBool CDataWrapper::GetHexFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt& aResult)
+ {
+ return iTestBlockController?iTestBlockController->GetHexFromConfig(aSectName, aKeyName, aResult):EFalse;
+ }
+
+EXPORT_C TBool CDataWrapper::WriteBoolToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TBool& aValue)
+ {
+ return iTestBlockController?iTestBlockController->WriteBoolToConfig(aSectName, aKeyName, aValue):EFalse;
+ }
+
+EXPORT_C TBool CDataWrapper::WriteIntToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TInt& aValue)
+ {
+ return iTestBlockController?iTestBlockController->WriteIntToConfig(aSectName, aKeyName, aValue):EFalse;
+ }
+
+EXPORT_C TBool CDataWrapper::WriteStringToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TPtrC& aValue)
+ {
+ return iTestBlockController?iTestBlockController->WriteStringToConfig(aSectName, aKeyName, aValue):EFalse;
+ }
+
+EXPORT_C TBool CDataWrapper::WriteHexToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TInt& aValue)
+ {
+ return iTestBlockController?iTestBlockController->WriteHexToConfig(aSectName, aKeyName, aValue):EFalse;
+ }
+
+EXPORT_C void CDataWrapper::ReadSharedDataL(const TDesC& aShareName, TDes& aSharedDataVal)
+ {
+ if( iTestBlockController )
+ {
+ iTestBlockController->ReadSharedDataL(aShareName, aSharedDataVal);
+ }
+ }
+
+EXPORT_C void CDataWrapper::WriteSharedDataL(const TDesC& aShareName, TDesC& aSharedDataVal, TModeCopy aModeCopy)
+ {
+ if( iTestBlockController )
+ {
+ iTestBlockController->WriteSharedDataL( aShareName, aSharedDataVal, aModeCopy );
+ }
+ }
+
+EXPORT_C CTestExecuteLogger& CDataWrapper::Logger()
+ {
+ return iTestBlockController->Logger();
+ }
+
+EXPORT_C CDataWrapper* CDataWrapper::GetDataWrapperL(const TDesC& aSectionName)
+ {
+ CDataWrapper* dataWrapper = NULL;
+ if( iDataDictionary )
+ {
+ // Lookup the dictionary name in the ini file
+ TPtrC dictionaryName;
+ TBool res = GetStringFromConfig(aSectionName, KDictionaryName, dictionaryName );
+ if( KErrNone != res )
+ {
+ // Retrieve the object from the dictionary
+ dataWrapper = iDataDictionary->GetDataL(dictionaryName);
+ }
+ else
+ {
+ User::Leave( KErrBadName );
+ }
+ }
+ return dataWrapper;
+ }
+
+EXPORT_C TAny* CDataWrapper::GetDataObjectL(const TDesC& aSectionName)
+ {
+ TAny* dataObject = NULL;
+ if( iDataDictionary )
+ {
+ // Lookup the dictionary name in the ini file
+ TPtrC dictionaryName;
+ TBool res = GetStringFromConfig(aSectionName, KDictionaryName, dictionaryName );
+ if( KErrNone != res )
+ {
+ // Retrieve the object from the dictionary
+ dataObject = iDataDictionary->GetObjectL(dictionaryName);
+ }
+ else
+ {
+ User::Leave( KErrBadName );
+ }
+ }
+ return dataObject;
+ }
+
+EXPORT_C void CDataWrapper::SetDataObjectL(const TDesC& aSectionName, TAny* aObject)
+ {
+ if( iDataDictionary )
+ {
+ // Lookup the dictionary name in the ini file
+ TPtrC dictionaryName;
+ TBool res = GetStringFromConfig(aSectionName, KDictionaryName, dictionaryName );
+ if( KErrNone != res )
+ {
+ // Set the object in the wrapper
+ iDataDictionary->SetObjectL(dictionaryName, aObject);
+ }
+ else
+ {
+ User::Leave( KErrBadName );
+ }
+ }
+ }
+
+// MTEFResult implementation
+EXPORT_C void CDataWrapper::SetError(const TInt aError)
+ {
+ if( iTestBlockController )
+ {
+ iTestBlockController->SetError( aError );
+ }
+ }
+
+EXPORT_C void CDataWrapper::SetAsyncError(const TInt aIndex, const TInt aError)
+ {
+ if( iTestBlockController )
+ {
+ iTestBlockController->SetAsyncError( aIndex, aError );
+ }
+ }
+
+EXPORT_C void CDataWrapper::SetBlockResult(const TVerdict aResult)
+ {
+ if( iTestBlockController )
+ {
+ iTestBlockController->SetBlockResult( aResult );
+ }
+ }
+
+EXPORT_C TVerdict CDataWrapper::BlockResult()
+ {
+ return iTestBlockController->BlockResult();
+ }
+
+// MActiveCallback implementation
+EXPORT_C void CDataWrapper::RunL(CActive* /*aActive*/, TInt /*aIndex*/)
+ {
+ // This should never be called, if it has been then warn the user!
+ // They need to implement this function when using CActiveCallback's
+ // and handle the request completion!
+ SetBlockResult( EFail );
+ }
+
+EXPORT_C void CDataWrapper::DoCancel(CActive* /*aActive*/, TInt /*aIndex*/)
+ {
+ // This should never be called, if it has been then warn the user!
+ // They need to implement this function when using CActiveCallback's
+ // and handle the request cancellation!
+ SetBlockResult( EFail );
+ }