devicediscoverer.h

来自「symbian系统下」· C头文件 代码 · 共 156 行

H
156
字号
/*
* ============================================================================
*  Name     : CDeviceDiscoverer from DeviceDiscoverer.h
*  Part of  : BluetoothPMPExample
*  Created  : 06.06.2006 by Forum Nokia
*  Description:
*     Declares device discoverer for application
*  Version  :
*  Copyright: Nokia Corporation
* ============================================================================
*/

#ifndef DEVICEDISCOVERER_H
#define DEVICEDISCOVERER_H

// INCLUDES
#include <e32base.h>
#include <aknviewappui.h> 

#include <coecntrl.h>
#include <es_sock.h>
#include <btdevice.h>
#include <bt_sock.h>
#include <btsdp.h>

#include "Common.h"


class MDeviceDiscoObserver
{

public:
/*!
 * HandleDeviceDiscoveryCompleteL()
 *
 * discussion Observer interface for handling device discovery complete event.
 */	
	virtual void HandleDeviceDiscoveryCompleteL()=0;
	
/*!
 * DeviceDiscoveredL()
 * 
 * discussion nofify observer that a new device was found.
 */	
	virtual void DeviceDiscoveredL(const TDeviceData& aDevice)=0;
};


class CDeviceDiscoverer : public CActive
{
public:
     
/*!
 * NewL()
 * 
 * discussion Create new CDeviceDiscoverer object
 * return a pointer to the created instance of CDeviceDiscoverer
 */
	static CDeviceDiscoverer* NewL(RSocketServ& aSocketServ,
		MDeviceDiscoObserver& aObserver);
		
/*!
 * NewLC()
 * 
 */
	static CDeviceDiscoverer* NewLC(RSocketServ& aSocketServ,
		MDeviceDiscoObserver& aObserver);

/*!
 * ~CDeviceDiscoverer()
 *
 * discussion Destroy the object and release all memory objects
 */
	~CDeviceDiscoverer();

/*!
 * DiscoverDevicesL()
 *
 * discussion Discovers remote bluetooth devices within range.
 *
 * param aDevDataList device data list where the found devices will be placed.
 */
	void DiscoverDevicesL(TDeviceDataList* aDevDataList);

/*!
 * HasDevices()
 *
 * discussion any devices discovered?
 *
 * return true if any devices were discovered.
 */
	TBool HasDevices();

/*!
 * HandleDeviceDiscoveryCompleteL()
 *
 * discussion Handles the device discovery completed event.  the handling 
 * request will be passed onto handling observer.
 */
	void HandleDeviceDiscoveryCompleteL();

protected:

/*!
 * RunL()
 *
 * discussion Handle the active objects request completion.
 */
	void RunL();

/*!
 * DoCancel()
 *
 * discussion Cancels the outstanding request on active object.
 */
	void DoCancel();


private:

/*!
 * CDeviceDiscoverer()
 *
 * discussion Perform the first phase of two phase construction 
 *
 * param aSocketServ reference to socket server
 */
	CDeviceDiscoverer(RSocketServ& aSocketServ,
		MDeviceDiscoObserver& aObserver);

/*!
 * ConstructL()
 *
 */
	void ConstructL();

private: //data

	// socket server handle
    RSocketServ& iSocketServ;
	// number of devices discovered
	TInt iDiscoveredDeviceCount;

	// observer reference
	MDeviceDiscoObserver& iObserver;
	// device data list, to be filled by resolver results
	TDeviceDataList *iDevDataList;
	// host resolver
	RHostResolver iResolver;
	TInquirySockAddr iAddr;
	TNameEntry iEntry;

};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?