bluetooth/btexample/testui/BTTextNotifiers/src/btpandevicescanner.cpp
changeset 0 29b1cd4cb562
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetooth/btexample/testui/BTTextNotifiers/src/btpandevicescanner.cpp	Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,114 @@
+// Copyright (c) 2004-2009 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:
+//
+
+#include "BTTextNotifiers.h"
+#include <bluetooth/logger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "TextNotifiers");
+#endif
+
+CBTPanDeviceSelectionNotifierDeviceDiscoverer* CBTPanDeviceSelectionNotifierDeviceDiscoverer::NewL(MBTPanDeviceDiscoveryNotify& aNotify)
+/**
+
+*/
+	{
+	LOG_STATIC_FUNC
+	CBTPanDeviceSelectionNotifierDeviceDiscoverer* self = new(ELeave) CBTPanDeviceSelectionNotifierDeviceDiscoverer(aNotify);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CBTPanDeviceSelectionNotifierDeviceDiscoverer::CBTPanDeviceSelectionNotifierDeviceDiscoverer(MBTPanDeviceDiscoveryNotify& aNotify) :
+	CActive(EPriorityStandard), iNotify(aNotify)
+/**
+Set the inquiry address to the general inquiry access code, and ask for names as well
+*/
+	{
+	LOG_FUNC
+	CActiveScheduler::Add(this);
+	iInquiryAddr.SetIAC(KGIAC);
+	iInquiryAddr.SetAction(KHostResInquiry + KHostResName);	// Default: Both
+	}
+
+void CBTPanDeviceSelectionNotifierDeviceDiscoverer::ConstructL()
+/**
+Connect to the socket server and open the host resolver
+*/
+	{
+	LOG_FUNC
+	LEAVEIFERRORL(iSockServ.Connect());
+	LEAVEIFERRORL(iHostResolver.Open(iSockServ, KBTAddrFamily, KBTLinkManager));
+	}
+
+CBTPanDeviceSelectionNotifierDeviceDiscoverer::~CBTPanDeviceSelectionNotifierDeviceDiscoverer()
+/**
+Free up resources
+*/
+	{
+	LOG_FUNC
+	iHostResolver.Close();
+	iSockServ.Close();
+	}
+
+void CBTPanDeviceSelectionNotifierDeviceDiscoverer::StartDeviceDiscovery()
+/**
+
+*/
+	{
+	LOG_FUNC
+	iHostResolver.GetByAddress(iInquiryAddr, iNameEntry, iStatus);
+	SetActive();
+	}
+
+void CBTPanDeviceSelectionNotifierDeviceDiscoverer::RunL()
+/**
+Tell the notify class about the new device or error
+*/
+	{
+	LOG_FUNC
+	LOG1(_L("\tiStatus = %d"), iStatus.Int());
+
+	if(iStatus==KErrNone)
+		{
+		TRAPD(err, iNotify.NewDeviceFoundL(iNameEntry()));
+		if(err)
+			{
+			iNotify.DeviceSearchComplete(err);
+			return;
+			}
+		iHostResolver.Next(iNameEntry, iStatus);
+		SetActive();
+		}
+	else
+		{
+		iNotify.DeviceSearchComplete(iStatus.Int());
+		}
+	}
+	
+void CBTPanDeviceSelectionNotifierDeviceDiscoverer::DoCancel()
+/**
+
+*/
+	{
+	LOG_FUNC
+	iHostResolver.Cancel();
+	}
+
+
+
+