uiservicetabsettings/inc/cvimpstsettings.h
branchRCL_3
changeset 29 9a48e301e94b
parent 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetabsettings/inc/cvimpstsettings.h	Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,143 @@
+/*
+* Copyright (c) 2008 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:  settings container.
+*
+*/
+
+#ifndef __CVIMPSTSETTINGS_H
+#define __CVIMPSTSETTINGS_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <s32strm.h>
+
+
+class CVIMPSTSettingsKeyValuePairs;
+ 
+/*
+ * - Key-value pairs.
+ *   Key-value pair mechanism for generic Settings extensions.
+ * 
+ * @since 3.0
+ */
+
+class CVIMPSTSettings : public CBase
+    {
+
+    public:  // Constructors and destructor
+
+        /**
+         * Two-phased constructor.
+         *
+         * @since 3.0
+         */
+        static CVIMPSTSettings* NewL();
+
+
+        /**
+         * Two-phased constructor.
+         *
+         * @since 3.0
+         */
+        static CVIMPSTSettings* NewLC();
+
+
+        /**
+         * Destructor.
+         */
+        virtual ~CVIMPSTSettings();
+
+
+    private:  // Constructors
+
+        /**
+         * C++ default constructor.
+         */
+        CVIMPSTSettings();
+
+
+    public: //SAP extension
+
+        /**
+         * Key-value pair setters.
+         *
+         * Stores  arbitrary data for given keyword.
+         * Key-value pairs are stored to flat data structure
+         * in side the target SAP. Different data types
+         * may not share same key name.
+         * Keyword may not contain string "||". Also, the
+         * maximum length for key+value is
+         * NCentralRepositoryConstants::KMaxUnicodeStringLength-5
+         *
+         * @since 3.0
+         * @param aKey Keyword to use to identify the value.
+         * @param aValue Descriptor / integer value to store.
+         * @return KErrNone: Storing the key value was succesful.
+         *         KErrGeneral: Different data type was previously
+         *         associated with given key. Old value will remain
+         *         KErrNoMemory: Out of memory. Old value will remain
+         *		   KErrTooBig: Key+value are too big for storing
+         */
+        
+        TInt SetOpaqueDesC16( const TDesC& aKey, const TDesC16& aValue );
+
+
+        /**
+         * Key-value pair getters.
+         *
+         * Gets data previously stored for given keyword.
+         *
+         * @since 3.0
+         * @param aKey Keyword to identify the value.
+         * @param aValue Pointer descriptor / integer where the value is get.
+         *        Pointer descriptor is put to point to requested data.
+         *        Data is owned by the SAP container and stays valid
+         *        untill the container object is destroyed or new
+         *        value for key is assigned.
+         * @return KErrNone: Retrieving the key value was succesful.
+         *         KErrNotFound: No value associated with given key.
+         *         KErrGeneral: Different data type associated with key.
+         */
+
+        TInt GetOpaqueDesC16( const TDesC& aKey, TPtrC16& aValue ) const;
+
+
+        /**
+         * Key-value pair cleanup.
+         *
+         * Deletes previously stored key-value pair.
+         *
+         * @since 3.0
+         * @param aKey Keyword to identify the key-value pair.
+         * @return KErrNone: Key-value pair removed.
+         *         KErrNotFound: Key-value pair not found.
+         */
+        TInt DeleteOpaque( const TDesC& aKey );
+        
+        /**
+         * return keyvalue pairs 
+         */
+        CVIMPSTSettingsKeyValuePairs& KeyValuePairs();
+
+
+    private:    // Data
+       
+        CVIMPSTSettingsKeyValuePairs*  iKeyValuePairs; ///< OWN: key value pairs
+
+    };
+
+#endif      // __CVIMPSTSETTINGS_H
+
+//  End of File
+