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 { |