examples/ForumNokia/ThreadAndActiveObjectsEx/inc/btdiscoverer.h

00001 /*
00002  * Copyright © 2008 Nokia Corporation.
00003  */
00004 
00005 
00006 #ifndef __BT_DISCOVERER_H__
00007 #define __BT_DISCOVERER_H__
00008 
00009 //INCLUDES
00010 #include <e32base.h>
00011 #include <btsdp.h> 
00012 #include <e32std.h>
00013 #include <btextnotifiers.h> // TBTDeviceResponseParamsPckg
00014 #include <bt_sock.h>
00015 #include <BTDevice.h>
00016 #include <es_sock.h> //RHostResolver
00017 #include <badesca.h>
00018 
00019 
00020 const TInt KBTDeviceLength = 40;
00021 const TInt KBTDeviceAddress = 40; 
00022 
00023 // FORWARD DECLARATIONS
00024 class CSharedIntermediator;
00025 
00026 // CLASS DECLARATION
00027 
00031 class CBTDiscoverer: public CActive
00032         {
00033 public:
00034         
00042     static CBTDiscoverer* NewL(CSharedIntermediator* aSMediator);
00043     
00047     static CBTDiscoverer* NewLC(CSharedIntermediator* aSMediator);
00048 
00054         ~CBTDiscoverer();
00055         
00056    // From CActive
00057    void RunL();
00058    TInt RunError(TInt aError);
00059    void DoCancel();
00060 
00066    void StartDiscoveringDevicesL();
00067 
00073    void RefreshDevices();
00074     
00081    CArrayPtrFlat< HBufC >* GetNames();
00082 
00089    CArrayPtrFlat< HBufC >* GetDeviceAddress();
00090 
00091 private: // Basic two-phase Symbian OS constructors
00092 
00098         CBTDiscoverer(CSharedIntermediator* aSMediator);
00099 
00103         void ConstructL();
00104         
00105 private: //functions
00106 
00113         void PushListL(TNameEntry& aNameEntry); 
00114 
00121         void TransformSockAddressL(TInquirySockAddr& aInquirySockAddr);
00122         
00123 private: // member data
00124 
00125         // Socket addresses
00126         RArray<TInquirySockAddr> iInqSockAddrArray; 
00127 
00128         // BT addresses in format XX-XX-XX-XX-XX-XX  
00129         CArrayPtrFlat< HBufC >* iDeviceAddress;
00130 
00131         // Device names
00132         CArrayPtrFlat< HBufC >* iDeviceNames;
00133         
00134         // Handle to the socket server 
00135         RSocketServ iSocketServer; 
00136 
00137         // Provides an interface to host name resolution services
00138         RHostResolver iHostResolver; 
00139 
00140         // Socket address class used for remote device inquiries
00141         TInquirySockAddr iSockAddr; 
00142 
00143         // Contains the results of name queries.
00144         TNameEntry iNameEntry; 
00145 
00146         // Shared class that transmits data between main thread and thread one
00147         CSharedIntermediator* iSMediator;
00148         };
00149 
00150 #endif // __BT_DISCOVERER_H__ 

Generated by  doxygen 1.6.2