metadataengine/client/src/mdeenginesession.cpp
branchRCL_3
changeset 19 82c0024438c8
parent 3 b73a2e62868f
--- a/metadataengine/client/src/mdeenginesession.cpp	Wed Mar 31 22:19:07 2010 +0300
+++ b/metadataengine/client/src/mdeenginesession.cpp	Wed Apr 14 16:24:03 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