diff -r 50bf9db68373 -r 33ae025ac1e8 metadataengine/client/src/mdeenginesession.cpp --- a/metadataengine/client/src/mdeenginesession.cpp Fri Apr 16 15:23:55 2010 +0300 +++ b/metadataengine/client/src/mdeenginesession.cpp Mon May 03 12:55:01 2010 +0300 @@ -32,46 +32,57 @@ iIsSessionProcessOpen = EFalse; } -void RMdEEngineSession::OpenL(TRequestStatus& aStatus) +void RMdEEngineSession::OpenL() { TFindServer findMdEServer( KMdSServerName ); TFullName name; - - const TInt result = findMdEServer.Next( name ); + + TInt result = findMdEServer.Next( name ); + // Server already running if( result == KErrNone ) { - // Server already running - iIsSessionProcessOpen = ETrue; - - TRequestStatus* status = &aStatus; - User::RequestComplete( status, KErrNone ); - - return; + TFindProcess findProcess( KMdSServerProcessString ); + result = findProcess.Next( name ); + if ( result == KErrNone ) + { + result = iServerProcess.Open( name ); + if( result != KErrNone ) + { + User::Leave( KErrNotReady ); + } + iIsSessionProcessOpen = ETrue; + return; + } + else + { + User::Leave( KErrNotReady ); + } } - User::LeaveIfError( iServerProcess.Create( KMdSServerFilename, - KNullDesC ) ); - - iIsSessionProcessOpen = ETrue; - - iServerProcess.Rendezvous( aStatus ); - - if( aStatus != KRequestPending ) + User::LeaveIfError( iServerProcess.Create( KMdSServerName, + KNullDesC ) ); + + TRequestStatus stat( 0 ); + iServerProcess.Rendezvous( stat ); + + if( stat != KRequestPending ) { iServerProcess.Kill( 0 ); // abort startup } else { iServerProcess.Resume(); // logon OK - start the server - } + } + + User::WaitForRequest( stat ); + + iIsSessionProcessOpen = ETrue; } -void RMdEEngineSession::OpenCancel(TRequestStatus& aStatus) +void RMdEEngineSession::OpenCancel() { if( iIsSessionProcessOpen ) { - iServerProcess.RendezvousCancel( aStatus ); - iServerProcess.Close(); iIsSessionProcessOpen = EFalse; @@ -82,7 +93,7 @@ { if( iIsSessionProcessOpen ) { - TBool error = (iServerProcess.ExitType() != EExitPending); + const TBool error = (iServerProcess.ExitType() != EExitPending); iServerProcess.Close(); @@ -109,23 +120,17 @@ } } -TInt RMdEEngineSession::Shutdown() +void RMdEEngineSession::Shutdown() { - TInt err = KErrNone; - if( iIsSessionOpen ) { - err = SendReceive( EShutdown ); + SendReceive( EShutdown ); } if( iIsSessionProcessOpen ) { iServerProcess.Close(); - - iIsSessionProcessOpen = EFalse; } - - return err; } TVersion RMdEEngineSession::Version() const