syncmlfw/ds/hostserver/dshostclient/src/nsmldshostclientsession.cpp
changeset 73 ae69c2e8bc34
parent 0 b497e44ab2fc
equal deleted inserted replaced
71:d2517372cc44 73:ae69c2e8bc34
    51 TInt RNSmlDSHostClient::Connect( const TDesC& aServerName, const TVersion& aVersion )
    51 TInt RNSmlDSHostClient::Connect( const TDesC& aServerName, const TVersion& aVersion )
    52 	{
    52 	{
    53 	iMode = ENSmlNormalMode;
    53 	iMode = ENSmlNormalMode;
    54 	TInt result( CreateSession( aServerName, aVersion ) );
    54 	TInt result( CreateSession( aServerName, aVersion ) );
    55 	
    55 	
    56 	if ( result == KErrNotFound || result == KErrServerTerminated )
    56 	if ( result != KErrNone )
    57 		{
    57 		{
    58 		result = LaunchServer( aServerName );
    58 		result = LaunchServer( aServerName );
    59 		if ( result == KErrNone || result == KErrAlreadyExists )
    59 		if ( result == KErrNone )
    60 			{
    60 			{
    61 			result = CreateSession( aServerName, aVersion );
    61 			result = CreateSession( aServerName, aVersion );
    62 			}
    62 			}
       
    63 		else if ( result == KErrAlreadyExists )
       
    64 		{
       
    65 			TInt retryCount = 3;
       
    66 				
       
    67 			while ( result != KErrNone && retryCount )
       
    68 			{
       
    69 				result = CreateSession( aServerName, aVersion );
       
    70 				if( result != KErrNone )
       
    71 				{
       
    72 				 // wait 1.5 seconds to give the server a chance to reach its serviceable state
       
    73 				 User::After( 1500000 );
       
    74 				 --retryCount;
       
    75 				}
       
    76 			}
       
    77 		}			
    63 		}
    78 		}
    64 	return result;
    79 	return result;
    65 	}
    80 	}
    66 
    81 
    67 // ------------------------------------------------------------------------------------------------
    82 // ------------------------------------------------------------------------------------------------