26 #include "BrowserAppDocument.h" |
26 #include "BrowserAppDocument.h" |
27 #include "BrowserAppUi.h" |
27 #include "BrowserAppUi.h" |
28 #include "eikenv.h" |
28 #include "eikenv.h" |
29 #include "eikappui.h" |
29 #include "eikappui.h" |
30 #include "logger.h" |
30 #include "logger.h" |
31 |
31 #include <SysUtil.h> |
32 // ----------------------------------------------------------------------------- |
32 |
33 // CLauncherServerBase::CBrowserLauncherService() |
33 const TInt KMinimumCDriveDiskSpace = 512 * 1024; |
34 // ----------------------------------------------------------------------------- |
34 |
35 // |
35 // ----------------------------------------------------------------------------- |
36 EXPORT_C CLauncherServerBase::CLauncherServerBase() |
36 // CLauncherServerBase::CBrowserLauncherService() |
|
37 // ----------------------------------------------------------------------------- |
|
38 // |
|
39 EXPORT_C CLauncherServerBase::CLauncherServerBase() |
37 { |
40 { |
38 LOG_ENTERFN( "CLauncherServerBase::CLauncherServerBase" ); |
41 LOG_ENTERFN( "CLauncherServerBase::CLauncherServerBase" ); |
39 |
42 |
40 iClientBuffer = NULL; |
43 iClientBuffer = NULL; |
41 CEikonEnv* browserAppEnv = CEikonEnv::Static(); |
44 CEikonEnv* browserAppEnv = CEikonEnv::Static(); |
42 if ( browserAppEnv ) |
45 if ( browserAppEnv ) |
43 { |
46 { |
44 iBrowserAppUi = ( CBrowserAppUi* ) browserAppEnv->EikAppUi(); |
47 iBrowserAppUi = ( CBrowserAppUi* ) browserAppEnv->EikAppUi(); |
45 if ( iBrowserAppUi ) |
48 if ( iBrowserAppUi ) |
46 { |
49 { |
47 iBrowserDocument = ( CBrowserAppDocument* ) iBrowserAppUi->Document(); |
50 iBrowserDocument = ( CBrowserAppDocument* ) iBrowserAppUi->Document(); |
48 } |
51 } |
49 } |
52 } |
50 } |
53 } |
51 |
54 |
52 // ----------------------------------------------------------------------------- |
55 // ----------------------------------------------------------------------------- |
53 // CLauncherServerBase::ServiceL() |
56 // CLauncherServerBase::ServiceL() |
54 // ----------------------------------------------------------------------------- |
57 // ----------------------------------------------------------------------------- |
55 // |
58 // |
56 EXPORT_C void CLauncherServerBase::ServiceL( const RMessage2& aMessage ) |
59 EXPORT_C void CLauncherServerBase::ServiceL( const RMessage2& aMessage ) |
57 { |
60 { |
58 LOG_ENTERFN( "CLauncherServerBase::ServiceL" ); |
61 LOG_ENTERFN( "CLauncherServerBase::ServiceL" ); |
59 LOG_WRITE_FORMAT(" Function: %d", aMessage.Function()); |
62 LOG_WRITE_FORMAT(" Function: %d", aMessage.Function()); |
60 |
63 |
61 switch ( aMessage.Function() ) |
64 switch ( aMessage.Function() ) |
62 { |
65 { |
63 case ELauncherSendSync : |
66 case ELauncherSendSync : |
64 { |
67 { |
65 __ASSERT_DEBUG(iMySyncMessage.Handle()==0, User::Panic(_L("Launcher"),2)); |
68 __ASSERT_DEBUG(iMySyncMessage.Handle()==0, User::Panic(_L("Launcher"),2)); |
120 // ----------------------------------------------------------------------------- |
123 // ----------------------------------------------------------------------------- |
121 // |
124 // |
122 void CLauncherServerBase::HandleMessageSyncL() |
125 void CLauncherServerBase::HandleMessageSyncL() |
123 { |
126 { |
124 LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncL" ); |
127 LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncL" ); |
125 |
128 |
126 // Client parameters. These will be filled by function |
129 // Client parameters. These will be filled by function |
127 // UnPackLauncherDataL()... |
130 // UnPackLauncherDataL()... |
128 TUid embeddingApplicationUid; |
131 TUid embeddingApplicationUid; |
129 TBrowserOverriddenSettings settings; |
132 TBrowserOverriddenSettings settings; |
130 TBrowserOverriddenSettings* pSettings; |
133 TBrowserOverriddenSettings* pSettings; |
131 TInt folderUid; |
134 TInt folderUid; |
132 TPtrC seamlessParam; |
135 TPtrC seamlessParam; |
133 TBool isContentHandlerRegistered( EFalse ); |
136 TBool isContentHandlerRegistered( EFalse ); |
134 TBool isOverridenSettings( EFalse ); |
137 TBool isOverridenSettings( EFalse ); |
135 |
138 |
136 TInt result; // The result of the processed data. |
139 TInt result; // The result of the processed data. |
137 |
140 |
138 // Read the recieved data buffer |
141 // Read the recieved data buffer |
139 HBufC8* incomingDataBuffer = HBufC8::NewMaxLC( iMySyncMessage.GetDesLengthL( 0 ) ); |
142 HBufC8* incomingDataBuffer = HBufC8::NewMaxLC( iMySyncMessage.GetDesLengthL( 0 ) ); |
140 TPtr8 incomingDataPointer = incomingDataBuffer->Des( ); |
143 TPtr8 incomingDataPointer = incomingDataBuffer->Des( ); |
141 iMySyncMessage.ReadL( 0, incomingDataPointer ); |
144 iMySyncMessage.ReadL( 0, incomingDataPointer ); |
142 LOG_WRITE(" ReadL OK"); |
145 LOG_WRITE(" ReadL OK"); |
143 |
146 |
144 // Unpack the recieved data buffer |
147 // Unpack the recieved data buffer |
145 pSettings = &settings; |
148 pSettings = &settings; |
146 TLauncherPackageUtils::UnPackLauncherDataL( embeddingApplicationUid, |
149 TLauncherPackageUtils::UnPackLauncherDataL( embeddingApplicationUid, |
147 pSettings, |
150 pSettings, |
148 folderUid, |
151 folderUid, |
149 seamlessParam, |
152 seamlessParam, |
150 incomingDataPointer, |
153 incomingDataPointer, |
151 isContentHandlerRegistered, |
154 isContentHandlerRegistered, |
152 isOverridenSettings ); |
155 isOverridenSettings ); |
153 |
156 |
154 // Process the unpacked data. |
157 // Process the unpacked data. |
155 result = ProcessMessageSyncL( embeddingApplicationUid, |
158 result = ProcessMessageSyncL( embeddingApplicationUid, |
156 settings, |
159 settings, |
157 folderUid, |
160 folderUid, |
158 seamlessParam, |
161 seamlessParam, |
159 isContentHandlerRegistered ); |
162 isContentHandlerRegistered ); |
160 |
163 |
161 // Cleanup, and complete the client`s request. |
164 // Cleanup, and complete the client`s request. |
162 CleanupStack::PopAndDestroy( ); // incomingDataBuffer |
165 CleanupStack::PopAndDestroy( ); // incomingDataBuffer |
163 iMySyncMessage.Complete( result ); |
166 iMySyncMessage.Complete( result ); |
164 } |
167 } |
165 |
168 |
166 // ----------------------------------------------------------------------------- |
169 // ----------------------------------------------------------------------------- |
167 // CLauncherServerBase::HandleMessageASyncL() |
170 // CLauncherServerBase::HandleMessageASyncL() |
168 // ----------------------------------------------------------------------------- |
171 // ----------------------------------------------------------------------------- |
169 // |
172 // |
170 void CLauncherServerBase::HandleMessageASyncL() |
173 void CLauncherServerBase::HandleMessageASyncL() |
171 { |
174 { |
172 LOG_ENTERFN( "CLauncherServerBase::HandleMessageASyncL" ); |
175 LOG_ENTERFN( "CLauncherServerBase::HandleMessageASyncL" ); |
173 |
176 |
|
177 // Check for ciritical disk space if starts in embeded mode |
|
178 RFs fs; |
|
179 User::LeaveIfError(fs.Connect()); |
|
180 TInt drive( EDriveC ); |
|
181 TBool isSpace( EFalse ); |
|
182 TInt err( KErrNone ); |
|
183 TRAP( err, isSpace = !SysUtil::DiskSpaceBelowCriticalLevelL(&fs, KMinimumCDriveDiskSpace, drive )); |
|
184 fs.Close(); |
|
185 if (!isSpace) |
|
186 User::Leave(KErrDiskFull); |
|
187 |
174 // Client parameters. These will be filled by function |
188 // Client parameters. These will be filled by function |
175 // UnPackLauncherDataL()... |
189 // UnPackLauncherDataL()... |
176 TUid embeddingApplicationUid; |
190 TUid embeddingApplicationUid; |
177 TBrowserOverriddenSettings settings; |
191 TBrowserOverriddenSettings settings; |
178 TBrowserOverriddenSettings* pSettings; |
192 TBrowserOverriddenSettings* pSettings; |
179 TInt folderUid; |
193 TInt folderUid; |
180 TPtrC seamlessParam; |
194 TPtrC seamlessParam; |
181 TBool isContentHandlerRegistered( EFalse ); |
195 TBool isContentHandlerRegistered( EFalse ); |
182 TBool isOverridenSettings( EFalse ); |
196 TBool isOverridenSettings( EFalse ); |
183 |
197 |
184 // Read the recieved data buffer |
198 // Read the recieved data buffer |
185 HBufC8* incomingDataBuffer = HBufC8::NewMaxLC( iMyAsyncMessage.GetDesLengthL( 0 ) ); |
199 HBufC8* incomingDataBuffer = HBufC8::NewMaxLC( iMyAsyncMessage.GetDesLengthL( 0 ) ); |
186 TPtr8 incomingDataPointer = incomingDataBuffer->Des( ); |
200 TPtr8 incomingDataPointer = incomingDataBuffer->Des( ); |
187 iMyAsyncMessage.ReadL( 0, incomingDataPointer ); |
201 iMyAsyncMessage.ReadL( 0, incomingDataPointer ); |
188 LOG_WRITE(" ReadL OK"); |
202 LOG_WRITE(" ReadL OK"); |
189 |
203 |
190 // Unpack the recieved data buffer |
204 // Unpack the recieved data buffer |
191 pSettings = &settings; |
205 pSettings = &settings; |
192 TLauncherPackageUtils::UnPackLauncherDataL( embeddingApplicationUid, |
206 TLauncherPackageUtils::UnPackLauncherDataL( embeddingApplicationUid, |
193 pSettings, |
207 pSettings, |
194 folderUid, |
208 folderUid, |
195 seamlessParam, |
209 seamlessParam, |
196 incomingDataPointer, |
210 incomingDataPointer, |
197 isContentHandlerRegistered, |
211 isContentHandlerRegistered, |
198 isOverridenSettings ); |
212 isOverridenSettings ); |
199 |
213 |
200 // Process the unpacked data. |
214 // Process the unpacked data. |
201 ProcessMessageASyncL( embeddingApplicationUid, |
215 ProcessMessageASyncL( embeddingApplicationUid, |
202 settings, |
216 settings, |
203 folderUid, |
217 folderUid, |
204 seamlessParam, |
218 seamlessParam, |
205 isContentHandlerRegistered, |
219 isContentHandlerRegistered, |
206 isOverridenSettings ); |
220 isOverridenSettings ); |
207 |
221 |
208 // Cleanup. |
222 // Cleanup. |
209 CleanupStack::PopAndDestroy( ); // incomingDataBuffer |
223 CleanupStack::PopAndDestroy( ); // incomingDataBuffer |
210 } |
224 } |
211 |
225 |
212 void CLauncherServerBase::HandleMessageSyncBufferL() |
226 void CLauncherServerBase::HandleMessageSyncBufferL() |
213 { |
227 { |
214 LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncBufferL" ); |
228 LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncBufferL" ); |
215 |
229 |
216 ProcessMessageSyncBufferL(); |
230 ProcessMessageSyncBufferL(); |
217 // And complete client`s request. |
231 // And complete client`s request. |
218 iMySyncMessage.Complete( KErrNone ); |
232 iMySyncMessage.Complete( KErrNone ); |
219 } |
233 } |
220 |
234 |
221 void CLauncherServerBase::HandleMessageSyncBoolsL() |
235 void CLauncherServerBase::HandleMessageSyncBoolsL() |
222 { |
236 { |
223 LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncBoolsL" ); |
237 LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncBoolsL" ); |
224 |
238 |
225 TBool clientWantsToContinue = iMySyncMessage.Int0(); |
239 TBool clientWantsToContinue = iMySyncMessage.Int0(); |
226 TBool wasContentHandled = iMySyncMessage.Int1(); |
240 TBool wasContentHandled = iMySyncMessage.Int1(); |
227 ProcessBoolsL( clientWantsToContinue, wasContentHandled ); |
241 ProcessBoolsL( clientWantsToContinue, wasContentHandled ); |
228 // And complete client`s request. |
242 // And complete client`s request. |
229 iMySyncMessage.Complete( KErrNone ); |
243 iMySyncMessage.Complete( KErrNone ); |
230 } |
244 } |
231 |
245 |
232 void CLauncherServerBase::HandleBrowserExit() |
246 void CLauncherServerBase::HandleBrowserExit() |
233 { |
247 { |
234 LOG_ENTERFN( "CLauncherServerBase::HandleBrowserExit" ); |
248 LOG_ENTERFN( "CLauncherServerBase::HandleBrowserExit" ); |
235 DoBrowserExit( ); |
249 DoBrowserExit( ); |
236 } |
250 } |
237 |
251 |
238 /* Capability check will come later... |
252 /* Capability check will come later... |
239 CLauncherServerBase::CLauncherServerBase(TCapability aClientReqs = ECapability_None):iClientReqs(aClientReqs) |
253 CLauncherServerBase::CLauncherServerBase(TCapability aClientReqs = ECapability_None):iClientReqs(aClientReqs) |
240 { |
254 { |
241 } |
255 } |
242 |
256 |