diff -r 000000000000 -r 96612d01cf9f mediasettings/mediasettingsengine/inc/MPSettingsRopConfigParser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediasettings/mediasettingsengine/inc/MPSettingsRopConfigParser.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,208 @@ +/* +* Copyright (c) 2002 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: Config descriptor parser for ROP specific settings.* +*/ + + + +// Version : %version: 2 % + + + + +#ifndef MPROPCONFIGPARSER_H +#define MPROPCONFIGPARSER_H + +// INCLUDES +#include + +// DATA TYPES +enum TMPRopConfType + { + EMPRopConfTypeInteger = 1, + EMPRopConfTypeString = 2, + EMPRopConfTypeIntArray = 3 + }; + +// CLASS DECLARATION + +/** +* CMPRopSettingItem +* Setting item class, for storing item specific data. +* +* +* @lib MPSettROPModel.dll +* @since 2.0 +*/ +class CMPRopSettingItem : public CBase + { + public: + + /** + * Two-phased constructor. + */ + static CMPRopSettingItem* NewLC(TInt aId, const TDesC& aKey); + + /** + * Destructor. + */ + virtual ~CMPRopSettingItem(); + + private: + + /** + * C++ default constructor. + */ + CMPRopSettingItem(TInt aId); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(const TDesC& aKey); + + private: // Data + HBufC8* iKey; + TInt iId; + + TBool iValueChanged; + TInt iError; + TInt iIntValue; + HBufC* iStringValue; + RArray iIntArray; + TMPRopConfType iType; + + private: // Friend classes + friend class CMPSettingsModelForROP; + friend class CMPSettingsRopConfigParser; + }; + + +/** +* CMPSettingsRopConfigParser +* Config descriptor parser for ROP specific settings. +* +* @lib MPSettROPModel.dll +* @since 2.0 +*/ +class CMPSettingsRopConfigParser : public CBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CMPSettingsRopConfigParser* NewL(); + + /** + * Destructor. + */ + virtual ~CMPSettingsRopConfigParser(); + + public: // New functions + + /** + * Parses config string and places parsed setting items to item array. + * @since 2.0 + * @param aConfigString Configuration string + * @param aItemArray Item array + * @return Descriptor containing config string header. + */ + HBufC8* ParseConfigStringL(const TDesC8& aConfigString, const CArrayPtr* aItemArray); + + /** + * Creates configuration string from item's data in the item array. + * @since 2.0 + * @param aItemArray Item array + * @param aConfigHeader Configuration string's header. + * @return Descriptor containing configuration string. + */ + HBufC8* CreateConfigStringL(const CArrayPtr* aItemArray, const TDesC8& aConfigHeader); + + private: + + /** + * C++ default constructor. + */ + CMPSettingsRopConfigParser(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: + + /** + * Parses config header from config string. + */ + HBufC8* ParseConfigHeaderL(); + + /** + * Returns descriptor containing next config entry. + */ + HBufC8* NextConfigEntryL(TInt& aError); + + /** + * Populates entry array from configuration string. + */ + void PopulateEntryArrayFromConfigStringL(); + + /** + * Populates entry array from item array. + */ + void PopulateEntryArrayFromItemArrayL(); + + /** + * Creates config entry from setting item. + */ + HBufC8* CreateConfigEntryL(CMPRopSettingItem* aItem); + + /** + * Creates configuration string from entry array. + */ + HBufC8* CreateConfigStringFromEntryArrayL(); + + /** + * Parses next entry from config string. + */ + TInt GetNextEntry(TPtrC8& aEntry); + + /** + * Parses setting item data from all config entries. + */ + void ParseSettingsBufferL(); + + /** + * Parses setting item data from a config entry for predefined setting items. + */ + TInt GetConfigDataL(const TDesC8& aKey, TPtrC8& aValue, TMPRopConfType& aType); + + /** + * Parses value string from a config entry. + */ + TPtrC8 ValueStringPtr(const TDesC8& aValue, TInt& aError); + + private: // Data + + CArrayPtr* iEntries; + const CArrayPtr* iItemArray; + + HBufC8* iConfigHeader; + HBufC8* iTmpBuf; + TPtrC8 iBufferPtr; + }; + +#endif // MPROPCONFIGPARSER_H + +// End of File