syncmlfw/dm/treedbclient/src/nsmldmtreedbclient.cpp
changeset 73 ae69c2e8bc34
parent 22 19fb38abab1d
equal deleted inserted replaced
71:d2517372cc44 73:ae69c2e8bc34
   109 	TVersion ver ( KNSmlDmCallbackServerVersionMajor,
   109 	TVersion ver ( KNSmlDmCallbackServerVersionMajor,
   110 		KNSmlDmCallbackServerVersionMinor, 0  );
   110 		KNSmlDmCallbackServerVersionMinor, 0  );
   111 		
   111 		
   112 	result = CreateSession( KNSmlDmCallbackServerName, ver );
   112 	result = CreateSession( KNSmlDmCallbackServerName, ver );
   113 	if(result!=KErrNone)
   113 	if(result!=KErrNone)
   114 		{
   114 	{
   115 		TRAPD(error, result = LaunchServerL());
   115 		TRAPD(error, result = LaunchServerL());
   116 		if ( (error == KErrNone) && ( result == KErrNone ) )
   116 		if ( (error == KErrNone) && ( result == KErrNone ) )
   117 			{
   117 			{
   118 			result = CreateSession( KNSmlDmCallbackServerName, ver );
   118 			result = CreateSession( KNSmlDmCallbackServerName, ver );
   119 			}
   119 			}
       
   120 		else if ( result == KErrAlreadyExists )
       
   121 		{
       
   122 			TInt retryCount = 3;
       
   123 				
       
   124 			while ( result != KErrNone && retryCount )
       
   125 			{
       
   126 				result = CreateSession( KNSmlDmCallbackServerName, ver );
       
   127 				if( result != KErrNone )
       
   128 				{
       
   129 				 // wait 1.5 seconds to give the server a chance to reach its serviceable state
       
   130 				 User::After( 1500000 );
       
   131 				 --retryCount;
       
   132 				}
       
   133 			}
   120 		}
   134 		}
       
   135 	}
       
   136 	User::LeaveIfError( result );	
   121 	return result;
   137 	return result;
   122 	}
   138 	}
   123 	
   139 	
   124 
   140 
   125 // ---------------------------------------------------------------------------
   141 // ---------------------------------------------------------------------------