diff -r d0791faffa3f -r f8e15b44d440 mtpfws/mtpfw/src/cmtpconnectionmgr.cpp --- a/mtpfws/mtpfw/src/cmtpconnectionmgr.cpp Tue Feb 02 01:11:40 2010 +0200 +++ b/mtpfws/mtpfw/src/cmtpconnectionmgr.cpp Fri Feb 19 23:40:44 2010 +0200 @@ -93,6 +93,15 @@ return iTransportUid; } +void CMTPConnectionMgr::ConnectionCloseComplete(const TUint& /*aConnUid*/) + { + if (iIsTransportStopping) + { + iIsTransportStopping = EFalse; + ResumeSuspendedTransport(); + } + } + EXPORT_C void CMTPConnectionMgr::StartTransportL(TUid aTransport) { StartTransportL( aTransport, NULL ); @@ -187,14 +196,14 @@ { TRAP_IGNORE( SuspendTransportL( aTransport ) ); } + iIsTransportStopping = ETrue; iTransport->Stop(*this); delete iTransport; iTransport = NULL; iTransportUid = KNullUid; iTransportCount--; - - } + if ( aByBearer ) { UnsuspendTransport( aTransport ); @@ -227,7 +236,7 @@ return iTransportCount; } -void CMTPConnectionMgr::ConnectionClosed(MMTPTransportConnection& aTransportConnection) +TBool CMTPConnectionMgr::ConnectionClosed(MMTPTransportConnection& aTransportConnection) { __FLOG(_L8("ConnectionClosed - Entry")); @@ -236,11 +245,9 @@ __ASSERT_DEBUG((idx != KErrNotFound), User::Invariant()); CMTPConnection* connection(iConnections[idx]); - connection->ConnectionSuspended(); - - ResumeSuspendedTransport(); __FLOG(_L8("ConnectionClosed - Exit")); + return connection->ConnectionSuspended(); } void CMTPConnectionMgr::ConnectionOpenedL(MMTPTransportConnection& aTransportConnection) @@ -267,26 +274,6 @@ __FLOG(_L8("ConnectionOpenedL - Exit")); } -TBool CMTPConnectionMgr::DeleteConnection(TUint aConnectionId) - { - __FLOG(_L8("DeleteConnection - Entry")); - - TBool ret = EFalse; - TInt idx = ConnectionFind(aConnectionId); - - if (idx != KErrNotFound) - { - CMTPConnection* connection(iConnections[idx]); - iConnections.Remove(idx); - delete connection; - ret = ETrue; - } - - __FLOG(_L8("DeleteConnection - Entry")); - - return ret; - } - EXPORT_C TUid CMTPConnectionMgr::ClientSId() { return iSecureId; @@ -297,7 +284,8 @@ CMTPConnectionMgr::CMTPConnectionMgr() : iConnectionOrder(ConnectionOrderCompare), iShutdownConnectionIdx(KErrNotFound), - iTransportUid(KNullUid) + iTransportUid(KNullUid), + iIsTransportStopping(EFalse) { __FLOG_OPEN(KMTPSubsystem, KComponent); }