email/imum/DomainApi/inc/ImumDaSettingsDataCollectionImpl.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/DomainApi/inc/ImumDaSettingsDataCollectionImpl.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,163 @@
+/*
+* 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 "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:  ImumDaSettingsDataCollectionImpl.h
+ *
+*/
+
+
+#ifndef C_IMUMDASETTINGSDATACOLLECTIONIMPL_H
+#define C_IMUMDASETTINGSDATACOLLECTIONIMPL_H
+
+#include <e32base.h>
+#include <msvstd.h>
+#include "ImumDaSettingsDataCollection.h"
+
+class CImumInternalApi;
+class MImumInSettingsDataCollection;
+
+NONSHARABLE_CLASS( CImumDaSettingsDataCollectionImpl ) :
+    public MImumDaSettingsDataCollection
+    {
+    public: // Constructors and destructor
+
+        /**
+         * Create object from CImumDaSettingsDataCollectionImpl
+         *
+         * @since S60 3.2
+         * @param aInDataCollection, Reference to internal api data collection.
+         * @return, Constructed object
+         */
+        static CImumDaSettingsDataCollectionImpl* NewL(
+            MImumInSettingsDataCollection& aInDataCollection );
+
+        /**
+         * Creates object from CImumDaSettingsDataCollectionImpl and
+         * leaves it to cleanup stack
+         *
+         * @since S60 3.2
+         * @param aInDataCollection, Reference to internal api data collection.
+         * @return, Constructed object
+         */
+        static CImumDaSettingsDataCollectionImpl* NewLC(
+            MImumInSettingsDataCollection& aInDataCollection );
+
+        /**
+         * Destructor
+         * @since S60 3.2
+         */
+        virtual ~CImumDaSettingsDataCollectionImpl();
+
+    private: // Constructors
+
+        /**
+         * Default constructor for CImumDaSettingsDataCollectionImpl
+         *
+         * @since S60 3.2
+         * @param aInDataCollection, Reference to internal api data collection.
+         * @return, Constructed object
+         */
+        CImumDaSettingsDataCollectionImpl(
+            MImumInSettingsDataCollection& aInDataCollection );
+
+        /**
+         * Symbian 2-phase constructor
+         * @since S60 3.2
+         */
+        void ConstructL();
+
+    public:  //From class MImumDaSettingsDataCollection
+
+        /**
+         * Sets the given value/text to the key
+         *
+         * @since S60 v3.2
+         * @param aAttributeKey, Id of the setting key
+         * @param aValue/aText, Data to be stored
+         * @return EImumDaNoError, when successful
+         */
+        TInt SetAttr( const TUint aAttributeKey, const TInt aValue );
+        TInt SetAttr( const TUint aAttributeKey, const TInt64 aValue );
+        TInt SetAttr( const TUint aAttributeKey, const TMsvId aValue );
+        TInt SetAttr( const TUint aAttributeKey, const TDesC& aText );
+        TInt SetAttr( const TUint aAttributeKey, const TDesC8& aText );
+
+        /**
+         * Gets the required value/text from the key
+         *
+         * @since S60 v3.2
+         * @param aAttributeKey, Value of the setting key
+         * @param aValue/aText, Data to be stored
+         * @return EImumDaNoError, when successful
+         */
+        TInt GetAttr( const TUint aAttributeKey, TInt& aValue ) const;
+        TInt GetAttr( const TUint aAttributeKey, TInt64& aValue ) const;
+        TInt GetAttr( const TUint aAttributeKey, TMsvId& aId ) const;
+        TInt GetAttr( const TUint aAttributeKey, TDes& aText ) const;
+        TInt GetAttr( const TUint aAttributeKey, TDes8& aText ) const;
+
+        /**
+         * Compares the content of the datas
+         *
+         * @since S60 v3.2
+         * @param aSettingsData
+         * @return Result of the comparasion
+         */
+        TBool operator!=(
+            const MImumDaSettingsDataCollection& aSettingsDataCollection )
+                const;
+
+        TBool operator==(
+            const MImumDaSettingsDataCollection& aSettingsDataCollection )
+                const;
+
+        /**
+         * Resets the default value of the single key
+         *
+         * @since S60 v3.2
+         * @param aAttributeKey, Id of the setting key
+         * @return EImumDaNoError, when successful
+         */
+        void Reset( const TUint aAttributeKey );
+
+        /**
+         * Copies the content of the setting data
+         *
+         * @since S60 v3.2
+         * @param aSettingsData Collection data object to be copied
+         * @return EImumDaNoError, when successful
+         */
+        TInt Copy(
+            const MImumDaSettingsDataCollection& aSettingsDataCollection );
+
+    public:
+        /**
+         *
+         * @since S60 3.2
+         * @param aAttributeKey, Attribute key to be tested.
+         * @param aReadOperation, Chooses how attribute is tested. read(1) or write(0).
+         * @return
+         */
+        static TInt IsLegalKey(
+            const TUint aAttributeKey,
+            TBool aReadOperation );
+
+    private:
+
+        //Reference to internal api data collection
+        MImumInSettingsDataCollection& iInDataCollection;
+    };
+
+
+
+#endif /* C_IMUMDASETTINGSDATACOLLECTIONIMPL_H */