homescreenpluginsrv/hspsmanager/client/hspsclientsession.cpp
branchRCL_3
changeset 23 ace62b58f4b2
parent 14 15e4dd19031c
equal deleted inserted replaced
22:1b207dd38b72 23:ace62b58f4b2
    21 #include <e32svr.h>
    21 #include <e32svr.h>
    22 #include "hsps_builds_cfg.hrh"
    22 #include "hsps_builds_cfg.hrh"
    23 #include "hspsthememanagement.h"
    23 #include "hspsthememanagement.h"
    24 #include "hspsthemeserver.h"
    24 #include "hspsthemeserver.h"
    25 #include "hspsclientsession.h"
    25 #include "hspsclientsession.h"
       
    26 
       
    27 const TInt KRetryMax = 256;
       
    28 const TInt KRetryInterval = 100000; // 100ms
    26 
    29 
    27 // Standard server startup code
    30 // Standard server startup code
    28 static TInt StartServer()
    31 static TInt StartServer()
    29     {
    32     {
    30     const TUidType serverUid(KNullUid,KNullUid,KhspsThemeServerUid3);
    33     const TUidType serverUid(KNullUid,KNullUid,KhspsThemeServerUid3);
    70 // This is the standard retry pattern for server connection
    73 // This is the standard retry pattern for server connection
    71 // (other items were commented in a header).
    74 // (other items were commented in a header).
    72 // -----------------------------------------------------------------------------
    75 // -----------------------------------------------------------------------------
    73 //
    76 //
    74 EXPORT_C TInt RhspsClientSession::Connect()
    77 EXPORT_C TInt RhspsClientSession::Connect()
    75     {
    78     {     
    76     TVersion ver = TVersion(KhspsThemeServerMajorVersionNumber,KhspsThemeServerMinorVersionNumber,
    79     TVersion ver = TVersion( KhspsThemeServerMajorVersionNumber,
    77                                                              KhspsThemeServerBuildVersionNumber);    
    80                              KhspsThemeServerMinorVersionNumber,
    78     TInt retry=2;
    81                              KhspsThemeServerBuildVersionNumber);
    79     for (;;)
    82     
       
    83     TInt retry = KRetryMax;
       
    84     
       
    85     for(;;)
    80         {
    86         {
    81         TInt r=CreateSession(KhspsThemeServerName, ver, KDefaultMessageSlots);
    87         TInt r = CreateSession( KhspsThemeServerName, ver, KDefaultMessageSlots );
    82   
    88   
    83         if (r!=KErrNotFound && r!=KErrServerTerminated)
    89         if( r != KErrNotFound && r != KErrServerTerminated )
    84             {
    90             {
    85             return r;
    91             return r;
    86             }
    92             }        
    87         
    93 
    88         if (--retry==0)
    94         retry--;
       
    95         if( retry == 0 )
    89             {
    96             {
    90             return r;
    97             return r;
    91             }
    98             }        
    92         
    99         
    93         r=StartServer();
   100         r = StartServer();
    94         if (r!=KErrNone && r!=KErrAlreadyExists)
   101         if( r != KErrNone && r != KErrAlreadyExists )
    95             {
   102             {
    96             return r;
   103             return r;
       
   104             }        
       
   105         
       
   106         if( r == KErrAlreadyExists )
       
   107             {
       
   108             User::After( KRetryInterval );
    97             }
   109             }
    98         }
   110         }
    99     }
   111     }
   100   
   112   
   101 // -----------------------------------------------------------------------------
   113 // -----------------------------------------------------------------------------