1 /* |
1 /* |
2 * Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). |
2 * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
3 * All rights reserved. |
3 * All rights reserved. |
4 * This component and the accompanying materials are made available |
4 * This component and the accompanying materials are made available |
5 * under the terms of "Eclipse Public License v1.0" |
5 * under the terms of "Eclipse Public License v1.0" |
6 * which accompanies this distribution, and is available |
6 * which accompanies this distribution, and is available |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
28 #include "msmm_internal_def.h" |
28 #include "msmm_internal_def.h" |
29 #include <usb/hostms/msmmpolicypluginbase.h> |
29 #include <usb/hostms/msmmpolicypluginbase.h> |
30 #include <usb/hostms/srverr.h> |
30 #include <usb/hostms/srverr.h> |
31 |
31 |
32 #include <usb/usblogger.h> |
32 #include <usb/usblogger.h> |
33 #include "OstTraceDefinitions.h" |
33 |
34 #ifdef OST_TRACE_COMPILER_IN_USE |
34 #ifdef __FLOG_ACTIVE |
35 #include "subcommandsTraces.h" |
35 _LIT8(KLogComponent, "UsbHostMsmmServer"); |
36 #endif |
36 #endif |
37 |
|
38 |
37 |
39 /** |
38 /** |
40 * TRegisterInterface member functions |
39 * TRegisterInterface member functions |
41 */ |
40 */ |
42 TRegisterInterface::TRegisterInterface(THostMsSubCommandParam aParam): |
41 TRegisterInterface::TRegisterInterface(THostMsSubCommandParam aParam): |
43 TSubCommandBase(aParam), |
42 TSubCommandBase(aParam), |
44 iDeviceNode(NULL), |
43 iDeviceNode(NULL), |
45 iInterfaceNode(NULL) |
44 iInterfaceNode(NULL) |
46 { |
45 { |
47 OstTraceFunctionEntry0( TREGISTERINTERFACE_TREGISTERINTERFACE_CONS_ENTRY ); |
46 LOG_FUNC |
48 } |
47 } |
49 |
48 |
50 void TRegisterInterface::DoExecuteL() |
49 void TRegisterInterface::DoExecuteL() |
51 { |
50 { |
52 OstTraceFunctionEntry0( TREGISTERINTERFACE_DOEXECUTEL_ENTRY ); |
51 LOG_FUNC |
53 |
52 |
54 // Add new interface node into data engine |
53 // Add new interface node into data engine |
55 iInterfaceNode = iServer.Engine().AddUsbMsInterfaceL(iEvent.iDeviceId, |
54 iInterfaceNode = iServer.Engine().AddUsbMsInterfaceL(iEvent.iDeviceId, |
56 iEvent.iInterfaceNumber, iEvent.iInterfaceToken); |
55 iEvent.iInterfaceNumber, iEvent.iInterfaceToken); |
57 |
56 |
73 iMsConfig.iProtocolId = device.iProtocolId; |
72 iMsConfig.iProtocolId = device.iProtocolId; |
74 iMsConfig.iTransportId = device.iTransportId; |
73 iMsConfig.iTransportId = device.iTransportId; |
75 iMsConfig.iRemoteWakeup = device.iRemoteWakeup; |
74 iMsConfig.iRemoteWakeup = device.iRemoteWakeup; |
76 iMsConfig.iIsOtgClient = device.iIsOtgClient; |
75 iMsConfig.iIsOtgClient = device.iIsOtgClient; |
77 |
76 |
78 OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL, |
77 LOGTEXT2(_L8("\t iMsConfig.iProtocolId %d"), iMsConfig.iProtocolId); |
79 "iMsConfig.iProtocolId %d", iMsConfig.iProtocolId ); |
78 LOGTEXT2(_L8("\t iMsConfig.iTransportId %d"), iMsConfig.iTransportId); |
80 OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP1, |
79 LOGTEXT2(_L8("\t iMsConfig.iRemoteWakeup %d"), iMsConfig.iRemoteWakeup); |
81 "iMsConfig.iTransportId %d", iMsConfig.iTransportId ); |
80 LOGTEXT2(_L8("\t iMsConfig.iIsOtgClient %d"), iMsConfig.iIsOtgClient); |
82 OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP2, |
81 |
83 "iMsConfig.iRemoteWakeup %d", iMsConfig.iRemoteWakeup ); |
|
84 OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP3, |
|
85 "iMsConfig.iIsOtgClient %d", iMsConfig.iIsOtgClient ); |
|
86 |
|
87 TSuspensionPolicy suspensionPolicy; |
82 TSuspensionPolicy suspensionPolicy; |
88 iServer.PolicyPlugin()->GetSuspensionPolicy(suspensionPolicy); |
83 iServer.PolicyPlugin()->GetSuspensionPolicy(suspensionPolicy); |
89 iMsConfig.iOtgSuspendTime = suspensionPolicy.iOtgSuspendTime; |
84 iMsConfig.iOtgSuspendTime = suspensionPolicy.iOtgSuspendTime; |
90 iMsConfig.iStatusPollingInterval = suspensionPolicy.iStatusPollingInterval; |
85 iMsConfig.iStatusPollingInterval = suspensionPolicy.iStatusPollingInterval; |
91 OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP4, |
86 |
92 "iMsConfig.iStatusPollingInterval %d", iMsConfig.iStatusPollingInterval ); |
87 LOGTEXT2(_L8("\t iMsConfig.iStatusPollingInterval %d"), iMsConfig.iStatusPollingInterval); |
93 OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP5, |
88 LOGTEXT2(_L8("\t iMsConfig.iOtgSuspendTime %d"), iMsConfig.iOtgSuspendTime); |
94 "iMsConfig.iOtgSuspendTime %d", iMsConfig.iOtgSuspendTime ); |
89 |
95 |
|
96 iHandler.Start(); |
90 iHandler.Start(); |
97 iInterfaceNode->iUsbMsDevice.Add(iMsConfig, iHandler.Status()); |
91 iInterfaceNode->iUsbMsDevice.Add(iMsConfig, iHandler.Status()); |
98 OstTraceFunctionExit0( TREGISTERINTERFACE_DOEXECUTEL_EXIT ); |
|
99 } |
92 } |
100 |
93 |
101 void TRegisterInterface::HandleError(THostMsErrData& aData, TInt aError) |
94 void TRegisterInterface::HandleError(THostMsErrData& aData, TInt aError) |
102 { |
95 { |
103 OstTraceFunctionEntry0( TREGISTERINTERFACE_HANDLEERROR_ENTRY ); |
96 LOG_FUNC |
104 |
97 |
105 switch (aError) |
98 switch (aError) |
106 { |
99 { |
107 case KErrNoMemory: |
100 case KErrNoMemory: |
108 aData.iError = EHostMsErrOutOfMemory; |
101 aData.iError = EHostMsErrOutOfMemory; |
125 if (iInterfaceNode) |
118 if (iInterfaceNode) |
126 { |
119 { |
127 iServer.Engine().RemoveUsbMsNode(iInterfaceNode); |
120 iServer.Engine().RemoveUsbMsNode(iInterfaceNode); |
128 iInterfaceNode = NULL; |
121 iInterfaceNode = NULL; |
129 } |
122 } |
130 OstTraceFunctionExit0( TREGISTERINTERFACE_HANDLEERROR_EXIT ); |
|
131 } |
123 } |
132 |
124 |
133 void TRegisterInterface::DoAsyncCmdCompleteL() |
125 void TRegisterInterface::DoAsyncCmdCompleteL() |
134 { |
126 { |
135 OstTraceFunctionEntry0( TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL_ENTRY ); |
127 LOG_FUNC |
136 |
128 |
137 User::LeaveIfError(iHandler.Status().Int()); |
129 User::LeaveIfError(iHandler.Status().Int()); |
138 if(iInterfaceNode) |
130 if(iInterfaceNode) |
139 { |
131 { |
140 User::LeaveIfError( |
132 User::LeaveIfError( |
141 iInterfaceNode->iUsbMsDevice.GetNumLun(iMaxLogicalUnit)); |
133 iInterfaceNode->iUsbMsDevice.GetNumLun(iMaxLogicalUnit)); |
142 } |
134 } |
143 |
135 |
144 OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL, |
136 LOGTEXT2(_L8("\tGetNumLun %d"), iMaxLogicalUnit); |
145 "GetNumLun %d", iMaxLogicalUnit ); |
|
146 |
137 |
147 iCreator.CreateSubCmdForRetrieveDriveLetterL(iMaxLogicalUnit); |
138 iCreator.CreateSubCmdForRetrieveDriveLetterL(iMaxLogicalUnit); |
148 OstTraceFunctionExit0( TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL_EXIT ); |
|
149 } |
139 } |
150 |
140 |
151 void TRegisterInterface::DoCancelAsyncCmd() |
141 void TRegisterInterface::DoCancelAsyncCmd() |
152 { |
142 { |
153 OstTraceFunctionEntry0( TREGISTERINTERFACE_DOCANCELASYNCCMD_ENTRY ); |
143 LOG_FUNC |
154 |
144 |
155 if(iInterfaceNode) |
145 if(iInterfaceNode) |
156 { |
146 { |
157 iInterfaceNode->iUsbMsDevice.Remove(); |
147 iInterfaceNode->iUsbMsDevice.Remove(); |
158 iServer.Engine().RemoveUsbMsNode(iInterfaceNode); |
148 iServer.Engine().RemoveUsbMsNode(iInterfaceNode); |
159 iInterfaceNode = NULL; |
149 iInterfaceNode = NULL; |
160 } |
150 } |
161 OstTraceFunctionExit0( TREGISTERINTERFACE_DOCANCELASYNCCMD_EXIT ); |
|
162 } |
151 } |
163 |
152 |
164 /** |
153 /** |
165 * TRetrieveDriveLetter member functions |
154 * TRetrieveDriveLetter member functions |
166 */ |
155 */ |
169 THostMsSubCommandParam& aParameter, TInt aLuNumber): |
158 THostMsSubCommandParam& aParameter, TInt aLuNumber): |
170 TSubCommandBase(aParameter), |
159 TSubCommandBase(aParameter), |
171 iLuNumber(aLuNumber), |
160 iLuNumber(aLuNumber), |
172 iDrive(0) |
161 iDrive(0) |
173 { |
162 { |
174 OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_TRETRIEVEDRIVELETTER_CONS_ENTRY ); |
163 LOG_FUNC |
175 } |
164 } |
176 |
165 |
177 void TRetrieveDriveLetter::DoExecuteL() |
166 void TRetrieveDriveLetter::DoExecuteL() |
178 { |
167 { |
179 OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOEXECUTEL_ENTRY ); |
168 LOG_FUNC |
180 |
169 |
181 TUsbMsDevice* deviceEntry(NULL); |
170 TUsbMsDevice* deviceEntry(NULL); |
182 deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId); |
171 deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId); |
183 if (!deviceEntry) |
172 if (!deviceEntry) |
184 { |
173 { |
203 iHandler.Start(); |
192 iHandler.Start(); |
204 TRequestStatus& status = iHandler.Status(); |
193 TRequestStatus& status = iHandler.Status(); |
205 iServer.PolicyPlugin()->RetrieveDriveLetterL( |
194 iServer.PolicyPlugin()->RetrieveDriveLetterL( |
206 iDrive, iRequestData, status); |
195 iDrive, iRequestData, status); |
207 } |
196 } |
208 OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOEXECUTEL_EXIT ); |
|
209 } |
197 } |
210 |
198 |
211 void TRetrieveDriveLetter::HandleError(THostMsErrData& aData, TInt aError) |
199 void TRetrieveDriveLetter::HandleError(THostMsErrData& aData, TInt aError) |
212 { |
200 { |
213 OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_HANDLEERROR_ENTRY ); |
201 LOG_FUNC |
214 |
202 |
215 switch (aError) |
203 switch (aError) |
216 { |
204 { |
217 case KErrArgument: |
205 case KErrArgument: |
218 aData.iError = EHostMsErrInvalidParameter; |
206 aData.iError = EHostMsErrInvalidParameter; |
228 } |
216 } |
229 aData.iE32Error = aError; |
217 aData.iE32Error = aError; |
230 aData.iManufacturerString = iRequestData.iManufacturerString; |
218 aData.iManufacturerString = iRequestData.iManufacturerString; |
231 aData.iProductString = iRequestData.iProductString; |
219 aData.iProductString = iRequestData.iProductString; |
232 aData.iDriveName = iDrive; |
220 aData.iDriveName = iDrive; |
233 OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_HANDLEERROR_EXIT ); |
|
234 } |
221 } |
235 |
222 |
236 void TRetrieveDriveLetter::DoAsyncCmdCompleteL() |
223 void TRetrieveDriveLetter::DoAsyncCmdCompleteL() |
237 { |
224 { |
238 OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOASYNCCMDCOMPLETEL_ENTRY ); |
225 LOG_FUNC |
239 |
226 |
240 User::LeaveIfError(iHandler.Status().Int()); |
227 User::LeaveIfError(iHandler.Status().Int()); |
241 |
228 |
242 iCreator.CreateSubCmdForMountingLogicalUnitL(iDrive, iLuNumber); |
229 iCreator.CreateSubCmdForMountingLogicalUnitL(iDrive, iLuNumber); |
243 OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOASYNCCMDCOMPLETEL_EXIT ); |
|
244 } |
230 } |
245 |
231 |
246 void TRetrieveDriveLetter::DoCancelAsyncCmd() |
232 void TRetrieveDriveLetter::DoCancelAsyncCmd() |
247 { |
233 { |
248 OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOCANCELASYNCCMD_ENTRY ); |
234 LOG_FUNC |
249 |
235 |
250 iServer.PolicyPlugin()->CancelRetrieveDriveLetter(); |
236 iServer.PolicyPlugin()->CancelRetrieveDriveLetter(); |
251 OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOCANCELASYNCCMD_EXIT ); |
|
252 } |
237 } |
253 |
238 |
254 /** |
239 /** |
255 * TMountLogicalUnit member functions |
240 * TMountLogicalUnit member functions |
256 */ |
241 */ |
259 TText aDrive, TInt aLuNumber): |
244 TText aDrive, TInt aLuNumber): |
260 TSubCommandBase(aParameter), |
245 TSubCommandBase(aParameter), |
261 iDrive(aDrive), |
246 iDrive(aDrive), |
262 iLuNumber(aLuNumber) |
247 iLuNumber(aLuNumber) |
263 { |
248 { |
264 OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_TMOUNTLOGICALUNIT_CONS_ENTRY ); |
249 LOG_FUNC |
265 |
250 |
266 iIsKeyCommand = EFalse; |
251 iIsKeyCommand = EFalse; |
267 OstTraceFunctionExit0( TMOUNTLOGICALUNIT_TMOUNTLOGICALUNIT_CONS_EXIT ); |
|
268 } |
252 } |
269 |
253 |
270 void TMountLogicalUnit::DoExecuteL() |
254 void TMountLogicalUnit::DoExecuteL() |
271 { |
255 { |
272 OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY ); |
256 LOG_FUNC |
273 |
|
274 TInt ret(KErrNone); |
257 TInt ret(KErrNone); |
275 RFs& fs = iServer.FileServerSession(); |
258 RFs& fs = iServer.FileServerSession(); |
276 |
259 |
277 TInt driveNum; |
260 TInt driveNum; |
278 User::LeaveIfError(fs.CharToDrive(iDrive, driveNum)); |
261 User::LeaveIfError(fs.CharToDrive(iDrive, driveNum)); |
292 |
275 |
293 ret = interface->iUsbMsDevice.MountLun(iLuNumber, driveNum); |
276 ret = interface->iUsbMsDevice.MountLun(iLuNumber, driveNum); |
294 if ((KErrNone != ret) && (KErrAlreadyExists != ret) |
277 if ((KErrNone != ret) && (KErrAlreadyExists != ret) |
295 && (KErrNotReady != ret)) |
278 && (KErrNotReady != ret)) |
296 { |
279 { |
297 if (KErrAbort != ret) |
280 User::Leave (ret); |
298 User::Leave (ret); |
|
299 } |
281 } |
300 |
282 |
301 iHandler.Start(); |
283 iHandler.Start(); |
302 iHandler.Complete(); |
284 iHandler.Complete(); |
303 OstTraceFunctionExit0( TMOUNTLOGICALUNIT_DOEXECUTEL_EXIT ); |
|
304 } |
285 } |
305 |
286 |
306 void TMountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError) |
287 void TMountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError) |
307 { |
288 { |
308 OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_HANDLEERROR_ENTRY ); |
289 LOG_FUNC |
309 |
290 |
310 switch (aError) |
291 switch (aError) |
311 { |
292 { |
312 case KErrNoMemory: |
293 case KErrNoMemory: |
313 aData.iError = EHostMsErrOutOfMemory; |
294 aData.iError = EHostMsErrOutOfMemory; |
353 { |
334 { |
354 aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString); |
335 aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString); |
355 aData.iProductString.Copy(deviceNode->iDevice.iProductString); |
336 aData.iProductString.Copy(deviceNode->iDevice.iProductString); |
356 } |
337 } |
357 aData.iDriveName = iDrive; |
338 aData.iDriveName = iDrive; |
358 OstTraceFunctionExit0( TMOUNTLOGICALUNIT_HANDLEERROR_EXIT ); |
|
359 } |
339 } |
360 |
340 |
361 void TMountLogicalUnit::DoAsyncCmdCompleteL() |
341 void TMountLogicalUnit::DoAsyncCmdCompleteL() |
362 { |
342 { |
363 OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_ENTRY ); |
343 LOG_FUNC |
364 |
344 |
365 iServer.Engine().AddUsbMsLogicalUnitL( |
345 iServer.Engine().AddUsbMsLogicalUnitL( |
366 iEvent.iDeviceId, iEvent.iInterfaceNumber, |
346 iEvent.iDeviceId, iEvent.iInterfaceNumber, |
367 iLuNumber, iDrive); |
347 iLuNumber, iDrive); |
368 iCreator.CreateSubCmdForSaveLatestMountInfoL(iDrive, iLuNumber); |
348 iCreator.CreateSubCmdForSaveLatestMountInfoL(iDrive, iLuNumber); |
369 OstTraceFunctionExit0( TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_EXIT ); |
|
370 } |
349 } |
371 |
350 |
372 /** |
351 /** |
373 * TSaveLatestMountInfo member functions |
352 * TSaveLatestMountInfo member functions |
374 */ |
353 */ |
378 TText aDrive, TInt aLuNumber): |
357 TText aDrive, TInt aLuNumber): |
379 TSubCommandBase(aParameter), |
358 TSubCommandBase(aParameter), |
380 iDrive(aDrive), |
359 iDrive(aDrive), |
381 iLuNumber(aLuNumber) |
360 iLuNumber(aLuNumber) |
382 { |
361 { |
383 OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_TSAVELATESTMOUNTINFO_CONS_ENTRY ); |
362 LOG_FUNC |
384 |
363 |
385 iIsKeyCommand = EFalse; |
364 iIsKeyCommand = EFalse; |
386 OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_TSAVELATESTMOUNTINFO_CONS_EXIT ); |
|
387 } |
365 } |
388 |
366 |
389 void TSaveLatestMountInfo::DoExecuteL() |
367 void TSaveLatestMountInfo::DoExecuteL() |
390 { |
368 { |
391 OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOEXECUTEL_ENTRY ); |
369 LOG_FUNC |
392 |
370 |
393 TUsbMsDevice* deviceEntry(NULL); |
371 TUsbMsDevice* deviceEntry(NULL); |
394 deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId); |
372 deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId); |
395 if (!deviceEntry) |
373 if (!deviceEntry) |
396 { |
374 { |
397 User::Leave(KErrArgument); |
375 User::Leave(KErrArgument); |
418 iHandler.Start(); |
396 iHandler.Start(); |
419 TRequestStatus& status = iHandler.Status(); |
397 TRequestStatus& status = iHandler.Status(); |
420 |
398 |
421 iServer.PolicyPlugin()->SaveLatestMountInfoL(iRecord, status); |
399 iServer.PolicyPlugin()->SaveLatestMountInfoL(iRecord, status); |
422 } |
400 } |
423 OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOEXECUTEL_EXIT ); |
|
424 } |
401 } |
425 |
402 |
426 void TSaveLatestMountInfo::DoAsyncCmdCompleteL() |
403 void TSaveLatestMountInfo::DoAsyncCmdCompleteL() |
427 { |
404 { |
428 OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOASYNCCMDCOMPLETEL_ENTRY ); |
405 LOG_FUNC |
|
406 User::LeaveIfError(iHandler.Status().Int()); |
|
407 } |
|
408 |
|
409 void TSaveLatestMountInfo::HandleError(THostMsErrData& aData, TInt aError) |
|
410 { |
|
411 LOG_FUNC |
429 |
412 |
430 User::LeaveIfError(iHandler.Status().Int()); |
|
431 OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOASYNCCMDCOMPLETEL_EXIT ); |
|
432 } |
|
433 |
|
434 void TSaveLatestMountInfo::HandleError(THostMsErrData& aData, TInt aError) |
|
435 { |
|
436 OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_HANDLEERROR_ENTRY ); |
|
437 |
|
438 switch (aError) |
413 switch (aError) |
439 { |
414 { |
440 case KErrNoMemory: |
415 case KErrNoMemory: |
441 aData.iError = EHostMsErrOutOfMemory; |
416 aData.iError = EHostMsErrOutOfMemory; |
442 break; |
417 break; |
448 } |
423 } |
449 aData.iE32Error = aError; |
424 aData.iE32Error = aError; |
450 aData.iManufacturerString = iRecord.iLogicUnit.iManufacturerString; |
425 aData.iManufacturerString = iRecord.iLogicUnit.iManufacturerString; |
451 aData.iProductString = iRecord.iLogicUnit.iProductString; |
426 aData.iProductString = iRecord.iLogicUnit.iProductString; |
452 aData.iDriveName = iDrive; |
427 aData.iDriveName = iDrive; |
453 OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_HANDLEERROR_EXIT ); |
|
454 } |
428 } |
455 |
429 |
456 void TSaveLatestMountInfo::DoCancelAsyncCmd() |
430 void TSaveLatestMountInfo::DoCancelAsyncCmd() |
457 { |
431 { |
458 OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOCANCELASYNCCMD_ENTRY ); |
432 LOG_FUNC |
459 |
433 |
460 iServer.PolicyPlugin()->CancelSaveLatestMountInfo(); |
434 iServer.PolicyPlugin()->CancelSaveLatestMountInfo(); |
461 OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOCANCELASYNCCMD_EXIT ); |
|
462 } |
435 } |
463 |
436 |
464 |
437 |
465 /** |
438 /** |
466 * TDeregisterInterface member functions |
439 * TDeregisterInterface member functions |
473 iInterfaceNumber(aInterfaceNumber), |
446 iInterfaceNumber(aInterfaceNumber), |
474 iInterfaceToken(aInterfaceToken), |
447 iInterfaceToken(aInterfaceToken), |
475 iDeviceNode(NULL), |
448 iDeviceNode(NULL), |
476 iInterfaceNode(NULL) |
449 iInterfaceNode(NULL) |
477 { |
450 { |
478 OstTraceFunctionEntry0( TDEREGISTERINTERFACE_TDEREGISTERINTERFACE_CONS_ENTRY ); |
451 LOG_FUNC |
479 } |
452 } |
480 |
453 |
481 void TDeregisterInterface::DoExecuteL() |
454 void TDeregisterInterface::DoExecuteL() |
482 { |
455 { |
483 OstTraceFunctionEntry0( TDEREGISTERINTERFACE_DOEXECUTEL_ENTRY ); |
456 LOG_FUNC |
484 |
457 |
485 iDeviceNode = iServer.Engine().SearchDevice(iEvent.iDeviceId); |
458 iDeviceNode = iServer.Engine().SearchDevice(iEvent.iDeviceId); |
486 if (!iDeviceNode) |
459 if (!iDeviceNode) |
487 { |
460 { |
488 User::Leave(KErrArgument); |
461 User::Leave(KErrArgument); |
489 } |
462 } |
546 THostMsSubCommandParam& aParameter, |
517 THostMsSubCommandParam& aParameter, |
547 const TUsbMsLogicalUnit& aLogicalUnit): |
518 const TUsbMsLogicalUnit& aLogicalUnit): |
548 TSubCommandBase(aParameter), |
519 TSubCommandBase(aParameter), |
549 iLogicalUnit(aLogicalUnit) |
520 iLogicalUnit(aLogicalUnit) |
550 { |
521 { |
551 OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_TDISMOUNTLOGICALUNIT_CONS_ENTRY ); |
522 LOG_FUNC |
552 } |
523 } |
553 |
524 |
554 void TDismountLogicalUnit::DoExecuteL() |
525 void TDismountLogicalUnit::DoExecuteL() |
555 { |
526 { |
556 OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY ); |
527 LOG_FUNC |
557 |
|
558 RFs& fs = iServer.FileServerSession(); |
528 RFs& fs = iServer.FileServerSession(); |
559 TInt driveNum; |
529 TInt driveNum; |
560 fs.CharToDrive(iLogicalUnit.iDrive, driveNum); |
530 fs.CharToDrive(iLogicalUnit.iDrive, driveNum); |
561 |
531 |
562 TUsbMsInterface* interface(NULL); |
532 TUsbMsInterface* interface(NULL); |
608 THostMsSubCommandParam& aParameter, |
576 THostMsSubCommandParam& aParameter, |
609 TMsmmNodeBase* aNodeToBeRemoved): |
577 TMsmmNodeBase* aNodeToBeRemoved): |
610 TSubCommandBase(aParameter), |
578 TSubCommandBase(aParameter), |
611 iNodeToBeRemoved(aNodeToBeRemoved) |
579 iNodeToBeRemoved(aNodeToBeRemoved) |
612 { |
580 { |
613 OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_TREMOVEUSBMSDEVICENODE_CONS_ENTRY ); |
581 LOG_FUNC |
614 } |
582 } |
615 |
583 |
616 void TRemoveUsbMsDeviceNode::DoExecuteL() |
584 void TRemoveUsbMsDeviceNode::DoExecuteL() |
617 { |
585 { |
618 OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_DOEXECUTEL_ENTRY ); |
586 LOG_FUNC |
619 |
|
620 if(iNodeToBeRemoved) |
587 if(iNodeToBeRemoved) |
621 { |
588 { |
622 iServer.Engine().RemoveUsbMsNode(iNodeToBeRemoved); |
589 iServer.Engine().RemoveUsbMsNode(iNodeToBeRemoved); |
623 iNodeToBeRemoved = NULL; |
590 iNodeToBeRemoved = NULL; |
624 } |
591 } |