sl@0: /* sl@0: * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: #ifndef DATA_WRAPPER_BASE_H sl@0: #define DATA_WRAPPER_BASE_H sl@0: sl@0: // EPOC includes sl@0: #include sl@0: #define SECS_TO_MS(x) (x*1000000) sl@0: sl@0: _LIT(KConsname, "Test Console"); sl@0: sl@0: #define GETFROMCONFIGOPTIONAL(aType, aSectName, aKeyName, aResult, aLogMessage) \ sl@0: if ( !Get##aType##FromConfig(aSectName, aKeyName, aResult) ) \ sl@0: { \ sl@0: WARN_PRINTF3(aLogMessage, &aKeyName, aResult); \ sl@0: } sl@0: sl@0: #define GETFROMCONFIGMANDATORY(aType, aSectName, aKeyName, aResult, aLogMessage, aDataOk) \ sl@0: if ( !Get##aType##FromConfig(aSectName, aKeyName, aResult) ) \ sl@0: { \ sl@0: ERR_PRINTF2(aLogMessage, &aKeyName); \ sl@0: SetBlockResult(EFail); \ sl@0: aDataOk=EFalse; \ sl@0: } sl@0: sl@0: #define GETSTRINGFROMCONFIGOPTIONAL(aSectName, aKeyName, aResult, aLogMessage) \ sl@0: if ( !GetStringFromConfig(aSectName, aKeyName, aResult) ) \ sl@0: { \ sl@0: WARN_PRINTF3(aLogMessage, &aKeyName, &aResult); \ sl@0: } sl@0: sl@0: #define GETSTRINGFROMCONFIGMANDATORY(aSectName, aKeyName, aResult, aLogMessage, aDataOk) \ sl@0: if ( !GetStringFromConfig(aSectName, aKeyName, aResult) ) \ sl@0: { \ sl@0: ERR_PRINTF2(aLogMessage, &aKeyName); \ sl@0: SetBlockResult(EFail); \ sl@0: aDataOk=EFalse; \ sl@0: } sl@0: sl@0: class CDataWrapperBase : public CDataWrapper sl@0: { sl@0: public: sl@0: class TEnumEntryTable sl@0: { sl@0: public: sl@0: const TDesC& iString; sl@0: TInt iValue; sl@0: }; sl@0: sl@0: public: sl@0: TBool GetBoolFromConfig(const TDesC& aSectName,const TDesC& aKeyName,TBool& aResult); sl@0: TBool GetIntFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt& aResult); sl@0: TBool GetStringFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TPtrC& aResult); sl@0: TBool GetHexFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt& aResult); sl@0: TBool GetUintFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TUint& aResult); sl@0: TBool GetArrayRectFromConfig(const TDesC& aSectName, const TDesC& aKeyName, RPointerArray& aResult); sl@0: TBool GetEnumFromConfig(const TDesC& aSectName, const TDesC& aKeyName, const TEnumEntryTable* aTable, TInt& aResult); sl@0: TBool KeyPress(); sl@0: void Timedelay(TInt aTimeoutInSecs); sl@0: virtual void InitialiseL(); sl@0: inline RFs& FileServer() { return iFs; } sl@0: inline CConsoleBase* GetConsoleL() { return(Console::NewL(KConsname,TSize(KConsFullScreen,KConsFullScreen)));} sl@0: sl@0: protected: sl@0: CDataWrapperBase(); sl@0: virtual ~CDataWrapperBase(); sl@0: sl@0: private: sl@0: TBool GetCommandStringParameterL(const TDesC& aSectName, const TDesC& aKeyName, TPtrC& aResult); sl@0: TBool KeyCheck(); sl@0: sl@0: private: sl@0: // Included ini files sl@0: RPointerArray iInclude; sl@0: RPointerArray iBuffer; sl@0: RFs iFs; sl@0: RTimer iTimer; sl@0: }; sl@0: sl@0: #endif // DATA_WRAPPER_BASE_H