diff -r 0ba996a9b75d -r 613943a21004 bluetoothengine/btui/devmodel/inc/btregistryobserver.h --- a/bluetoothengine/btui/devmodel/inc/btregistryobserver.h Thu Aug 19 10:05:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +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: Registry observer is listening to registry changes and -* and reporting the changed devices to the listener. -* -*/ - -#ifndef BTREGISTRYOBSERVER_H -#define BTREGISTRYOBSERVER_H - -#include -#include -#include -#include - -/** This class will inform the listener about the new BTregistry status -*after registry change events. -* -* This class will listen to events about registry changes and inform -* the listener about the latest registry status. The listener can -* also ask the status using refresh. This is usefull for for -* for example retrieval of initial lists of devices. -* -*@lib btdevmodel.dll -*@since S60 V3.2 -*/ -NONSHARABLE_CLASS(MBTRegistryObserver) - { -public: - /** The aDeviceArray constents are deleted after this - * call returns. If storage is wanted the array and its contents - * must be copied by implementor. - */ - virtual void RegistryChangedL(const CBTDeviceArray* aDeviceArray) = 0; - }; - -NONSHARABLE_CLASS(CBTRegistryObserver) : public CActive, public MBTEngDevManObserver - { -public: - /** NewL - *@param aObserver The class that is listening to registry changes - *@param aPattern The pattern to be used to retrieve the changed objects. - */ - static CBTRegistryObserver* NewL(MBTRegistryObserver* aObserver, - const TBTRegistrySearch aPattern); - - /** Destructor*/ - virtual ~CBTRegistryObserver(); - - /** Start listening to registry changes. - * - *Calling this while registry observer is running is silently ignored. - */ - void StartIfNotRunning(); - - /* Registry observer will retrieve list of devices in the backround - * and send it to the listener, when one is retrieved. - */ - void Refresh(); - - /** Check if this is running. - *@return ETrue if not listening to registry changes. - */ - inline TBool IsStopped() {return iIsStopped;} - - /** This will stop listening and cancel any retrieval of devicelists, - * if any. - * @param none. - * @return none. - */ - void Cancel(); -private: - /* Constructor that may not leave. - *@param aObserver The class that is listening to registry changes - *@param aPattern The pattern to be used to retrieve the changed objects. - */ - CBTRegistryObserver(MBTRegistryObserver* aObserver, const TBTRegistrySearch aPattern); - /** 2nd phase constructor. Called by NewL only. - * @param none. - * @return none. - */ - void ConstructL(); - - /** This is called when registry changes occur, but not when deviceLists are - * retrieved, since HandleGetDevicesComplete is called then. - * - * If one or more registry events occur during devicelist retrieval, there - * will be one new devicelist retrieval after the current retrieval is done. - * - * @param none. - * @return none. - */ - void RunL(); - - /** This will clear iRegDeviceArray and delete its contents. - * @param none. - * @return none. - */ - void DeleteAllocatedDevices(); - - - /** This will cancel listening. To be called by Cancel only. - * @param none. - * @return none. - */ - void DoCancel(); - - /** This is called when devicelist have been read from BtDevMan - * @param aErr KErrNone or the accurred error. - * @param aDeviceArray the devices that have been retrieved. - * @return none. - */ - void HandleGetDevicesComplete(TInt aErr, CBTDeviceArray* aDeviceArray); - -private: - MBTRegistryObserver* iObserver; // the class listening to this class - CBTDeviceArray* iRegDeviceArray; // this is used for retrieving devices - TBTRegistrySearch iSearchPattern; // the search used to retrieve devices - // NOTE: this class does not filter the results, - // but the one listening to this (if filtering is done). - RProperty iProperty; - CBTEngDevMan* iDevMan; // the object that is used to retrieve the device lists. - TBool iIsStopped; // is this runining. - TBool iAnotherEventPending; // Has there been one or more changes during this retrieval. - // if this is true then HandleGetDevices will start a new search. - }; - -#endif