localconnectivityservice/obexsendservices/obexservicesendutils/src/BTServiceStarter.cpp
equal
deleted
inserted
replaced
71 void CBTServiceStarter::ConstructL() |
71 void CBTServiceStarter::ConstructL() |
72 { |
72 { |
73 FLOG(_L("[BTSU]\t CBTServiceStarter::ConstructL()")); |
73 FLOG(_L("[BTSU]\t CBTServiceStarter::ConstructL()")); |
74 iDevice = CBTDevice::NewL(); |
74 iDevice = CBTDevice::NewL(); |
75 iDialog = CObexUtilsDialog::NewL( this ); |
75 iDialog = CObexUtilsDialog::NewL( this ); |
|
76 iDelayedDestroyer = CBTServiceDelayedDestroyer::NewL(CActive::EPriorityStandard); |
76 FeatureManager::InitializeLibL(); |
77 FeatureManager::InitializeLibL(); |
77 iFeatureManagerInitialized = ETrue; |
78 iFeatureManagerInitialized = ETrue; |
78 FLOG(_L("[BTSU]\t CBTServiceStarter::ConstructL() completed")); |
79 FLOG(_L("[BTSU]\t CBTServiceStarter::ConstructL() completed")); |
79 } |
80 } |
80 |
81 |
107 delete iDevice; |
108 delete iDevice; |
108 |
109 |
109 delete iController; |
110 delete iController; |
110 delete iBTEngDiscovery; |
111 delete iBTEngDiscovery; |
111 delete iDialog; |
112 delete iDialog; |
112 |
113 delete iDelayedDestroyer; |
|
114 |
113 if(iWaiter && iWaiter->IsStarted() ) |
115 if(iWaiter && iWaiter->IsStarted() ) |
114 { |
116 { |
115 iWaiter->AsyncStop(); |
117 iWaiter->AsyncStop(); |
116 } |
118 } |
117 delete iBTEngSettings; |
119 delete iBTEngSettings; |
711 const RSdpResultArray& aAttr, |
713 const RSdpResultArray& aAttr, |
712 TInt aErr ) |
714 TInt aErr ) |
713 { |
715 { |
714 FLOG(_L("[BTSU]\t CBTServiceStarter::ServiceAttributeSearchComplete()")); |
716 FLOG(_L("[BTSU]\t CBTServiceStarter::ServiceAttributeSearchComplete()")); |
715 TInt err = KErrNone; |
717 TInt err = KErrNone; |
716 if (aErr==KErrEof && aAttr.Count()>0 ) |
718 if ((aErr==KErrEof || aErr==KErrNone) && aAttr.Count()>0 ) |
717 { |
719 { |
718 RSdpResultArray results=aAttr; |
720 RSdpResultArray results=aAttr; |
719 iBTEngDiscovery->ParseRfcommChannel(results,iClientChannel); |
721 iBTEngDiscovery->ParseRfcommChannel(results,iClientChannel); |
720 |
722 |
721 iBTEngDiscovery->CancelRemoteSdpQuery(); |
723 iBTEngDiscovery->CancelRemoteSdpQuery(); |
780 iSendToBIPOnlyDevice = ETrue; |
782 iSendToBIPOnlyDevice = ETrue; |
781 iBTEngDiscovery->RemoteProtocolChannelQuery(iDevice->BDAddr(),TUUID(KBTServiceImagingResponder)); |
783 iBTEngDiscovery->RemoteProtocolChannelQuery(iDevice->BDAddr(),TUUID(KBTServiceImagingResponder)); |
782 iState = EBTSStarterFindingBIP; |
784 iState = EBTSStarterFindingBIP; |
783 iTriedOPP = ETrue; |
785 iTriedOPP = ETrue; |
784 } |
786 } |
|
787 else if (aErr==KErrNone && aAttr.Count()==0) |
|
788 { |
|
789 //This isn't KErrEoF so we aren't done yet, wait for future matches |
|
790 } |
785 else |
791 else |
786 { |
792 { |
787 delete iBTEngDiscovery; |
793 // Set destroyer AO active (destroys CBTEngDiscovery/CBTEngSdpQuery classes). This is done |
|
794 // to ensure that CBTEngDiscovery/CBTEngSdpQuery classes have finished all their activities, |
|
795 // callbacks etc.. Destructing it self is handled in CBTServiceDelayedDestroyer's RunL. |
|
796 iDelayedDestroyer->SetDestructPointer(iBTEngDiscovery); |
|
797 iDelayedDestroyer->GoActive(); |
|
798 // Set iBTEngDiscovery pointer to zero. Pointer doesn't exist CBTServiceStarter point of view anymore. |
788 iBTEngDiscovery = NULL; |
799 iBTEngDiscovery = NULL; |
789 StopTransfer(EBTSConnectingFailed); |
800 StopTransfer(EBTSConnectingFailed); |
790 } |
801 } |
791 FLOG(_L("[BTSU]\t CBTServiceStarter::ServiceAttributeSearchComplete() done")); |
802 FLOG(_L("[BTSU]\t CBTServiceStarter::ServiceAttributeSearchComplete() done")); |
792 } |
803 } |