mediasettings/mediasettingsengine/inc/MPSettingsRopConfigParser.h
changeset 0 96612d01cf9f
--- /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    <e32base.h>
+
+// 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<TInt> 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<CMPRopSettingItem>* 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<CMPRopSettingItem>* 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<HBufC8>* iEntries;
+        const CArrayPtr<CMPRopSettingItem>* iItemArray;
+
+        HBufC8* iConfigHeader;
+        HBufC8* iTmpBuf;
+        TPtrC8 iBufferPtr;    
+    };
+
+#endif      // MPROPCONFIGPARSER_H   
+            
+// End of File