diff -r 2e1adbfc62af -r ee64f059b8e1 internetradio2.0/uiinc/irpropertyobserver.h --- a/internetradio2.0/uiinc/irpropertyobserver.h Mon May 03 12:25:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,226 +0,0 @@ -/* -* Copyright (c) 2006-2007 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: ?Description -* -*/ - - -#ifndef CIRPROPERTYOBSERVER_H -#define CIRPROPERTYOBSERVER_H - -#include -#include - -/** - * Defines text property with maximum size, that is RProperty:: - * KKMaxPropertySize bytes. - */ -typedef TBuf8 TIRTextProperty; - -/** - * MIRPropertyChangeObserver - * - * Abstract interface for handling property change events. - */ -class MIRPropertyChangeObserver -{ - -public: - - /** - * This is a callback function which is called when a property value of - * type int is changed. - * - * @param aCategory UID of Publish And Subscribe category - * @param aKey subkey to specify the category event; to be used with - * Publish And Subscribe - * - * @param aValue the new value - */ - virtual void HandlePropertyChangeL( - const TUid& aCategory, - const TUint aKey, - const TInt aValue ) = 0; - - /** - * This is a callback function which is called when a property value of - * type text is changed. - * - * @param aCategory UID of Publish And Subscribe category - * @param aKey subkey to specify the category event; to be used with - * Publish And Subscribe - * @param aValue the new value - **/ - /*lint -save -e1053*/ - virtual void HandlePropertyChangeL( - const TUid& aCategory, - const TUint aKey, - const TIRTextProperty& aValue ) = 0; - /*lint -restore*/ - - /** - * This is a callback function which is called when a P&S components - * returns an error - * - * @param aCategory UID of Publish And Subscribe category - * @param aKey subkey to specify the category event - * @param aError an error code - */ - virtual void HandlePropertyChangeErrorL( - const TUid& aCategory, - const TUint aKey, - TInt aError) = 0; - -}; - - - -/** - * Observer class that observes changes of Property values and propogates - * them further. - * The class defines a handle to a property, a single data value representing - * an item of state information. - * - */ - class CIRPropertyObserver : public CActive - { - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aObserver a reference to the observer interface implementer - * @param aCategory UID of Publish And Subscribe category - * @param aKey subkey to specify the category event; to be used with - * Publish And Subscribe - * @param aPropertyType property type to observe - */ - IMPORT_C static CIRPropertyObserver* NewL( - MIRPropertyChangeObserver& aObserver, - const TUid& aCategory, - const TUint aKey, - const RProperty::TType aPropertyType); - - /** - * Destructor. - */ - ~CIRPropertyObserver(); - - /** - * Updates an int value reference in correspondence with the current - * Property value - * - * @param aValue handle to a value which will be updated - **/ - IMPORT_C void GetValue( TInt& aValue ) const; - - /** - * Updates a text value reference in correspondence with the current - * Property value - * - * @param aValue handle to a value which will be updated - */ - /*lint -save -e1053*/ - IMPORT_C void GetValue( TIRTextProperty& aValue ) const; - /*lint -restore*/ - - /** - *Subscription of listened P&S keys - */ - void Subscribe(); - - -private: - - /** - * C++ default constructor overload. - * Two-phased constructor. - * - * @param aObserver a reference to the observer interface implementer - * @param aCategory UID of Publish And Subscribe category - * @param aKey subkey to specify the category event; to be used with - * Publish And Subscribe - * @param aPropertyType property type to observe - */ - CIRPropertyObserver( - MIRPropertyChangeObserver& aObserver, - const TUid& aCategory, - const TUint aKey, - const RProperty::TType aPropertyType); - - /** - * By default Symbian 2nd phase constructor is private. - **/ - void ConstructL(); - -protected: - - // from base class Cactive - /** - * From CActive - * - * @see CActive::RunL() - */ - void RunL(); - - /** - * From CActive, - * - * @see CActive::DoCancel() - */ - void DoCancel(); - - -private: - - /** - * Value of a subscribed category property of type int. - */ - TInt iValueInt; - - /** - * Value of a subscribed category property of type text. - */ - TIRTextProperty iValueText; - - /** - * Handle to Publish And Subscribe component - */ - RProperty iProperty; - - /** - * Observer to be notified when particular Property value has changed - */ - MIRPropertyChangeObserver& iObserver; - - /** - * UID of Publish And Subscribe category - */ - TUid iCategory; - - /** - * Subkey to be used with Publish And Subscribe - */ - TUint iKey; - - /** - * Type of the observed property. - */ - RProperty::TType iPropertyType; - - }; - -#endif // CPROPERTYOBSERVER_H -