diff -r 000000000000 -r 72b543305e3a email/imum/DomainApi/inc/ImumDaSettingsDataCollectionImpl.h --- /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 +#include +#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 */