diff -r 000000000000 -r 72b543305e3a messagingappbase/obexmtms/irmtm/irserver/source/sendopn.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/obexmtms/irmtm/irserver/source/sendopn.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,104 @@ +// 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: sendopn.cpp $ +// $Author: Stevep $ +// $Revision: 8 $ +// $Date: 25/03/02 9:25 $ +// +// + +//class includes +#include "sendopn.h" + +//system includes +#include +#include //KUidMsgTypeIr + +//user includes +#include "irmsgtypeuid.h" //KUidMsgTypeIr + + + +CIrServerSendOperation* CIrServerSendOperation::NewL + (CMsvServerEntry& aSendObj, const TObexIrProtocolInfo& aIrProtocolInfo, + TInt aConnectTimeoutMicroSeconds, TInt aPutTimeoutMicroseconds, + const TDesC* aConnectPassword, TRequestStatus& aObserverRequestStatus, + TBool aLastSendAttempt) +/** + * Second phase constructor. + * + * @param aSendObj Reference to the object to send. + * @param aIrProtocolInfo 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. + * @param aLastSendAttempt TBool flag to check for the second send attempt and also control header sending. EFalse sends full headers, ETrue sends only name and size. + * @leave Leaves if insufficient memory. + */ + { + CIrServerSendOperation* self=new(ELeave) CIrServerSendOperation + (aSendObj, aIrProtocolInfo, aConnectTimeoutMicroSeconds, + aPutTimeoutMicroseconds, aObserverRequestStatus, aLastSendAttempt); + CleanupStack::PushL(self); + self->ConstructL(aConnectPassword); + CleanupStack::Pop(); //self + return self; + } + +CIrServerSendOperation::CIrServerSendOperation(CMsvServerEntry& aSendObj, const TObexIrProtocolInfo& aIrProtocolInfo, + TInt aConnectTimeoutMicroSeconds, TInt aPutTimeoutMicroSeconds, + TRequestStatus& aObserverRequestStatus, TBool aLastSendAttempt) + :CObexServerSendOperation(KUidMsgTypeIrUID, aSendObj, aConnectTimeoutMicroSeconds, aPutTimeoutMicroSeconds, + aObserverRequestStatus,aLastSendAttempt), + iIrProtocolInfo(aIrProtocolInfo) //default bitwise copy constructor should suffice +/** + * Constructor. + * + * @param aSendObj Reference to the object to send. + * @param aIrProtocolInfo 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. + * @param aLastSendAttempt TBool flag to check for the second send attempt and also control header sending. EFalse sends full headers, ETrue sends only name and + */ + { + } + +void CIrServerSendOperation::InitialiseObexClientL() +/** + * 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 + */ + + { + // Initialise Obex client object. + iObexClient = CObexClient::NewL(iIrProtocolInfo); + } + +TBool CIrServerSendOperation::CompletingObserver(TInt aErrorCode) + { + // Check if the send operation has completed successfully or + // user cancelled the request or if it is the second send attempt . + // If so , we will not be attempting a retry. + if((aErrorCode == KErrNone) || (aErrorCode == KErrCancel ) || (iLastSendAttempt)) + { + return ETrue; + } + return EFalse; + } +