--- a/bluetoothengine/btserviceutil/inc/btdevrepositoryimpl.h Tue Aug 31 15:25:10 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-/*
-* Copyright (c) 2010 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: The repository of remote devices from BT registry
-*
-*/
-
-#ifndef BTDEVICEREPOSITORYIMPL_H
-#define BTDEVICEREPOSITORYIMPL_H
-
-#include <bttypes.h>
-#include <bt_sock.h>
-#include <btmanclient.h>
-#include <e32property.h>
-#include <btengconnman.h>
-#include <btservices/btsimpleactive.h>
-#include <btservices/btdevextension.h>
-
-class MBtDevRepositoryObserver;
-
-/**
- * Class CBtDevRepositoryImpl
- *
- * This class keep a storage of remote device information.
- *
- */
-NONSHARABLE_CLASS( CBtDevRepositoryImpl ) :
- public CBase,
- public MBtSimpleActiveObserver,
- public MBTEngConnObserver
- {
-public:
-
- /**
- * Two-phase constructor
- */
- static CBtDevRepositoryImpl* NewL();
-
- /**
- * Destructor
- */
- ~CBtDevRepositoryImpl();
-
- /**
- * Add an observer to this reposity for receivng repository update
- * events.
- * @param aObserver the observer to be added.
- */
- void AddObserverL( MBtDevRepositoryObserver* aObserver );
-
- /**
- * Remove an observer from this repository.
- * @param aObserver the observer to be removed.
- */
- void RemoveObserver( MBtDevRepositoryObserver* aObserver );
-
- /**
- * Tells if this repository has finished the initialization.
- * Initialization completion means the repository has retieved all
- * Bluetooth devices from BT registry, and it is subscribing to
- * registry update events.
- */
- TBool IsInitialized() const;
-
- /**
- * Gets all devices in this repository.
- * @return the device list.
- */
- const RDevExtensionArray& AllDevices() const;
-
- /**
- * Get a specific device by the given address.
- * @param aAddr the address of the device to be retrieved
- * @return the device pointer, NULL if the device is unavailable.
- */
- const CBtDevExtension* Device( const TBTDevAddr& aAddr ) const;
-
- /**
- * Forces the repository to initialize its data store.
- * At Initialization completion, corresponding callback will be invoked.
- * Initialization completion means the repository has retieved all
- * Bluetooth devices from BT registry, and it is subscribing to
- * registry update events.
- *
- */
- void ReInitialize();
-
- /**
- * Returns the service (limited to services managed in bteng scope)
- * level connection status of the specified device.
- *
- * @param aAddr the address of the device
- * @return one of TBTEngConnectionStatus enums
- */
- //TBTEngConnectionStatus IsDeviceConnected( const TBTDevAddr& aAddr );
-
-private:
-
- // from MBtSimpleActiveObserver
-
- /**
- * Callback from RunL() to notify that an outstanding request has completed.
- *
- * @since Symbian^4
- * @param aActive Pointer to the active object that completed.
- * @param aStatus The status of the completed request.
- */
- void RequestCompletedL( CBtSimpleActive* aActive, TInt aStatus );
-
- /**
- * Callback from Docancel() for handling cancelation of an outstanding request.
- *
- * @since Symbian^4
- * @param aId The ID that identifies the outstanding request.
- */
- void CancelRequest( TInt aRequestId );
-
- /**
- * Callback from RunError() to notify that an error has occurred in RunL.
- *
- * @since Symbian^4
- * @param aActive Pointer to the active object that completed.
- * @param aError The error occurred in RunL.
- */
- void HandleError( CBtSimpleActive* aActive, TInt aError );
-
- // From MBTEngConnObserver
-
- /**
- * Indicates to the caller that a service-level connection has completed.
- * This function is called for both incoming and outgoing connections.
- * This function is also called when an outgoing connection request fails,
- * e.g. with error code KErrCouldNotConnect.
- * When this function is called, new commands can be issued to the
- * CBTEngConnMan API immediately.
- * @param aAddr The address of the remote device.
- * @param aErr Status information of the connection. KErrNone if the
- * connection succeeded, otherwise the error code with
- * which the outgoing connection failed. KErrAlreadyExists
- * is returned if there already is an existing connection
- * for the selected profile(s), or otherwise e.g.
- * KErrCouldNotConnect or KErrDisconnected for indicating
- * connection problems.
- * @param aConflicts If there already is a connection for the selected
- * profile(s) of an outgoing connection request (the
- * selection is performed by BTEng), then this array
- * contains the bluetooth device addresses of the
- * remote devices for those connections.
- */
- void ConnectComplete( TBTDevAddr& aAddr, TInt aErr,
- RBTDevAddrArray* aConflicts = NULL );
-
- /**
- * Indicates to the caller that a service-level connection has disconnected.
- * When this function is called, new commands can be issued to the
- * CBTEngConnMan API immediately.
- *
- * @param aAddr The address of the remote device.
- * @param aErr The error code with which the disconnection occured.
- * KErrNone for a normal disconnection,
- * or e.g. KErrDisconnected if the connection was lost.
- */
- void DisconnectComplete( TBTDevAddr& aAddr, TInt aErr );
-
-private:
-
- /**
- * C++ default constructor
- */
- CBtDevRepositoryImpl();
-
- /**
- * Symbian 2nd-phase constructor
- */
- void ConstructL();
-
- /**
- * Creates a registry view which shall contain all remote devices.
- */
- void CreateRemoteDeviceView();
-
- /**
- * retrieves remote devices from registry.
- */
- void GetRemoteDevicesL();
-
- /**
- * handles the completion of paired device view creation
- */
- void HandleCreateRemoteDeviceViewCompletedL( TInt aStatus);
-
- /**
- * handles the completion of getting paired devices
- */
- void HandleGetRemoteDevicesCompletedL( TInt aStatus );
-
- /**
- * Copy the remote devices to internal array storage.
- */
- void UpdateRemoteDeviceRepositoryL();
-
-private:
-
- /**
- * The observers
- * do not own them.
- */
- RPointerArray<MBtDevRepositoryObserver> iObservers;
-
- /**
- * Registry sub session for remote device db.
- * not own
- */
- RBTRegistry iBTRegistry;
-
- // own.
- RBTRegServ iBTRegServ;
-
- /**
- * AO for registry operations
- * own.
- */
- CBtSimpleActive* iRegistryActive;
-
- /**
- * the counter of not handled registry events.
- */
- TInt iNotHandledRegEventCounter;
-
- /**
- * temporary instance to retrieve paired devices.
- * own.
- */
- CBTRegistryResponse* iRegRespRemoteDevices;
-
- /**
- * Property containing the BT registry change monitoring key
- * own.
- */
- RProperty iBtRegistryKey;
-
- /**
- * AO for subscribing registry PubSub key
- * own.
- */
- CBtSimpleActive* iRegistryKeyActive;
-
- /**
- * For connection status
- */
- CBTEngConnMan* iBtengConn;
-
- /**
- * contains the list of all devices.
- * own.
- */
- RDevExtensionArray iDevices;
-
- TInt iInitialized;
-
- };
-
-#endif /*BTDEVICEREPOSITORYIMPL_H*/