diff -r 0ba996a9b75d -r 613943a21004 btobexprofiles/obexreceiveservices/opp/inc/oppcontroller.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/btobexprofiles/obexreceiveservices/opp/inc/oppcontroller.h Tue Aug 31 15:25:10 2010 +0300 @@ -0,0 +1,167 @@ +/* +* Copyright (c) 2004 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: +* Class handles Bluetooth OPP reception. +* +* +*/ + + +#ifndef OPPCONTROLLER_H +#define OPPCONTROLLER_H + +// INCLUDES + + +#include +#include +#include "obexutilspropertynotifier.h" +#include +#include "btengdevman.h" + +#include + +#include +#include +#include + + +const TInt KBtStartReserveChannel = 9; +const TInt KBtEndReserveChannel = 30; + +// todo @ QT migration: take official definition from Messaging at app layer (btmsgtypeuid.h) +const TUid KUidMsgTypeBt = {0x10009ED5}; +/** +* Backup status. +* The value is controlled by FileManager +*/ +enum TFileManagerBkupStatusType + { + EFileManagerBkupStatusUnset = 0x00000000, + EFileManagerBkupStatusBackup = 0x00000001, + EFileManagerBkupStatusRestore = 0x00000002 + }; +/** +* CBtListenActive +* Class to implement IrObex permanent listen +*/ +class COPPController : public CSrcsInterface, public MObexServerNotify, + public MObexUtilsPropertyNotifyHandler, + public MObexUtilsDialogObserver, + public MBTEngDevManObserver, + public MHbDeviceDialogObserver + { +public: + static COPPController* NewL(); + ~COPPController(); + +private: // from CSrcsInterface + TBool IsOBEXActive(); + void SetMediaType(TSrcsMediaType aMediaType); + TInt SetObexServer(CObexServer* aServer); + +private: // from MObexServerNotify + void ErrorIndication(TInt aError); + void TransportUpIndication(); + void TransportDownIndication(); + TInt ObexConnectIndication(const TObexConnectInfo& aRemoteInfo, const TDesC8& aInfo); + void ObexDisconnectIndication(const TDesC8& aInfo); + CObexBufObject* PutRequestIndication(); + TInt PutPacketIndication(); + TInt PutCompleteIndication(); + CObexBufObject* GetRequestIndication(CObexBaseObject* aRequiredObject); + TInt GetPacketIndication(); + TInt GetCompleteIndication(); + TInt SetPathIndication(const CObex::TSetPathInfo& aPathInfo, const TDesC8& aInfo); + void AbortIndication(); + +private: // from MObexUtilsPropertyNotifyHandler + void HandleNotifyL(TMemoryPropertyCheckType aCheckType); + + +private: // from MBTEngDevManObserver + void HandleGetDevicesComplete(TInt aErr, CBTDeviceArray* aDeviceArray); + +private: //from MObexUtilsDialogObserver + void DialogDismissed(TInt aButtonId); + +private: + COPPController(); + void ConstructL(); + + void CancelTransfer(); + void HandlePutRequestL(); + TInt HandlePutCompleteIndication(); + void HandleError(TBool aAbort); + + TBool CheckCapacityL(); + void LaunchReceivingIndicatorL(); + inline TBool ReceivingIndicatorActive() const { return (iDialogActive); } + void UpdateReceivingIndicatorL(); + void CloseReceivingIndicator(TBool aResetDisplayedState = ETrue); + TInt GetDriveWithMaximumFreeSpaceL(); + TBool IsBackupRunning(); + TBool ProcessExists( const TSecureId& aSecureId ); + +private: + void DataReceived(CHbSymbianVariantMap& aData); + void DeviceDialogClosed(TInt aCompletionCode); + +private: + enum TObexTransferState + { + ETransferIdle, + ETransferPut, + ETransferPutDiskError, + ETransferPutInitError, + ETransferPutCancel, + }; + +private: + CObexServer* iObexServer; + TObexTransferState iObexTransferState; + CObexBufObject* iObexObject; + TInt iDrive; + TBool iListening; + CObexUtilsPropertyNotifier* iLowMemoryActiveCDrive; + CObexUtilsPropertyNotifier* iLowMemoryActiveMMC; + TMsvId iMsvIdParent; + TMsvId iMsvIdAttach; + TFileName iFullPathFilename; + TFileName iDefaultFolder; + TFileName iPreviousDefaultFolder; + TFileName iCenRepFolder; + RFs iFs; + RFile iFile; + CBufFlat* iBuf; + TBool iLengthHeaderReceived; + TSrcsMediaType iMediaType; + TInt iTotalSizeByte; + TFileName iReceivingFileName; + TBool iNoteDisplayed; + CBTEngDevMan* iDevMan; + CBTDeviceArray* iResultArray; + TBTDeviceName iRemoteDeviceName; + CObexUtilsDialog* iDialog; + CHbDeviceDialogSymbian* iProgressDialog; + TBool iDialogActive; + TInt iFileCount; + TBool iReceivingFailed; + CHbDeviceDialogSymbian* iRecvDoneDialog; + TBool iShowRecvCompleteDialog; + }; + +#endif // OPPCONTROLLER_H + +// End of File