email/imum/Utils/Inc/IMASCenRepControl.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Utils/Inc/IMASCenRepControl.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,304 @@
+/*
+* 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:  IMASCenRepControl.h
+*
+*/
+
+
+#ifndef CIMASCENREPCONTROL_H
+#define CIMASCENREPCONTROL_H
+
+// INCLUDES
+#include <e32base.h>
+
+#include "IMASAccountControl.h"
+
+// CONSTANTS
+// MACROS
+// DATA TYPES
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+class CRepository;
+
+// CLASS DECLARATION
+
+/**
+*
+*  @lib
+*  @since S60 3.0
+*/
+class CIMASCenRepControl : public CBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Creates object from CIMASCenRepControl and leaves it to cleanup stack
+        * @since S60 3.0
+        * @return, Constructed object
+        */
+        static CIMASCenRepControl* NewLC();
+
+        /**
+        * Create object from CIMASCenRepControl
+        * @since S60 3.0
+        * @return, Constructed object
+        */
+        static CIMASCenRepControl* NewL();
+
+        /**
+        * Destructor
+        * @since S60 3.0
+        */
+        virtual ~CIMASCenRepControl();
+
+    public: // New functions
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetActiveCentralRepository(
+            CRepository& aRepository );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetActiveBaseKey(
+            const TUint32 aAccountId,
+            const TUid& aProtocol );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetActiveBaseKey(
+            const TUint32 aExtendedAccountId );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetActiveDefaultDataKey();
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void CreateToAccountL(
+            const TUint32 aSetting,
+            const TDesC& aString );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void CreateToAccountL(
+            const TUint32 aSetting,
+            const TInt aValue );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void CreateToAccountL(
+            const TInt aSettingHigh,
+            const TInt aSettingLow,
+            const TInt64 aValue );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void DeleteFromAccountL(
+            const TInt aSetting ) const;
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void DeleteFromAccountL(
+            const TInt aSettingHigh,
+            const TInt aSettingLow ) const;
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetToAccountL(
+            const TUint32 aSetting,
+            const TDesC& aString );
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetToAccountL(
+            const TUint32 aSetting,
+            const TInt aValue );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetToAccountL(
+            const TInt aSettingHigh,
+            const TInt aSettingLow,
+            const TInt64 aSetting );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        TInt64 GetFromAccountL(
+            const TInt aSettingHigh,
+            const TInt aSettingLow ) const;
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        TInt GetFromAccountL(
+            const TInt aSetting ) const;
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void GetTextFromAccountL(
+            TDes& aText,
+            const TInt aSetting ) const;
+
+        /**
+        * Get 8-bit text from central repository
+        * @since S60 3.2
+        * @param cent-rep key for value, reference for modifiable descriptor
+        * @return system wide error code
+        */
+
+        void GetTextFromAccountL(
+            TDes8& aText,
+            const TInt aSetting ) const;
+
+        // non-leaving versions of GetFromAccounts
+
+        /**
+        * Get one 64-bit value from central repository
+        * @since S60 3.2
+        * @param lower and higher part keys of 64-bit values,
+        *        reference to TInt64 value
+        * @return system wide error code
+        */
+
+        TInt GetFromAccount(
+            const TInt aSettingHigh,
+            const TInt aSettingLow,
+            TInt64& aSettingValue ) const;
+
+        /**
+        * Get one 32-bit value from central repository
+        * @since S60 3.2
+        * @param cent-rep key for value, reference to value
+        * @return system wide error code
+        */
+        TInt GetFromAccount(
+            const TInt aSetting, TInt& aSettingValue ) const;
+
+        /**
+        * Get text from central repository
+        * @since S60 3.2
+        * @param cent-rep key for value, reference for modifiable descriptor
+        * @return system wide error code
+        */
+        TInt GetTextFromAccount(
+            TDes& aText,
+            const TInt aSetting ) const;
+
+        /**
+        * Get 8-bit text from central repository
+        * @since S60 3.2
+        * @param cent-rep key for value, reference for modifiable descriptor
+        * @return system wide error code
+        */
+        TInt GetTextFromAccount(
+            TDes8& aText,
+            const TInt aSetting ) const;
+
+        /**
+        * Get one 32-bit value from central repository. Creates the settings
+        * with default value if it does not exist. Will leave with generic 
+        * Symbian error code if creation fails or unexpected error is 
+        * encountered when reading setting.
+        * 
+        * @param aSetting CenRep key for value.
+        * @param aDefaultValue Default value for settings.
+        * @return Value from CenRep.
+        */
+        TInt GetFromAccountOrCreateL(
+            const TUint32 aSetting, 
+            TInt aDefaultValue );
+
+        /**
+        * Get one 64-bit value from central repository. Creates the settings
+        * with default value if it does not exist. Will leave with generic 
+        * Symbian error code if creation fails or unexpected error is 
+        * encountered when reading setting.
+        * 
+        * @param aSettingHigh CenRep key for high 32bit value.
+        * @param aSettingLow  CenRep key for low 32bit value.
+        * @param aDefaultValue Default value for settings.
+        * @return Value from CenRep.
+        */
+        TInt64 GetFromAccountOrCreateL(
+            const TUint32 aSettingHigh,
+            const TUint32 aSettingLow,
+            TInt64 aDefaultValue );
+        
+    public: // Functions from base classes
+
+    protected:  // Constructors
+
+        /**
+        * Default constructor for classCIMASCenRepControl
+        * @since S60 3.0
+        * @return, Constructed object
+        */
+        CIMASCenRepControl();
+
+        /**
+        * Symbian 2-phase constructor
+        * @since S60 3.0
+        */
+        void ConstructL();
+
+    protected:  // New virtual functions
+    protected:  // New functions
+    protected:  // Functions from base classes
+
+    private:  // New virtual functions
+    private:  // New functions
+    private:  // Functions from base classes
+
+    public:     // Data
+    protected:  // Data
+    private:    // Data
+
+        // Pointer to active Central Repository
+        CRepository* iCenRep;
+        // Currently active account
+        TUint32 iBaseKey;
+    };
+
+#endif //  CIMASCENREPCONTROL_H
+
+// End of File