equal
deleted
inserted
replaced
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 // ------------------------------------------------------------------------------------------------ |