wvsettings20/IMPSSrc/CIMPSSAPKeyValuePairs.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvsettings20/IMPSSrc/CIMPSSAPKeyValuePairs.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2004 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:  Container for individual key-value pairs.
+*
+*/
+
+#ifndef __CIMPSSAPKEYVALUEPAIRS_H
+#define __CIMPSSAPKEYVALUEPAIRS_H
+
+//  INCLUDES
+#include "MIMPSSapObject.h"
+#include "CIMPSSAPKeyValuePair.h"
+
+#include <e32base.h>
+#include <s32strm.h>
+
+
+// FORWARD DECLARATIONS
+class CIMPSSAPLookupKeyValuePair;
+
+
+// CLASS DECLARATION
+/**
+ * Container for individual key-value pairs.
+ *
+ * @since 3.0
+ **/
+NONSHARABLE_CLASS( CIMPSSAPKeyValuePairs ): public CBase, public MIMPSSapObject
+    {
+public:  // Constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     *
+     * @since 3.0
+     */
+    static CIMPSSAPKeyValuePairs* NewL();
+
+
+    /**
+     * Destructor.
+     */
+    virtual ~CIMPSSAPKeyValuePairs();
+
+
+private:  // Constructors
+
+
+    /**
+     * C++ default constructor.
+     */
+    CIMPSSAPKeyValuePairs();
+
+    /**
+     * Symbian OS constructor.
+     */
+    void ConstructL();
+
+
+
+public: //Generic object interface from MIMPSSapObject
+
+
+    TIMPSSapObjectID ObjectID() const;
+    TInt ObjectVersion() const;
+    void ExternalizeVersionDataL( TInt aVersion, RWriteStream& aStream ) const;
+    void InternalizeVersionDataL( TInt aVersion, RReadStream& aStream );
+    TInt DataSize() const;
+    void Reset();
+
+
+public: // Key value access
+
+
+    /**
+     * Key-value setters.
+     *
+     * Different methods to support integer type and
+     * narrow and wide descriptors.
+     *
+     * @since 3.0
+     * @param aKey The key to use identify the value.
+     * @param aValue The value to assign for keyword.
+     * @return Error code. One of following:
+     * KErrNone: Value assigned/updated succesfully.
+     * KErrGeneral: Different data type already assigned for given key.
+     * KErrNoMemory: No memory to allocate the new value.
+     *               Original value for key remains if assigning
+     *               value fails,
+     * KErrTooBig: Key and value are too big for storing. Original value
+     *			   remains.
+     *
+     */
+    TInt SetValueInt( const TDesC& aKey, TInt aValue );
+    TInt SetValueDesC8( const TDesC& aKey, const TDesC8& aValue );
+    TInt SetValueDesC16( const TDesC& aKey, const TDesC16& aValue );
+
+
+    /**
+     * Key-value getters.
+     *
+     * Different methods to support integer type and
+     * narrow and wide descriptors.
+     *
+     * @since 3.0
+     * @param aKey The key to use identify the value.
+     * @param aValue The value to get. Given aValue isn't
+     * changed if reading fails,
+     * @return Error code. One of following:
+     * KErrNone: Value read succesfully.
+     * KErrNotFound: No value yet assigned.
+     * KErrGeneral: Different data type assigned for given key.
+     */
+    TInt GetValueInt( const TDesC& aKey, TInt& aValue );
+    TInt GetValueDesC8( const TDesC& aKey, TPtrC8& aValue );
+    TInt GetValueDesC16( const TDesC& aKey, TPtrC16& aValue );
+
+
+    /**
+     * Key value remove.
+     *
+     * @since 3.0
+     * @param aKey The key to remove.
+     * @return Error code. One of following:
+     * KErrNone: Key value removed succesfully.
+     * KErrNotFound: Key value not found.
+     */
+    TInt DeletePair( const TDesC& aKey );
+
+    /**
+     * Return Value-pair array.
+     *
+     * @since 3.0
+     * @return Array of value-pairs:
+     */
+    const RPointerArray< CIMPSSAPKeyValuePair >& Pairs() const;
+    RPointerArray< CIMPSSAPKeyValuePair >& Pairs();
+
+
+private:    // Data
+
+    mutable CIMPSSAPLookupKeyValuePair*   iLookupKey;  //OWN: Lookup pair
+
+    RPointerArray< CIMPSSAPKeyValuePair > iPairs;      //OWN: Pairs
+    };
+
+#endif      // __CIMPSSAPKEYVALUEPAIRS_H
+
+
+//  End of File
+
+
+