--- a/bluetoothengine/btui/devmodel/inc/btdevmodelbase.h Mon May 03 12:40:50 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,286 +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: Abstract base class for concete models.
-*
-*/
-
-
-#ifndef BTDEVMODELBASE_H
-#define BTDEVMODELBASE_H
-
-#include <btengdevman.h> // for MBTEngDevManObserver
-
-#include "btdevmodel.h"
-#include "btregistryobserver.h" // for MBTRegistryObserver
-
-/**
-* This is a abstract class providing basic common fucntions for derived classes.
-* It act as a mediator between UI applications and Bluetooth Engine Device Management API.
-*
-*@lib btdevmodel.dll
-*@since S60 V3.2
-*/
-NONSHARABLE_CLASS( CBTDevModelBase ): public CBase, public MBTEngDevManObserver, public MBTRegistryObserver
- {
-public: // Constructors and destructor
- /** destructor
- *@param none.
- *@return none.
- */
- virtual ~CBTDevModelBase();
-public:
-
- /** Checks if any of the devices shown in view have active bluetooth connection.
- * This baseclass does not support connections, so the answer is allways EFalse.
- *
- * NOTE: TBTUIViewsCommonUtils::IsAnyDeviceConnectedL will report also those devices
- * that are not part of particular view, such as paired devices.
- * CBTPairedModel::IsAnyDeviceConnected reports only connection from paired devices.
- *
- *@return ETrue, if one or more devices are connected. EFalse if no devices are connected.
- */
- TBool virtual IsAnyDeviceConnected();
- /**
- * Get device based on addr or index.
- * @param aDevice the TBTDevice holder. You have to set either the deviceAddress or the
- * or the device index. If you specify both the device address and the index then the address is used,
- * this includes those cases when there is no device corresponding the address.
- * @return KErrNone if ok.
- * KErrArgument, if neither index not address is filled.
- * KErrOverFlow if index is out of range. which means it is negative or the internal array does not have that
- * many items.
- * KErrNotFound if the given address does not exists, in the internal array.
- */
- TInt virtual GetDevice(TBTDevice& aDevice);
-
- /**
- * Change status of all devices on the list. This is used by Delete All operations in paired devices view
- * (EOpPair) and Blocked devices view(EOpUnblock)
- *
- * This creates multiple operations in the intergal queue that are all executed on by one.
- *
- * @param aOperation unpair/unblock
- * @return None.
- */
- void ChangeAllDevices(const TBTDeviceOp aOperation);
-
- /**
- * Change device status, add device, e.g. block, unpair,unblock etc.
- *
- * The operation is put to queue and executed when the prior operations
- * of the queue are finnished. Immeadiately if the queue is empty.
- *
- * @param aDevice. The device and the type of the change. If the address is empty, then the
- * device index means what device is to be used.
- * @return none
- */
- virtual void ChangeDeviceL(const TBTDevice& aDevice);
-
- /**
- * Change device status, add device, e.g. block, unpair,unblock etc.
- * This will check for leaves and make a callback, if leave occurs.
- *
- * The operation is put to queue and executed when the prior operations
- * of the queue are finnished. Immeadiately if the queue is empty.
- *
- * @param aDevice. The device and the type of the change. If the address is empty, then the
- * device index means what device is to be used.
- * @return none
- */
-
- virtual void ChangeDevice(const TBTDevice& aDevice);
-
- /**
- * Cancel connecting, pairing, modifying device in BTRegistry
- *
- * Cancels ongoing operation or operation from queue, if it has not been started yet.
- * Cancels it, if it is being executed. Used by Canceling Connecting and pairing operations.
- *
- * @param aDevice. The device and the type of the change that will be canceled.
- * If the address is empty, then the
- * device index means what device is to be used.
- * @return None.
- */
- virtual void CancelChange(const TBTDevice& aDevice);
-
- /** Creates and allocates TBTDevice representation of this device
- *@param aRegDevice the device to be converted,
- *@param aNameEntry contains the EIR data of the device if its data is valid
- *@return the TBTDevice representation of the same device. (Note the caller is responsible for deleting
- * the returned item.)
- */
- virtual TBTDevice* CreateDeviceL(const CBTDevice* aRegDevice,
- TNameEntry* aNameEntry);
-
- /** Checks if there are any ChangeDeviceCommands that are not finnished.
- *@return ETrue if the are one or more commands being executed or are in the execution queue.
- */
- virtual TBool DeviceChangeInProgress();
-
- /** This is used to make callback to iObserver, when a leave has been detected.
- *It will also clean up the partial operation.
- *
- *@param aErr the leave error code
- *@param aDevice The device and operation that cause the leave.
- * If this is inserted in the queue, it is deleted from there.
- * If the leave occurred before inserting it to execution queue
- * (not common), then it will not deleted from there.
- *@return none.
- */
- virtual void HandleLeave(TInt aErr,const TBTDevice* aDevice );
-
-protected:
- /**
- * Change device status, add device, e.g. block, unpair,unblock etc.
- *
- * This is the operation that is used to to execute the operation queued by ChangeDevice.
- *
- * @param aDevice. The device and the type of the change. If the address is empty, then the
- * device index means what device is to be used.
- * @return KerrNone or system wide error code.
- */
- virtual TInt DoChangeDeviceL(const TBTDevice& aDevice);
-
- /**
- * Cancel ongoing connecting, pairing, modifying device in BTRegistry
- *
- * This is the operation that is used to cancel ongoing operation.
- *
- * @param aDevice. The device and the type of the change that will be canceled.
- * If the address is empty, then the
- * device index means what device is to be used.
- * @return None.
- */
- virtual void DoCancelChangeL(const TBTDevice& aDevice);
-
- /** This function recounts the indexes of iDeviceArray.
- *@return none.
- */
- void RenumberDeviceArray();
-
- /** Constructor
- * @param aObserver The observer will receive information about command completes and
- * changes in the devices.
- * @param aOrder The order the devices are sorted. Default order is added by CBTDevMan, so
- * this class can assume this parameter to be used. This class is responsible for deleting this parameter on
- * its destructor.
- */
- CBTDevModelBase(MBTDeviceObserver* aObserver,
- TBTDeviceSortOrder* aOrder );
-
- /** Get the index for a device specified by bluetooth device address.
- *
- *@param aAddr the address of the searched device or KNullAddres.
- *@param aIndexIfNullAddress, if this parameter is defined this function
- *returns this index instead of KErrNotFound, it the device has nullAddress.
- *@return index of the address. If the given address is KNullAddress then returns aIndexIfNullAddress or KErrNotFound if one is not specified by called.
- *This will allways return KErrNone if the given address is not a KNullAddress and is not found.
- */
- TInt GetIndexByAddress(const TBTDevAddr aAddr,TInt aIndexIfNullAddress=KErrNotFound);
-
- /** Adds the TBTDevice representation of this device to iDeviceArray, if
- * this device is of that type (paired/blocked) that this model supports.
- * If the device is not that type, it will not be added.
- *
- * NOTE: This function is not guaranteed againt duplicates, so multiple
- * additions of the same device will lead to multiple copies of it.
- *
- * Subclasses can also implement their version of this function to add information
- * to the device objects, such as connection information.
- *
- * @param aRegDevice the device to be added (if not filtered).
- * @param aNameEntry contains the EIR data of the device if its data is valid
- * @aOperation the operation that this device will contain when added.
- */
- void AddDeviceL(const CBTDevice* aRegDevice,
- TNameEntry* aNameEntry,
- const TBTDeviceOp aOperation=EOpNone);
-
- /** Replaces iDeviceArray contents with the given devices
- *@param aDeviceArray the devices that will be added to internal structures.
- */
- virtual void CreateDevicesL(const CBTDeviceArray* aDeviceArray);
-
- /** Adds the given device to internal structures of this class
- * using AddDeviceL, if the device is such that it should not be listed by this
- * class, then it is not added.
- *
- * Implementing is used to filter out devices that are not handled by particular view.
- *
- * @param aNameEntry contains the EIR data of the device if its data is valid
- */
- virtual void HandleNewDeviceL(const CBTDevice* aRegDevice,
- TNameEntry* aNameEntry) = 0;
-
- /** Sends refresh of list of shown devices to listener.
- *
- * @param aErr If this is not KErrNone, then this function
- * will send refresh to the listener. Allways send, if not specified.
- * If this funtion is not KEerrNone, then the funtion does nothing.
- * @param aSelectedItem. If this is specified, then select this item.
- * if not specified uses the same item that the listener used to have active.
- */
- virtual void SendRefreshIfNoError(TInt aErr=KErrNone,TInt aSelectedItem = KErrNotSupported );
-
-protected:
-
- /** This callback is used to to notify this call from completed changed from iDevMan.
- * Inherited from MBTEngDevManObserver.
- *
- * This funtion will trap any leave if they may occur and report them as errors in the
- * corresponfing device change operarion.
- */
- void HandleDevManComplete(TInt aErr);
-
- /** Inherited from BTEng's MBTEngDevManObserver, and implemented as empty,
- * because we do ask devicelists directly from iDevman, but trough iRegistryObserver->Refresh()
- */
- void HandleGetDevicesComplete(TInt aErr, CBTDeviceArray* aDeviceArray);
-
- /** This callback is used by iRegistryObserver to notify device changes, that
- * originate both from changes of the BTRegistry as well as refreshes requested
- * by this class.
- * @aDeviceArray the devices that the registry observer gets.
- */
- void RegistryChangedL(const CBTDeviceArray* aDeviceArray);
-
- /** Check if there is allready one or more devices with this name.
- *@return ETrue if there is.
- */
- TBool IsNameExisting(const TDesC& aName);
-
- /** Executes the next one in the queue, if any.
- * Leaves are trapped by this class and send as failed commands to iObserver
- * using HandleLeave.
- *@param none.
- *@return none.
- */
- void HandleQueue();
-
-protected: // Data
- MBTDeviceObserver* iObserver; // the listener of the completed commands and registry changes.
- CBTEngDevMan* iDevMan; // This is used to change the devices.
- TBTDeviceSortOrder* iSortOrder; // The order the devices are sorted to.
- RDeviceArray iDeviceArray; // The list of current devices.
- CBTRegistryObserver* iRegistryObserver; // This takes care of sending the devicelist to us each time
- // something may have been changes.
- TBTRegistrySearch iSearchPattern; // the pattern iRegistrySearch uses in retrieving devicelist.
- // NOTE: HandleDeviceL is used to filter the results.
- TBool iIsChangeAll;
- TBTDevice* iDevice; // the currently changed device, if any
- RDeviceArray iQueue; // The queue of commands to be executed
- };
-
-#endif // BT_DEV_MODEL_BASE_H
-