--- /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 <obex.h> //TObexBluetoothProtocolInfo
+#include <obexsendop.h>
+#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__