diff -r 3dcb815346df -r 4096754ee773 localconnectivityservice/obexserviceman/plugins/src/usb/obexsmusbconnection.cpp --- a/localconnectivityservice/obexserviceman/plugins/src/usb/obexsmusbconnection.cpp Thu Aug 19 10:46:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,223 +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: This class handles service connections. -* -*/ - - - -// INCLUDE FILES - -#include "obexsmusbconnection.h" -#include "debug.h" -#include -#include "obexutilsopaquedata.h" -#include -#include "obexservicemanprivatecrkeys.h" - -// ================= MEMBER FUNCTIONS ======================= - -// --------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------- -// -CObexSMUsbConnection::CObexSMUsbConnection() - { - } -// --------------------------------------------------------- -// Constructor -// --------------------------------------------------------- -// -CObexSMUsbConnection::CObexSMUsbConnection(TAny* aInitParams) - :iImplementationInfo((CImplementationInformation *)aInitParams) - { - } - -// --------------------------------------------------------- -// Destructor -// --------------------------------------------------------- -// -CObexSMUsbConnection::~CObexSMUsbConnection() - { - // Cleanup - FLOG(_L("[SRCS] CSrcsUsbConnection: StopObexServer")); - if(iServer) - { - iServer->Stop(); - } - - // Delete OBEX Server - if (iServer) - { - delete iServer; - FLOG(_L("[SRCS]\tserver\tCSrcsBtConnection::~CSrcsBtConnection obex server deleted.")); - iServer = NULL; - } - - // Delete Service Controller callback - delete iController; - iController = NULL; - - FLOG(_L("[SRCS] CSrcsUsbConnection: ~CSrcsUsbConnection: Completed\t")); - } - -// --------------------------------------------------------- -// NewL -// --------------------------------------------------------- -// -CObexSMUsbConnection* CObexSMUsbConnection::NewL(TAny* aInitParams) - { - FLOG(_L("[SRCS]\tserver\tCSrcsUsbConnection: NewL")); - CObexSMUsbConnection* self = new (ELeave) CObexSMUsbConnection(aInitParams); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// --------------------------------------------------------- -// ConstructL -// Method to create BT connections. -// --------------------------------------------------------- -// -void CObexSMUsbConnection::ConstructL() - { - // Save service controller implementation UID for deferred initialization - iImplUid = iImplementationInfo->ImplementationUid(); - - FLOG(_L("[SRCS] CSrcsUsbConnection: ConstructL: CSrcsInterface::NewL\t")); - - // parsing opaque_data in iImplementationInfo - TPtrC8 res_string = iImplementationInfo->OpaqueData(); - - CObexUtilsOpaqueData res_data(res_string); - TBuf8 op_StringDesc, op_LocalWho, op_SkipStr; - TUint op_SkipInt; //used to skip certain fields - TUint op_ReceiveMtu(KSRCSDefaultReceiveMtu), op_TransmitMtu(KSRCSDefaultTransmitMtu); - // get 1st entry: USB interface string descriptor - User::LeaveIfError ( res_data.GetString(op_StringDesc) ); - // get 2nd entry: OBEX local who - User::LeaveIfError ( res_data.GetString(op_LocalWho) ); - // skip 3rd to 7th entry - // All service ID should be strings ! - res_data.GetString(op_SkipStr); - res_data.GetNumber(op_SkipInt); - res_data.GetNumber(op_SkipInt); - res_data.GetNumber(op_SkipInt); - res_data.GetNumber(op_SkipInt); - - // Get OBEX packet size: - if( res_data.GetNumber(op_ReceiveMtu) != KErrNone ) - { - op_ReceiveMtu = KSRCSDefaultReceiveMtu; // restore default value in case it is modified; - FLOG(_L("[SRCS] CSrcsUsbConnection: ConstructL: op_ReceiveMtu not specified.\t")); - } - - if( res_data.GetNumber(op_TransmitMtu) != KErrNone ) - { - op_TransmitMtu = KSRCSDefaultTransmitMtu; // restore default value in case it is modified; - FLOG(_L("[SRCS] CSrcsUsbConnection: ConstructL: op_TransmitMtu not specified.\t")); - } - - FLOG(_L("[SRCS] CSrcsUsbConnection: ConstructL: Successfully get all data from opaque_data.\t")); - - // Get OBEX usb dma usage - CRepository* cenrep = NULL; - TRAP_IGNORE(cenrep = CRepository::NewL(KCRUidObexServiceMan)); - TInt dmaUsage = EObexUsbDmaInUse; - if (cenrep) - { - cenrep->Get(KObexUsbDmaUsage, dmaUsage); - delete cenrep; - } - - // set up the protocol stack... - TObexUsbProtocolInfoV2 obexUsbProtocolInfo; - obexUsbProtocolInfo.iTransport = KObexUsbProtocolV2; - obexUsbProtocolInfo.iInterfaceStringDescriptor.Copy(op_StringDesc); - if(dmaUsage == EObexUsbDmaInUse) - { - obexUsbProtocolInfo.iDmaOnInEndpoint = ETrue; - obexUsbProtocolInfo.iDmaOnOutEndpoint = ETrue; - } - else - { - obexUsbProtocolInfo.iDmaOnInEndpoint = EFalse; - obexUsbProtocolInfo.iDmaOnOutEndpoint = EFalse; - } - obexUsbProtocolInfo.iBandwidthPriority = EUsbcBandwidthOUTPlus2 | EUsbcBandwidthINPlus2; - - - - // Configure Obex packet size - TObexProtocolPolicy aObexProtocolPolicy; - aObexProtocolPolicy.SetReceiveMtu( static_cast(op_ReceiveMtu) ); - aObexProtocolPolicy.SetTransmitMtu( static_cast(op_TransmitMtu) ); - FTRACE(FPrint(_L("[SRCS] CSrcsUsbConnection: ConstructL: op_ReceiveMtu[%x] op_TransmitMtu[%x]"), - aObexProtocolPolicy.ReceiveMtu(), aObexProtocolPolicy.TransmitMtu() )); - - // Try to create OBEX server - iServer = CObexServer::NewL(obexUsbProtocolInfo, aObexProtocolPolicy); - FLOG(_L("[SRCS] CSrcsUsbConnection: ConstructL: CObexServer::NewL")); - // if there is "local who" field - if(op_LocalWho.Size()) - { - User::LeaveIfError ( iServer->SetLocalWho( op_LocalWho ) ); - FLOG(_L("[SRCS] CSrcsUsbConnection: ConstructL: SetLocalWho")); - } - - // The rest of initialization procedure is executed in PostInitialzeL() - } - -// --------------------------------------------------------- -// GetUserPasswordL(const TDesC& ) -// Purpose: Get the Obex password from user with ObexPasskeyNotifier -// Parameters: -// Return value: -// --------------------------------------------------------- -// -void CObexSMUsbConnection::GetUserPasswordL( const TDesC& ) - { - FLOG( _L( "[SRCS] CSrcsUsbConnection: GetUserPassword\t" ) ); - } - -// --------------------------------------------------------- -// Check if OBEX service is still active. -// @return ETrue: OBEX service is still active. -// EFalse: OBEX service is inactive. -// --------------------------------------------------------- -// - -TBool CObexSMUsbConnection::IsOBEXActive() - { - FLOG( _L( "[SRCS] CSrcsUsbConnection: IsOBEXActive\t" ) ); - return ETrue; - } - -void CObexSMUsbConnection::PostInitializeL() - { - FTRACE(FPrint(_L("[SRCS] CObexSMUsbConnection: PostInitializeL(%08X)"), iImplUid.iUid)); - - iController = CSrcsInterface::NewL(iImplUid); - iController->SetMediaType( ESrcsMediaUSB ); - - FLOG(_L("[SRCS] CObexSMUsbConnection::PostInitializeL(): SetObexServer\t")); - // Try to start server - User::LeaveIfError ( iController->SetObexServer( iServer )); - FLOG( _L( "[SRCS] CObexSMUsbConnection: PostInitializeL() exits\t" ) ); - } - -// End of file