diff -r 000000000000 -r 72b543305e3a messagingappbase/obexmtms/btmtm/btserver/include/btsendop.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/obexmtms/btmtm/btserver/include/btsendop.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,161 @@ +// Copyright (c) 2001-2009 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: +// $Workfile: btsendop.h $ +// $Author: Stevep $ +// $Revision: 8 $ +// $Date: 25/03/02 8:56 $ +// +// + +#ifndef __BTSENDOP_H__ +#define __BTSENDOP_H__ + +#include //TObexBluetoothProtocolInfo +#include +#include "../../../obexmtm/obexutil/include/ObexSdpUtils.h" //MObexSdpUtilsObserver + +// +// CBtServerSendOperation +// + +class CBtServerSendOperation : public CObexServerSendOperation, public MObexSdpUtilsObserver +/** +class CBtServerSendOperation + +Bluetooth Send Operation: + +Thin implementation over the top of CObexSendOperation. Implements InitialiseObexClientL to initialise a Obex client +using Bluetooth as the transport mechanism. Runs on the server side. + +@internalTechnology +@released +*/ + { +public: + + /** + * Second phase constructor. + * + * @param aSendObj Reference to the object to send. + * @param aBtProtocolInfo Protocol info to initialise the CObexCleint + * @param aConnectTimeoutMicroSeconds Timeout period for Connect operation in microseconds. + * @param aPutTimeoutMicroseconds Timeout period for Put operation in microseconds. + * @param aConnectPassword Pointer to the password for Bluetooth validation. + * @param aObserverRequestStatus Canonical TRequestStatus for control of active object. + * @leave KErrXXX System-wide error codes + */ + + static CBtServerSendOperation* NewL(CMsvServerEntry& aSendObj, const TObexBluetoothProtocolInfo& aBtProtocolInfo, TInt aConnectTimeoutMicroSeconds, TInt aPutTimeoutMicroseconds, const TDesC* aConnectPassword, TRequestStatus& aObserverRequestStatus); + + /** + * Destructor + **/ + virtual ~CBtServerSendOperation(); + +public: // from CObexSendOperation + + /** + * Initialises the Obex client to use Bluetooth as the transport mechanism with the parameters as specified in the + * constructor. + * + * @leave KErrXXX System-wide error codes + */ + + virtual void InitialiseObexClientL(); + + /** + * Fills in the iBtProtocolInfo structure with the results of the SDP Lookup. + */ + virtual void SecondPhaseObexClientInitL(); + + /** + * Operations to perform before attempting a connection. + * As multiple connection attempts can be made, it is necessary for this + * routine to ensure it can handle being called multiple times. + */ + virtual void PreConnectOperations(); + + /** + * Operations to perform after attempting a connection. + * As multiple connection attempts can be made, it is necessary for this + * routine to ensure it can handle being called multiple times. + */ + virtual void PostConnectOperations(); + + /** + * Operations to perform before attempting to send a set of objects. + */ + virtual void PreSendOperations(); + + /** + * Operations to perform after attempting to send a set of objects. + */ + virtual void PostSendOperations(); + + /** + * Cancel + */ + void DoCancel(); + +private: + + /** + * Constructor. + * + * @param aSendObj Reference to the object to send. + * @param aBtProtocolInfo Protocol info to initialise the CObexCleint + * @param aConnectTimeoutMicroSeconds Timeout period for Connect operation in microseconds. + * @param aPutTimeoutMicroseconds Timeout period for Put operation in microseconds. + * @param aConnectPassword Pointer to the password for Bluetooth validation. + * @param aObserverRequestStatus Canonical TRequestStatus for control of active object. + */ + + CBtServerSendOperation(CMsvServerEntry& aSendObj, const TObexBluetoothProtocolInfo& aBtProtocolInfo, TInt aConnectTimeoutMicroSeconds, TInt aPutTimeoutMicroSeconds, TRequestStatus& aObserverRequestStatus); + + /** + * SDP Query result, parameters have the following meaning: + * + * @param aError If this is anything but KErrNone then the query has not completed correctly and all other parameters are meaningless. + * @param aPortNumber - The RFCOMM port number that the remote device supports OBEX on + * @param aObexObjectPushProfileSupported - ETrue if the remote device supports the Bluetooth OBEX Push Profile + * @param aObexObjectPushProfileVersion - Version of Bluetooth OBEX Push Profile supported (only valid if aObexObjectPushProfileSupported == ETrue) + * @param aSupportedFormats - Structure containing a list of the OBEX Object formats supported by the remote device + */ + + virtual void RemoteBtObexQueryResult(TInt aError, + TInt aPortNumber, + TBool aObexObjectPushProfileSupported, + TInt aObexObjectPushProfileVersion, + TObexSupportedFormatsList aSupportedFormats); + + /** + * Allow the link to go into low power modes + */ + void AllowLowPowerModes(); + + /** + * Prevent the link from going into low power modes + */ + void PreventLowPowerModes(); + +private: + TObexBluetoothProtocolInfo iBtProtocolInfo; //< Protocol info to initialise the CObexClient. Non-const because the CObexClient's NewL() takes a non-const reference + CObexSdpUtils *iSdpUtils; //< Used to perform SDP lookup query + TInt iBTObexPortNumber; //< Bluetooth Obex port number + RSocketServ iSocketServ; + RBTPhysicalLinkAdapter iLinkAdapter; + TBool iPreventingLowPowerModes; + }; + +#endif // __BTSENDOP_H__