--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/btserviceutil/src/advancedevdiscovererimpl.cpp Fri May 14 16:01:46 2010 +0300
@@ -0,0 +1,180 @@
+/*
+* 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: class for searching BT devices
+*
+*/
+#include "advancedevdiscovererimpl.h"
+#include "basicdevdiscoverer.h"
+
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::CAdvanceDevDiscovererImpl
+// ----------------------------------------------------------
+//
+CAdvanceDevDiscovererImpl::CAdvanceDevDiscovererImpl(
+ CBtDevRepository& aDevRep,
+ MDevDiscoveryObserver& aObserver )
+ :iDevRep( aDevRep ), iObserver( aObserver )
+ {
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::ConstructL
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::ConstructL()
+ {
+ iBasicDiscoverer = CBasicDevDiscoverer::NewL( *this );
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::NewL
+// ----------------------------------------------------------
+//
+CAdvanceDevDiscovererImpl* CAdvanceDevDiscovererImpl::NewL(
+ CBtDevRepository& aDevRep,
+ MDevDiscoveryObserver& aObserver )
+ {
+ CAdvanceDevDiscovererImpl* self =
+ new (ELeave) CAdvanceDevDiscovererImpl( aDevRep, aObserver );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::
+// ----------------------------------------------------------
+//
+CAdvanceDevDiscovererImpl::~CAdvanceDevDiscovererImpl()
+ {
+ delete iBasicDiscoverer;
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::SetObserver
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::SetObserver( MDevDiscoveryObserver& aObserver )
+ {
+ iObserver = aObserver;
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::Cancel()
+ {
+ iBasicDiscoverer->Cancel();
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::DiscoverDeviceL(
+ CAdvanceDevDiscoverer::TDevDiscoveryFilter aFilter,
+ TBTMajorDeviceClass aDeviceClass )
+ {
+ iBasicDiscoverer->DiscoverDeviceL( aDeviceClass );
+ iFilter = aFilter;
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::DiscoverDeviceL
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::DiscoverDeviceL(
+ const RBTDevAddrArray& aPriorityList )
+ {
+ // to be implemented when BTUI requires this feature.
+ ( void ) aPriorityList;
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::HandleNextDiscoveryResult
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::HandleNextDiscoveryResultL(
+ const TInquirySockAddr& aAddr, const TDesC& aName )
+ {
+ TBool filtered = EFalse;
+ if ( iFilter )
+ {
+ // For filtering, we need to examine the properties of
+ // this device from repository.
+ const CBtDevExtension* devExt = iDevRep.Device( aAddr.BTAddr() );
+ // No filter is needed if this device is not in registry.
+ if ( devExt )
+ {
+ if ( iFilter & CAdvanceDevDiscoverer::ExcludeUserAwareBonded)
+ {
+ // client does not want to discover devices that have been
+ // bonded already.
+ if ( devExt->IsUserAwareBonded() )
+ {
+ filtered = ETrue;
+ }
+ }
+ }
+ }
+ if ( !filtered )
+ {
+ iObserver.HandleNextDiscoveryResultL( aAddr, aName );
+ }
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::HandleDiscoveryCompleted
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::HandleDiscoveryCompleted( TInt aErr )
+ {
+ iObserver.HandleDiscoveryCompleted( aErr );
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::RequestCompletedL
+// Inform caller for received device and issue next EIR/Name request
+// if the request was successful.
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::RequestCompletedL( CBtSimpleActive* aActive, TInt aStatus )
+ {
+ (void) aActive;
+ (void) aStatus;
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::CancelRequest
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::CancelRequest( TInt aId )
+ {
+ (void) aId;
+ }
+
+// ----------------------------------------------------------
+// CAdvanceDevDiscovererImpl::HandleError
+// ----------------------------------------------------------
+//
+void CAdvanceDevDiscovererImpl::HandleError( CBtSimpleActive* aActive, TInt aError )
+ {
+ (void) aActive;
+ (void) aError;
+ }
+
+// End of File