--- /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
+