vtengines/videoteleng/Inc/Base/CVtEngCRObserverItem.h
changeset 0 ed9695c8bcbe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vtengines/videoteleng/Inc/Base/CVtEngCRObserverItem.h	Mon Nov 23 14:47:47 2009 +0200
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2004-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:  Central repository observer class.
+*
+*/
+
+
+#ifndef CVTENGCROBSITEM_H
+#define CVTENGCROBSITEM_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+#include "cenrepnotifyhandler.h"
+
+// FORWARD DECLARATIONS
+class MVtEngCRSettingObserver;
+
+// CLASS DECLARATION
+
+/**
+*  Central repository listener for video telephony.
+*
+*  @lib videoteleng.lib
+*  @since Series 60 3.0
+*/
+NONSHARABLE_CLASS( CVtEngCRObserverItem ) : public CBase,
+    public MCenRepNotifyHandlerCallback
+    {
+    public:  // Constructors and destructor.
+        
+        /**
+        * Two-phased constructor.
+        * @param aObserver the real observer to notify
+        * @param aUid UID for this listener
+        * @param aKey ID for this listener
+        * @param aType type of information interested in
+        * @return this CR observer
+        */
+        static CVtEngCRObserverItem* NewL( 
+            MVtEngCRSettingObserver* aObserver,
+            TUid aUid, TUint32 aKey, 
+            CCenRepNotifyHandler::TCenRepKeyType aType );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CVtEngCRObserverItem();
+
+    public: // From MCenRepNotifyHandlerCallback.
+
+        /**
+        * Callback to notify changed integer setting.
+        * @param aId changed id
+        * @param aNewValue 
+        */
+        void HandleNotifyInt( TUint32 aId, TInt aNewValue );
+
+        /**
+        * Callback to notify changed real setting.
+        * @param aId changed id
+        * @param aNewValue 
+        */
+        void HandleNotifyReal( TUint32 aId, TReal aNewValue );
+
+        /**
+        * Callback to notify changed string setting.
+        * @param aId changed id
+        * @param aNewValue 
+        */
+        void HandleNotifyString( TUint32 aId, const TDesC16& aNewValue );
+
+        /**
+        * Callback to notify changed binary setting.
+        * @param aId changed id
+        * @param aNewValue 
+        */
+        void HandleNotifyBinary( TUint32 aId, const TDesC8& aNewValue );
+
+        /**
+        * Callback to notify changed setting.
+        * @param aId changed id
+        */
+        void HandleNotifyGeneric( TUint32 aId);
+
+        /**
+        * Callback to notify of an occurred error.
+        * @param aId changed id
+        * @param aError 
+        * @param aHandler which handler
+        */
+        void HandleNotifyError( TUint32 aId, TInt aError, 
+            CCenRepNotifyHandler* aHandler );
+        
+        public: // New functions.
+        
+        /**
+        * Checks if this one matches given UID and key.
+        * @param aUID UID to use in comparison 
+        * @param aKey key to use in comparison
+        * @return ETrue if match
+        */
+        TBool Offer( const TUid aUid, const TUint32 aKey ) const;
+        
+        /**
+        * Checks if this one matches given UID.
+        * @param aUID UID to use in comparison 
+        * @return ETrue if match
+        */
+        TBool Offer( const TUid aUid ) const;
+        
+        /**
+        * Checks if this one matches given key.
+        * @param aKey key to use in comparison 
+        * @return ETrue if match
+        */
+        TBool Offer( const TUint32 aKey ) const;
+        
+        /**
+        * Returns UID of this handler.
+        * @return UID
+        */
+        TUid Uid() const;
+
+        /**
+        * Returns key of this handler.
+        * @return key
+        */
+        TUint32 Key() const;
+        
+        /**
+        * Returns notifier of this handler.
+        * @return notifier
+        */
+        CCenRepNotifyHandler* Notifier() const;
+        
+        /**
+        * Returns type of this handler.
+        * @return type
+        */
+        CCenRepNotifyHandler::TCenRepKeyType Type() const;
+        
+        /**
+        * Returns observer of this handler.
+        * @return observer
+        */
+        MVtEngCRSettingObserver* Observer() const;
+        
+        /**
+        * Sets CenRep notifier
+        * @param notifier to set.
+        */
+        void SetCenRepNotifier( CCenRepNotifyHandler* aNotifier );
+        
+        
+    private: // Constructor.
+
+        /**
+        * C++ default constructor.
+        * @param aObserver the real observer to notify
+        * @param aUid UID for this listener
+        * @param aKey ID for this listener
+        * @param aType type of information interested in
+        */
+        CVtEngCRObserverItem( MVtEngCRSettingObserver* Observer,
+            TUid aUid, TUint32 aKey, 
+            CCenRepNotifyHandler::TCenRepKeyType aType );
+
+    private:    // Data
+
+        // Callback for notifications.
+        MVtEngCRSettingObserver* iObserver;
+
+        // UID for this item.
+        TUid                     iUid;
+
+        // Key for this item.
+        TUint32                  iKey;
+
+        // Type of listener.
+        CCenRepNotifyHandler::TCenRepKeyType iType;
+
+        // Central repository notifier.
+        CCenRepNotifyHandler*   iNotifier;
+};
+#endif      // CVTENGCROBSITEM_H
+            
+// End of File