messagingfw/alwaysonline/AlwaysOnlineManager/inc/AOCenRepControl.h
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/alwaysonline/AlwaysOnlineManager/inc/AOCenRepControl.h	Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,196 @@
+/*
+* 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: AlwaysOnline server central repository controller
+*
+*/
+
+
+#ifndef CAOCENREPCONTROL_H
+#define CAOCENREPCONTROL_H
+
+// INCLUDES
+#include <e32base.h>
+
+#include "AlwaysOnlineManager.h"
+
+// CONSTANTS
+// MACROS
+// DATA TYPES
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+// CLASS DECLARATION
+
+
+/**
+* Utility class for always online to easily handle central repository.
+*
+* @since S60 3.1
+*/
+class CAOCenRepControl : public CBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Creates object from CAOCenRepControl and leaves it to cleanup stack
+        * @since S60 3.1
+        * @return, Constructed object
+        */
+        static CAOCenRepControl* NewLC( CAlwaysOnlineManager& aCallBack );
+
+        /**
+        * Create object from CAOCenRepControl
+        * @since S60 3.1
+        * @return, Constructed object
+        */
+        static CAOCenRepControl* NewL( CAlwaysOnlineManager& aCallBack );
+
+        /**
+        * Destructor
+        * @since S60 3.1
+        */
+        virtual ~CAOCenRepControl();
+
+    public: // New functions
+
+        /**
+        * Recreates CoreAppUi CenRep session and start notifiers.
+        * @since S60 3.0
+        */
+        void ReCreateCoreAppUiCenRepSessionL();
+            
+        /**
+        * Sets cenrep key.
+        * @since S60 3.1
+        * @param aRepository, cenrep repository
+        * @param aKeyId, key to set
+        * @param aValue, value
+        * @return TInt, result
+        */
+        TInt SetCenRepKey( 
+            const TUid& aRepository, 
+            const TUint32 aKeyId, 
+            TInt aValue );
+        
+        /**
+        * Gets cenrep key.
+        * @since S60 3.1
+        * @param aRepository, cenrep repository
+        * @param aKeyId key to get
+        * @param aValue, value to return
+        * @return TInt, result
+        */    
+        TInt GetCenRepKey( 
+            const TUid& aRepository, 
+            const TUint32 aKeyId, 
+            TInt& aValue );
+
+        /**
+        * Deletes cenrep key.
+        * @since S60 3.1
+        * @param aRepository, cenrep repository
+        * @param aKeyId, key to get
+        * @return TInt, result
+        */   
+        TInt DelCenRepKey(
+            const TUid& aRepository,
+            const TUint32 aKeyId );
+
+        /**
+        * Update the array, which contains disabled plugin's UIDs
+        * @param aDisabledPluginUidsArray, UIDs array
+        * @since S60 3.1
+        */
+        void UpdateDisabledPluginsUids( 
+            CArrayFixFlat<TUid>& aDisabledPluginUidsArray );
+
+        /**
+        * Adds or removes plugin's UID from cenrep and updates
+        * the total count of disabled plugins.
+        * @since S60 3.1
+        * @param const aPlugin, UID to add/remove
+        * @param aDisable, add or remove?
+        */
+        void SetPluginStatus( const TUid& aPlugin, TBool aDisable );
+        
+        /**
+        * Gets first free key from cenrep.
+        * @since S60 3.1
+        * @param aFreeKey, free cenrep key
+        * @return TBool, did it found?
+        */
+        TBool GetFirstFreeKey( TUint32& aFreeKey );
+        
+        /**
+        * Gets the key, which contains certain UID.
+        * @since S60 3.1
+        * @param aValue, value to search
+        * @param aKey, free cenrep key
+        * @return TBool, did it found?
+        */
+        TBool GetKeyWithValue( const TUid& aValue, TUint32& aKey );
+        
+        /**
+        * @since S60 3.1
+        * @param aIncrease, increase or decrease?
+        * @return TInt, result
+        */
+        TInt UpdateDisabledPluginsCount( TBool aIncrease );
+
+    public: // Functions from base classes
+
+    protected:  // Constructors
+
+        /**
+        * Default constructor for classCAOCenRepControl
+        * @since S60 3.1
+        * @return, Constructed object
+        */
+        CAOCenRepControl( CAlwaysOnlineManager& aCallBack );
+
+        /**
+        * Symbian 2-phase constructor
+        * @since S60 3.1
+        */
+        void ConstructL();
+
+    private:  // New functions
+
+        /**
+        * Creates CoreAppUi CenRep session and start notifiers.
+        * @since S60 3.0
+        */
+        void CreateCoreAppUiCenRepSessionL();
+        
+        /**
+        * Creates AoServer CenRep session.
+        * @since S60 3.1
+        */
+        void CreateAoServerCenRepSessionL();
+
+    private:  // Functions from base classes
+
+    private:    // Data
+        // Call back class for iCoreAppUiCenRepNotifier
+        CAlwaysOnlineManager&           iCallBack;
+        // Central Repository session for KCRUidCoreApplicationUIs
+        CRepository*                    iCoreAppUiCenRepSession;
+        // Central Repository session for KCRUidAOSettings
+        CRepository*                    iAoServerCenRepSession;
+        // Notifier to listen changes of offline state
+        CCenRepNotifyHandler*           iCoreAppUiCenRepNotifier;
+    };
+
+#endif //  CAOCENREPCONTROL_H
+
+// End of File