webengine/widgetengine/inc/Preferences.h
changeset 0 dd21522fd290
child 13 10e98eab6f85
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/widgetengine/inc/Preferences.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2006 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:  This class represents the Widget Preferences object
+*
+*/
+
+#ifndef __WIDGETENGINEPREFERENCES
+#define __WIDGETENGINEPREFERENCES
+
+//  INCLUDES
+#include <e32base.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATION
+
+// CLASS DECLARATION
+template <class K, class V> class RPtrHashMap;
+
+/**
+*  PrefElement
+*
+*  @lib widgetengine.dll
+*  @since 3.2
+*/
+class PrefElement : public CBase
+{
+public :
+    /**
+    * Constructor.
+    */
+    PrefElement();
+    
+    /**
+    * Destructor.
+    */
+    ~PrefElement();
+    
+    /**
+    * setValueL
+    * Set value for a preference
+    * @param const TDesC& aValue - The value to be set
+    * @return none
+    */
+    void setValueL( const TDesC& aValue );
+    
+    /**
+    * setValueSize
+    * Set length of value 
+    * @param const TInt aSize - The length to be set
+    * @return none
+    */
+    void setValueSize( const TInt aSize ) {
+        m_valuesize = aSize;
+    }
+    
+    /**
+    * setCleanFileFlag
+    * @param TBool aCleanFileFlag
+    * @return none
+    */
+    void setCleanFileFlag( const TBool aCleanFileFlag ) {
+        m_cleanFileFlag = aCleanFileFlag;
+    }
+
+    /**
+    * GetValue
+    * Get value for a preference
+    * @param none
+    * @return const TDesC& - value for the preference
+    */      
+    const TDesC& value() const {
+        if ( m_value ) 
+            return *m_value;
+        else 
+            return KNullDesC();
+    }
+        
+    /**
+    * GetValueSize
+    * Get length of value
+    * @param none
+    * @return TInt - length of value for the preference
+    */      
+    TInt valueSize() const { return m_valuesize; }
+        
+private :
+    HBufC*  m_value;     // value of the preference: if size > MAX, it's the file name which stores the value
+    TInt    m_valuesize; // length of the value
+    TBool   m_cleanFileFlag;  // flag for deleteing individual preference dat file
+};
+
+
+/**
+*  WidgetPreferences
+*
+*  @lib widgetengine.dll
+*  @since 3.1
+*/
+class WidgetPreferences
+{
+
+public:        
+    WidgetPreferences();
+    ~WidgetPreferences();
+
+public:
+    /**
+    * 
+    */
+    void setBasePathL(const TDesC& aValue);
+
+    /**
+    * 
+    */
+    void setWidgetId(TInt aValue);
+
+    /**
+    * 
+    */
+    void setWidgetBundleId(const TDesC& aValue);
+    
+    /**
+    * 
+    */
+    TDesC& getWidgetBundleId();
+
+    /**
+    * Load preferences from persistent storage
+    */
+    void loadL();
+    
+    /**
+    * Save preferences to persistent storage
+    */
+    void saveL();
+    
+    /**
+    * Get preference for a particular key
+    */
+    TInt preferenceL( const TDesC& akey, TPtrC& avalue);
+
+    
+    /**
+    * Set preference for a particular key
+    */
+    void setPreferenceL( const TDesC& akey, const TDesC& avalue);   
+
+    /**
+    * Remove preference for a particular key
+    */
+    void removePreferenceL( const TDesC& akey, const TDesC& avalue);   
+    
+
+private:
+    RPtrHashMap<TDesC,PrefElement>* m_preferences;                
+    
+    TInt   m_widgetid;
+    HBufC* m_widgetbundleid;
+    HBufC* m_basepath;
+    HBufC* m_filepath;
+
+};
+    
+    
+#endif