diff -r 613943a21004 -r 9386f31cc85b btobexprofiles/obexsendservices/obexservicesendutils/inc/BTServiceStarter.h --- a/btobexprofiles/obexsendservices/obexservicesendutils/inc/BTServiceStarter.h Tue Aug 31 15:25:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,483 +0,0 @@ -/* -* Copyright (c) 2002-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: Service starter -* -*/ - - - -#ifndef BT_SERVICE_STARTER_H -#define BT_SERVICE_STARTER_H - -// INCLUDES -#include "BTServiceAPI.h" -#include "BTServiceUtils.h" -#include "BTServiceParameterList.h" -#include "BTServiceDelayedDestroyer.h" - -#include -#include -#include -#include - -// DATA TYPES - -enum TBTServiceProfile - { - EBTSNone, - EBTSBPP, - EBTSOPP, - EBTSBIP - }; - -enum TBTActiveNotifier - { - ENoneQuery = 0, - EOfflineQuery, - ENameQuery - }; - -// FORWARD DECLARATIONS -class CObexUtilsUiLayer; -class MBTServiceProgressGetter; -class CBTSController; - - -const TUint KBTSdpObjectPush = 0x1105; -const TUint KBTSdpBasicImaging = 0x111b; -const TUint KBTSdpBasicPrinting = 0x1120; - - -// CLASS DECLARATION - -/** -* An observer interface for service controllers. -*/ -class MBTServiceObserver - { - public: // New functions - - /** - * Informs the observer that the handler has completed its tasks. - * @param aStatus The the completion status of the handler. - * @return None. - */ - virtual void ControllerComplete( TInt aStatus ) = 0; - - /** - * Informs the observer that a progress note should be shown. - * @param aGetter A pointer to a progess status getter object. - * @return None. - */ - //todo reusing the second param aTotalsize to aFileCount as it wass no longer used check it being used in other places - virtual void LaunchProgressNoteL( MBTServiceProgressGetter* aGetter, TInt aFileCount) = 0; - - - /** - * Informs the observer that a progress note should be shown. - * @param aGetter A pointer to a progess status getter object. - * @return None. - */ - virtual void UpdateProgressNoteL(TInt aFileSize,TInt aFileIndex, const TDesC& aFileName ) = 0; - - /** - * Informs the observer that a confirmation query for sending - * should be shouwn for BIP sending - * @return - */ - virtual void LaunchConfirmationQuery(const TDesC& aConfirmText)=0; - - /** - * Informs the observer that a connect is timedout - * @return - */ - virtual void ConnectTimedOut()=0; - - }; - - -/** -* A starter class for Bluetooth services. -*/ -NONSHARABLE_CLASS (CBTServiceStarter) : public CActive, - public MBTServiceObserver, - public MObexUtilsDialogObserver, - public MObexUtilsProgressObserver, - public MBTEngSdpResultReceiver, - public MBTEngSettingsObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CBTServiceStarter* NewL(); - - /** - * Destructor. - */ - virtual ~CBTServiceStarter(); - - public: // New functions - - /** - * Starts the given service. - * @param aService The service to be started. - * @param aList Parameters for the service. - * @param aWaiter A pointer to a waiter object. - * @return None. - */ - void StartServiceL( TBTServiceType aService, - CBTServiceParameterList* aList, - CActiveSchedulerWait* aWaiter = NULL ); - - private: // Functions from base classes - - - - /** - * From MBTServiceObserver A controller has completed. - * @param aStatus The completion status of the controller. - * @return None. - */ - void ControllerComplete( TInt aStatus ); - - /** - * From MBTServiceObserver A progress note should be shown. - * @param aGetter A pointer to a progess status getter object. - * @param aTotalSize Max size of the progress bar. - * @param aFileCount Total Number of files to be sent - * @return None. - */ - //todo reuse the second param as it is no longer used check it being used in other places - void LaunchProgressNoteL( MBTServiceProgressGetter* aGetter, TInt aFileCount); - - - /** - * From MBTServiceObserver Updating progress note when multiple files are sent. - * @param aFileSize Size of the file to be send. - * @param aFileIndex index of the file to be send. - * @param aFileName name of the file to be send. - * @return None. - */ - void UpdateProgressNoteL(TInt aFileSize,TInt aFileIndex, const TDesC& aFileName ); - - - /** - * From MObexUtilsWaitDialogObserver The wait note has been dismissed. - * @param aButtonId The button id that was used to dismiss the dialog. - * @return None. - */ - void DialogDismissed(TInt aButtonId); - - /** - * From MObexUtilsProgressObserver request for number of bytes sent - * @Param None. - * @return Number of bytes sent. - */ - TInt GetProgressStatus(); - - /** - * From MBTServiceObserver A confirmation query for BIP - * profile should be shown. - * @return key - */ - TInt LaunchConfirmationQuery(TInt aResourceId); - - - /** - * From MBTServiceObserver A confirmation query for BIP - * profile should be shown. - */ - void LaunchConfirmationQuery(const TDesC& aConfirmText); - - /** - * From MBTServiceObserver a connect request is timedout - * @return - */ - void ConnectTimedOut(); - - - /** - * Provides notification of the result of a service search that matches - * the requested UUID (through CBTEngDiscovery::RemoteSdpQuery). - * This method indicates that the search has completed, and returns - * all the results to the caller at once. - * - * @since S60 v3.2 - * @param aResult Array of record handles that match the requested UUID. - * Note: the array will not be available anymore after - * this method returns. - * @param aTotalRecordsCount The total number of records returned. - * @param aErr Error code of the service search operation; KErrNone if - * sucessful, KErrEof if no record matched the requested UUID, - * KErrCouldNotConnect and KErrCouldDisconnected in case of - * Bluetooth connection errors; otherwise one of the - * system-wide error codes. - */ - void ServiceSearchComplete( const RSdpRecHandleArray& aResult, - TUint aTotalRecordsCount, TInt aErr ); - - /** - * Provides notification of the result of an attribute search that matches - * the requested attribute (through CBTEngDiscovery::RemoteSdpQuery). - * This method indicates that the search has completed, and returns - * all the results to the caller at once. - * - * @since S60 v3.2 - * @param aHandle Record handle of the service record containing the result. - * @param aAttr Array containing the attribute that matches the - * requested attribute. - * Note: the array will not be available anymore after - * this method returns. - * @param aErr Error code of the service search operation; KErrNone if - * sucessful, KErrEof if the requested attribute was not - * contained in the specified service record, - * KErrCouldNotConnect and KErrCouldDisconnected in case of - * Bluetooth connection errors; otherwise one of the - * system-wide error codes. - */ - void AttributeSearchComplete( TSdpServRecordHandle aHandle, - const RSdpResultArray& aAttr, - TInt aErr ); - - /** - * Provides notification of the result of an combination of a service - * and attribute search (through CBTEngDiscovery::RemoteSdpQuery). - * This method is called for each service and attribute combination for - * which a match was found. The last result (which could be empty if no - * match was found) contain error code KErrEof to indicate that the - * search has completed. - * - * @since S60 v3.2 - * @param aHandle Record handle of the service record containing the result. - * @param aAttr Array containing the attribute that matches the - * requested attribute. - * Note: the array will not be available anymore after - * this method returns. - * @param aErr Error code of the service search operation; KErrNone if - * sucessful and more results follow, KErrEof indicates that - * this is the last result (which could be empty if no match - * was found), KErrCouldNotConnect and KErrCouldDisconnected - * in case of Bluetooth connection errors; otherwise one of - * the system-wide error codes. - */ - void ServiceAttributeSearchComplete( TSdpServRecordHandle aHandle, - const RSdpResultArray& aAttr, - TInt aErr ); - - /** - * Provides notification of the result of the discovery of nearby - * Bluetooth devices. - * - * @since S60 v3.2 - * @param aDevice The data structure encapsulates all information - * about the selected device. Ownership of the data - * structure has not been transfered and is still with - * the API client. - * @param aErr Error code of the device search operation; KErrNone if - * sucessful, KErrCancel if the user cancelled the - * dialog, KErrCancel if CBTEngDiscovery::CancelSearchRemoteDevice - * was called; otherwise one of the system-wide error codes. - */ - void DeviceSearchComplete( CBTDevice* aDevice, TInt aErr ); - - /** - * From MBTEngSettingsObserver. - * Provides notification of changes in the power state - * of the Bluetooth hardware. - * - * @since S60 v3.2 - * @param aState EBTPowerOff if the BT hardware has been turned off, - * EBTPowerOn if it has been turned off. - */ - void PowerStateChanged( TBTPowerStateValue aState ); - - /** - * From MBTEngSettingsObserver. - * Provides notification of changes in the discoverability - * mode of the Bluetooth hardware. - * - * @since S60 v3.2 - * @param aState EBTDiscModeHidden if the BT hardware is in hidden mode, - * EBTDiscModeGeneral if it is in visible mode. - */ - void VisibilityModeChanged( TBTVisibilityMode aState ); - - /** - * From CActive. - * Called by the active scheduler when the request has been cancelled. - * - * @since S60 v3.2 - */ - void DoCancel(); - - /** - * From CActive. - * Called by the active scheduler when the request has been completed. - * - * @since S60 v3.2 - */ - void RunL(); - - /** - * From CActive. - * Called by the active scheduler when an error in RunL has occurred. - * - * @since S60 v3.2 - */ - TInt RunError( TInt aError ); - - private: - - /** - * C++ default constructor. - */ - CBTServiceStarter(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Check that the parameters are valid for a given service. - * @param aService The requested service. - * @param aList Parameters for the service. - * @return None. - */ - TBool ValidParameters( TBTServiceType aService, - const CBTServiceParameterList* aList) const; - - /** - * Starts finding a Bluetooth profile suitable for requested service. - * @param aService The requested service. - * @return None. - */ - void StartProfileSelectL( TBTServiceType aService ); - - /** - * Start a controller for the given Bluetooth profile. - * @param aProfile The profile to be started. - * @return None. - */ - void StartProfileL( TBTServiceProfile aProfile ); - - /** - * Launches a connecting wait note - * @param None. - * @return None. - */ - void LaunchWaitNoteL(); - - /** - * Cancel connecting wait note - * @param None. - * @return None. - */ - void CancelWaitNote(); - - /** - * Show a note with given error value - * @param aReason Error value - * @return None. - */ - void ShowErrorNote( TInt aReason ) const; - - /** - * Cancel progress note - * @param None. - * @return None. - */ - void CancelProgressNote(); - - /** - * StopTransfer and show information note - * @param aError Error code if error exist. - * @return None. - */ - void StopTransfer( TInt aError ); - - /** - * Check if phone is in offline mode, and ask the user if it is.. - * @return ETrue if the phone is in offline mode, otherwise EFalse. - */ - TBool CheckOfflineModeL(); - - /** - * Start BT device discovery. - * @return None. - */ - void StartDiscoveryL(); - - /** - * Turn BT power on. - * @param aState The current BT power state. - * @return None. - */ - void TurnBTPowerOnL( const TBTPowerStateValue aState ); - - private: // Data definitions - - enum TBTServiceStarterState - { - EBTSStarterIdle, - EBTSStarterFindingBPP, - EBTSStarterFindingOPP, - EBTSStarterFindingBIP, - EBTSStarterStoppingService - }; - - private: // Data - - CBTDevice* iDevice; - CBTEngDiscovery* iBTEngDiscovery; - CBTServiceParameterList* iList; - CObexUtilsDialog* iDialog; - CBTSController* iController; - - TBTServiceType iService; - TInt iClientChannel; - TBTServiceStarterState iState; - //todo verify the usage of below variable when file sending to mulitple devices or - //when files from different applications are sent simultaneously - TBool iServiceStarted; - TMsvId iMessageServerIndex; - - MBTServiceProgressGetter* iProgressGetter; - CActiveSchedulerWait* iWaiter; - TBool iAllSend; - TInt iBytesSendWithBIP; - //todo verify the usage of below variable as this part of legacy code - //and false condition will never be hit. - TBool iProgressDialogActive; - TBool iUserCancel; - CBTEngSettings* iBTEngSettings; - TBool iWaitingForBTPower; - RNotifier iNotifier; // Handle to the generic notifier. - TPckgBuf iOffline; - TPckgBuf iName; - TBool iSendToBIPOnlyDevice; - TBTActiveNotifier iActiveNotifier; - TBool iFeatureManagerInitialized; - TBool iTriedBIP; - TBool iTriedOPP; - CBTServiceDelayedDestroyer* iDelayedDestroyer; - TBool iLocalisationInit; - }; - -#endif // BT_SERVICE_CONTROLLER_H - -// End of File -