locationrequestmgmt/locationserver/src/EPos_CPosServer.cpp
branchRCL_3
changeset 52 29dbbeac905d
parent 0 9cfd9a3ee49c
child 54 0c2046328c85
equal deleted inserted replaced
39:a3482a8f15d8 52:29dbbeac905d
   132 /**
   132 /**
   133  * Symbian default constructor.
   133  * Symbian default constructor.
   134  */
   134  */
   135 void CPosServer::ConstructL() 
   135 void CPosServer::ConstructL() 
   136     {
   136     {
   137     TBool LocationManagementSupported = EFalse;
   137 #if defined __WINSCW__ && defined SYMBIAN_CELLMO_CENTRIC
       
   138 	TBool LocationManagementSupported = EFalse;
       
   139 #else
   138 #ifdef SYMBIAN_FEATURE_MANAGER
   140 #ifdef SYMBIAN_FEATURE_MANAGER
   139 	LocationManagementSupported = CFeatureDiscovery::IsFeatureSupportedL(NFeature::KLocationManagement);
   141 	TBool LocationManagementSupported = CFeatureDiscovery::IsFeatureSupportedL(NFeature::KLocationManagement);
   140 #else
   142 #else
   141 	__ASSERT_ALWAYS(EFalse, User::Invariant());	// Would happen on older versions of symbian OS if this code ever backported
   143 	__ASSERT_ALWAYS(EFalse, User::Invariant());	// Would happen on older versions of symbian OS if this code ever backported
   142 #endif      
   144 #endif // SYMBIAN_FEATURE_MANAGER
       
   145 #endif // __WINSCW__ && defined SYMBIAN_CELLMO_CENTRIC
       
   146 
       
   147 	
       
   148 #if defined __WINSCW__	
       
   149 	if(LocationManagementSupported && !FindRootProcess())
       
   150 		{
       
   151         _LIT(KLbsRootFileName, "\\sys\\bin\\lbsroot.exe");
       
   152 	    _LIT(KLbsRootProcessName, "lbsroot.exe");
       
   153 	    _LIT(KLbsCommandLine, "");
       
   154         RProcess process;
       
   155         TInt r=process.Create(KLbsRootProcessName,KLbsCommandLine);
       
   156         if (r!=KErrNone)
       
   157             {
       
   158             User::Leave(r);
       
   159             }
       
   160         TRequestStatus stat;
       
   161         process.Rendezvous(stat);
       
   162         if (stat!=KRequestPending)
       
   163             {
       
   164             process.Kill(0);
       
   165             }
       
   166         else
       
   167             {
       
   168             process.Resume();
       
   169             }
       
   170         User::WaitForRequest(stat);
       
   171         r=(process.ExitType()==EExitPanic) ? KErrGeneral : stat.Int();
       
   172         
       
   173         process.Close();
       
   174         if (r!=KErrNone)
       
   175             {
       
   176             User::Leave(r);
       
   177             }
       
   178 		}
       
   179 #endif // WINSCW
       
   180 
   143     // make sure that root process is running 
   181     // make sure that root process is running 
   144     if(LocationManagementSupported && !FindRootProcess())
   182     if(LocationManagementSupported && !FindRootProcess())
   145     	{
   183     	{
   146     	User::Leave(KErrNotReady);
   184     	User::Leave(KErrNotReady);
   147     	}
   185     	}
       
   186 	
   148     // Backup listener
   187     // Backup listener
   149     DEBUG_TRACE("Checking for backup or restore...", __LINE__)
   188     DEBUG_TRACE("Checking for backup or restore...", __LINE__)
   150     iBackupListener = CPosBackupListener::NewL();
   189     iBackupListener = CPosBackupListener::NewL();
   151     if (iBackupListener->IsBackupOperationOngoing())
   190     if (iBackupListener->IsBackupOperationOngoing())
   152         {
   191         {