messagingappbase/ncnlist/inc/CNcnCRRepositoryHandler.h
branchRCL_3
changeset 60 7fdbb852d323
parent 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/ncnlist/inc/CNcnCRRepositoryHandler.h	Wed Sep 01 12:31:54 2010 +0100
@@ -0,0 +1,108 @@
+/*
+* 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:   Defines class CNcnCRRepositoryHandler.
+*
+*/
+
+
+
+#ifndef NCNCRREPOSITORYHANDLER_H
+#define NCNCRREPOSITORYHANDLER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <cenrepnotifyhandler.h>
+
+// FORWARD DECLARATIONS
+class MNcnCRRepositoryHandlerCallback;
+
+// CLASS DECLARATION
+
+/**
+*  Observes the value of the CenRep key changes withing a repository.
+*/
+class CNcnCRRepositoryHandler :
+    public CBase,
+    public MCenRepNotifyHandlerCallback
+    {
+    private:  // Constructors and destructor
+
+        /**
+        * C++ default constructor.
+        * @param aRepository The repository to handle.
+        * @param aKeyType Key type.
+        * @param aId Id of the key.
+        */
+        CNcnCRRepositoryHandler(
+            MNcnCRRepositoryHandlerCallback& aCallback,
+            CRepository& aRepository,
+            CCenRepNotifyHandler::TCenRepKeyType aKeyType,
+            TUint32 aId );
+
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CNcnCRRepositoryHandler* NewL(
+            MNcnCRRepositoryHandlerCallback& aCallback,
+            CRepository& aRepository,
+            CCenRepNotifyHandler::TCenRepKeyType aKeyType,
+            TUint32 aId );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CNcnCRRepositoryHandler();
+
+    public: // From MCenRepNotifyHandlerCallback
+        void HandleNotifyInt(TUint32 aId, TInt aNewValue);
+        void HandleNotifyReal(TUint32 aId, TReal aNewValue);    
+        void HandleNotifyString(TUint32 aId, const TDesC16& aNewValue);
+        void HandleNotifyBinary(TUint32 aId, const TDesC8& aNewValue);
+        void HandleNotifyGeneric(TUint32 aId);
+        void HandleNotifyError(TUint32 aId, TInt aError, CCenRepNotifyHandler* aHandler);
+
+    public:  // Other public methods
+        /**
+         * Starts listening the repository for specified key changes.
+         */
+        void StartListeningL();
+
+        /**
+         * Stops the listening.
+         */
+        void StopListening();
+
+    protected: // Data
+
+        // Callback reference
+        MNcnCRRepositoryHandlerCallback& iCallback;
+
+        // CenRep repository reference
+        CRepository& iRepository;
+        
+        // Notify handler for repository key, owned
+        CCenRepNotifyHandler* iNotifyHandler;
+        
+        // Key type
+        CCenRepNotifyHandler::TCenRepKeyType iKeyType;
+        
+        // Id of the key
+        TUint32 iId;
+    };
+
+#endif    // NCNCRREPOSITORYHANDLER_H
+
+// End of File