usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommands.cpp
branchRCL_3
changeset 15 f92a4f87e424
parent 0 c9bc50fca66e
child 16 012cc2ee6408
equal deleted inserted replaced
14:d3e8e7d462dd 15:f92a4f87e424
     1 /*
     1 /*
     2 * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2008-2010 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 
    33 #include "OstTraceDefinitions.h"
    34 #ifdef __FLOG_ACTIVE
    34 #ifdef OST_TRACE_COMPILER_IN_USE
    35 _LIT8(KLogComponent, "UsbHostMsmmServer");
    35 #include "subcommandsTraces.h"
    36 #endif
    36 #endif
       
    37 
    37 
    38 
    38 /**
    39 /**
    39  *  TRegisterInterface member functions
    40  *  TRegisterInterface member functions
    40  */
    41  */
    41 TRegisterInterface::TRegisterInterface(THostMsSubCommandParam aParam):
    42 TRegisterInterface::TRegisterInterface(THostMsSubCommandParam aParam):
    42 TSubCommandBase(aParam),
    43 TSubCommandBase(aParam),
    43 iDeviceNode(NULL),
    44 iDeviceNode(NULL),
    44 iInterfaceNode(NULL)
    45 iInterfaceNode(NULL)
    45     {
    46     {
    46     LOG_FUNC
    47     OstTraceFunctionEntry0( TREGISTERINTERFACE_TREGISTERINTERFACE_CONS_ENTRY );
    47     }
    48     }
    48 
    49 
    49 void TRegisterInterface::DoExecuteL()
    50 void TRegisterInterface::DoExecuteL()
    50     {
    51     {
    51     LOG_FUNC
    52     OstTraceFunctionEntry0( TREGISTERINTERFACE_DOEXECUTEL_ENTRY );
    52       
    53       
    53     // Add new interface node into data engine
    54     // Add new interface node into data engine
    54     iInterfaceNode = iServer.Engine().AddUsbMsInterfaceL(iEvent.iDeviceId, 
    55     iInterfaceNode = iServer.Engine().AddUsbMsInterfaceL(iEvent.iDeviceId, 
    55             iEvent.iInterfaceNumber, iEvent.iInterfaceToken);
    56             iEvent.iInterfaceNumber, iEvent.iInterfaceToken);
    56     
    57     
    72     iMsConfig.iProtocolId = device.iProtocolId;
    73     iMsConfig.iProtocolId = device.iProtocolId;
    73     iMsConfig.iTransportId = device.iTransportId;
    74     iMsConfig.iTransportId = device.iTransportId;
    74     iMsConfig.iRemoteWakeup = device.iRemoteWakeup;
    75     iMsConfig.iRemoteWakeup = device.iRemoteWakeup;
    75     iMsConfig.iIsOtgClient = device.iIsOtgClient;
    76     iMsConfig.iIsOtgClient = device.iIsOtgClient;
    76 
    77 
    77     LOGTEXT2(_L8("\t iMsConfig.iProtocolId %d"), iMsConfig.iProtocolId);
    78     OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL, 
    78     LOGTEXT2(_L8("\t iMsConfig.iTransportId %d"), iMsConfig.iTransportId);
    79             "iMsConfig.iProtocolId %d", iMsConfig.iProtocolId );
    79     LOGTEXT2(_L8("\t iMsConfig.iRemoteWakeup %d"), iMsConfig.iRemoteWakeup);
    80     OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP1, 
    80     LOGTEXT2(_L8("\t iMsConfig.iIsOtgClient %d"), iMsConfig.iIsOtgClient);
    81             "iMsConfig.iTransportId %d", iMsConfig.iTransportId );
    81 
    82     OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP2, 
       
    83             "iMsConfig.iRemoteWakeup %d", iMsConfig.iRemoteWakeup );
       
    84     OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP3, 
       
    85             "iMsConfig.iIsOtgClient %d", iMsConfig.iIsOtgClient );
       
    86             
    82     TSuspensionPolicy suspensionPolicy;
    87     TSuspensionPolicy suspensionPolicy;
    83     iServer.PolicyPlugin()->GetSuspensionPolicy(suspensionPolicy);
    88     iServer.PolicyPlugin()->GetSuspensionPolicy(suspensionPolicy);
    84     iMsConfig.iOtgSuspendTime = suspensionPolicy.iOtgSuspendTime;
    89     iMsConfig.iOtgSuspendTime = suspensionPolicy.iOtgSuspendTime;
    85     iMsConfig.iStatusPollingInterval = suspensionPolicy.iStatusPollingInterval;
    90     iMsConfig.iStatusPollingInterval = suspensionPolicy.iStatusPollingInterval;
    86 
    91     OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP4, 
    87     LOGTEXT2(_L8("\t iMsConfig.iStatusPollingInterval %d"), iMsConfig.iStatusPollingInterval);
    92             "iMsConfig.iStatusPollingInterval %d", iMsConfig.iStatusPollingInterval );
    88     LOGTEXT2(_L8("\t iMsConfig.iOtgSuspendTime %d"), iMsConfig.iOtgSuspendTime);
    93     OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP5, 
    89 
    94             "iMsConfig.iOtgSuspendTime %d", iMsConfig.iOtgSuspendTime );
       
    95  
    90     iHandler.Start();
    96     iHandler.Start();
    91     iInterfaceNode->iUsbMsDevice.Add(iMsConfig, iHandler.Status());
    97     iInterfaceNode->iUsbMsDevice.Add(iMsConfig, iHandler.Status());
       
    98     OstTraceFunctionExit0( TREGISTERINTERFACE_DOEXECUTEL_EXIT );
    92     }
    99     }
    93 
   100 
    94 void TRegisterInterface::HandleError(THostMsErrData& aData, TInt aError)
   101 void TRegisterInterface::HandleError(THostMsErrData& aData, TInt aError)
    95     {
   102     {
    96     LOG_FUNC
   103     OstTraceFunctionEntry0( TREGISTERINTERFACE_HANDLEERROR_ENTRY );
    97     
   104     
    98     switch (aError)
   105     switch (aError)
    99         {
   106         {
   100     case KErrNoMemory:
   107     case KErrNoMemory:
   101         aData.iError = EHostMsErrOutOfMemory;
   108         aData.iError = EHostMsErrOutOfMemory;
   118     if (iInterfaceNode)
   125     if (iInterfaceNode)
   119         {
   126         {
   120         iServer.Engine().RemoveUsbMsNode(iInterfaceNode);
   127         iServer.Engine().RemoveUsbMsNode(iInterfaceNode);
   121         iInterfaceNode = NULL;
   128         iInterfaceNode = NULL;
   122         }
   129         }
       
   130     OstTraceFunctionExit0( TREGISTERINTERFACE_HANDLEERROR_EXIT );
   123     }
   131     }
   124 
   132 
   125 void TRegisterInterface::DoAsyncCmdCompleteL()
   133 void TRegisterInterface::DoAsyncCmdCompleteL()
   126     {
   134     {
   127     LOG_FUNC
   135     OstTraceFunctionEntry0( TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL_ENTRY );
   128     
   136     
   129     User::LeaveIfError(iHandler.Status().Int());
   137     User::LeaveIfError(iHandler.Status().Int());
   130     if(iInterfaceNode)
   138     if(iInterfaceNode)
   131         {
   139         {
   132         User::LeaveIfError(
   140         User::LeaveIfError(
   133                 iInterfaceNode->iUsbMsDevice.GetNumLun(iMaxLogicalUnit));
   141                 iInterfaceNode->iUsbMsDevice.GetNumLun(iMaxLogicalUnit));
   134         }
   142         }
   135 
   143 
   136     LOGTEXT2(_L8("\tGetNumLun %d"), iMaxLogicalUnit);
   144     OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL, 
       
   145             "GetNumLun %d", iMaxLogicalUnit );
   137     
   146     
   138     iCreator.CreateSubCmdForRetrieveDriveLetterL(iMaxLogicalUnit);
   147     iCreator.CreateSubCmdForRetrieveDriveLetterL(iMaxLogicalUnit);
       
   148     OstTraceFunctionExit0( TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL_EXIT );
   139     }
   149     }
   140 
   150 
   141 void TRegisterInterface::DoCancelAsyncCmd()
   151 void TRegisterInterface::DoCancelAsyncCmd()
   142     {
   152     {
   143     LOG_FUNC
   153     OstTraceFunctionEntry0( TREGISTERINTERFACE_DOCANCELASYNCCMD_ENTRY );
   144 
   154 
   145     if(iInterfaceNode)
   155     if(iInterfaceNode)
   146         {
   156         {
   147         iInterfaceNode->iUsbMsDevice.Remove();
   157         iInterfaceNode->iUsbMsDevice.Remove();
   148         iServer.Engine().RemoveUsbMsNode(iInterfaceNode);
   158         iServer.Engine().RemoveUsbMsNode(iInterfaceNode);
   149         iInterfaceNode = NULL;
   159         iInterfaceNode = NULL;
   150         }
   160         }
       
   161     OstTraceFunctionExit0( TREGISTERINTERFACE_DOCANCELASYNCCMD_EXIT );
   151     }
   162     }
   152 
   163 
   153 /**
   164 /**
   154  *  TRetrieveDriveLetter member functions
   165  *  TRetrieveDriveLetter member functions
   155  */
   166  */
   158         THostMsSubCommandParam& aParameter, TInt aLuNumber):
   169         THostMsSubCommandParam& aParameter, TInt aLuNumber):
   159 TSubCommandBase(aParameter),
   170 TSubCommandBase(aParameter),
   160 iLuNumber(aLuNumber),
   171 iLuNumber(aLuNumber),
   161 iDrive(0)
   172 iDrive(0)
   162     {
   173     {
   163     LOG_FUNC
   174     OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_TRETRIEVEDRIVELETTER_CONS_ENTRY );
   164     }
   175     }
   165 
   176 
   166 void TRetrieveDriveLetter::DoExecuteL()
   177 void TRetrieveDriveLetter::DoExecuteL()
   167     {
   178     {
   168     LOG_FUNC
   179     OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOEXECUTEL_ENTRY );
   169         
   180         
   170     TUsbMsDevice* deviceEntry(NULL);
   181     TUsbMsDevice* deviceEntry(NULL);
   171     deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId);
   182     deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId);
   172     if (!deviceEntry)
   183     if (!deviceEntry)
   173         {
   184         {
   192         iHandler.Start();
   203         iHandler.Start();
   193         TRequestStatus& status = iHandler.Status();
   204         TRequestStatus& status = iHandler.Status();
   194         iServer.PolicyPlugin()->RetrieveDriveLetterL(
   205         iServer.PolicyPlugin()->RetrieveDriveLetterL(
   195                 iDrive, iRequestData, status);
   206                 iDrive, iRequestData, status);
   196         }
   207         }
       
   208     OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOEXECUTEL_EXIT );
   197     }
   209     }
   198 
   210 
   199 void TRetrieveDriveLetter::HandleError(THostMsErrData& aData, TInt aError)
   211 void TRetrieveDriveLetter::HandleError(THostMsErrData& aData, TInt aError)
   200     {
   212     {
   201     LOG_FUNC
   213     OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_HANDLEERROR_ENTRY );
   202     
   214     
   203     switch (aError)
   215     switch (aError)
   204         {
   216         {
   205     case KErrArgument:
   217     case KErrArgument:
   206         aData.iError = EHostMsErrInvalidParameter;
   218         aData.iError = EHostMsErrInvalidParameter;
   216         }
   228         }
   217     aData.iE32Error = aError;
   229     aData.iE32Error = aError;
   218     aData.iManufacturerString = iRequestData.iManufacturerString;
   230     aData.iManufacturerString = iRequestData.iManufacturerString;
   219     aData.iProductString = iRequestData.iProductString;
   231     aData.iProductString = iRequestData.iProductString;
   220     aData.iDriveName = iDrive;
   232     aData.iDriveName = iDrive;
       
   233     OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_HANDLEERROR_EXIT );
   221     }
   234     }
   222 
   235 
   223 void TRetrieveDriveLetter::DoAsyncCmdCompleteL()
   236 void TRetrieveDriveLetter::DoAsyncCmdCompleteL()
   224     {
   237     {
   225     LOG_FUNC
   238     OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOASYNCCMDCOMPLETEL_ENTRY );
   226     
   239     
   227     User::LeaveIfError(iHandler.Status().Int());
   240     User::LeaveIfError(iHandler.Status().Int());
   228     
   241     
   229     iCreator.CreateSubCmdForMountingLogicalUnitL(iDrive, iLuNumber);
   242     iCreator.CreateSubCmdForMountingLogicalUnitL(iDrive, iLuNumber);
       
   243     OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOASYNCCMDCOMPLETEL_EXIT );
   230     }
   244     }
   231 
   245 
   232 void TRetrieveDriveLetter::DoCancelAsyncCmd()
   246 void TRetrieveDriveLetter::DoCancelAsyncCmd()
   233     {
   247     {
   234     LOG_FUNC
   248     OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOCANCELASYNCCMD_ENTRY );
   235     
   249     
   236     iServer.PolicyPlugin()->CancelRetrieveDriveLetter();
   250     iServer.PolicyPlugin()->CancelRetrieveDriveLetter();
       
   251     OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOCANCELASYNCCMD_EXIT );
   237     }
   252     }
   238 
   253 
   239 /**
   254 /**
   240  *  TMountLogicalUnit member functions
   255  *  TMountLogicalUnit member functions
   241  */
   256  */
   244         TText aDrive, TInt aLuNumber):
   259         TText aDrive, TInt aLuNumber):
   245 TSubCommandBase(aParameter),
   260 TSubCommandBase(aParameter),
   246 iDrive(aDrive),
   261 iDrive(aDrive),
   247 iLuNumber(aLuNumber)
   262 iLuNumber(aLuNumber)
   248     {
   263     {
   249     LOG_FUNC
   264     OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_TMOUNTLOGICALUNIT_CONS_ENTRY );
   250     
   265     
   251     iIsKeyCommand = EFalse;
   266     iIsKeyCommand = EFalse;
       
   267     OstTraceFunctionExit0( TMOUNTLOGICALUNIT_TMOUNTLOGICALUNIT_CONS_EXIT );
   252     }
   268     }
   253 
   269 
   254 void TMountLogicalUnit::DoExecuteL()
   270 void TMountLogicalUnit::DoExecuteL()
   255     {
   271     {
   256     LOG_FUNC
   272     OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY );
       
   273     
   257     TInt ret(KErrNone);
   274     TInt ret(KErrNone);
   258     RFs& fs = iServer.FileServerSession();
   275     RFs& fs = iServer.FileServerSession();
   259     
   276     
   260     TInt driveNum;
   277     TInt driveNum;
   261     User::LeaveIfError(fs.CharToDrive(iDrive, driveNum));
   278     User::LeaveIfError(fs.CharToDrive(iDrive, driveNum));
   275     
   292     
   276     ret = interface->iUsbMsDevice.MountLun(iLuNumber, driveNum);
   293     ret = interface->iUsbMsDevice.MountLun(iLuNumber, driveNum);
   277     if ((KErrNone != ret) && (KErrAlreadyExists != ret)
   294     if ((KErrNone != ret) && (KErrAlreadyExists != ret)
   278             && (KErrNotReady != ret))
   295             && (KErrNotReady != ret))
   279         {
   296         {
   280         User::Leave (ret);
   297         if (KErrAbort != ret)
       
   298             User::Leave (ret);
   281         }
   299         }
   282 
   300 
   283     iHandler.Start();
   301     iHandler.Start();
   284     iHandler.Complete();
   302     iHandler.Complete();
       
   303     OstTraceFunctionExit0( TMOUNTLOGICALUNIT_DOEXECUTEL_EXIT );
   285     }
   304     }
   286 
   305 
   287 void TMountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
   306 void TMountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
   288     {
   307     {
   289     LOG_FUNC
   308     OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_HANDLEERROR_ENTRY );
   290     
   309     
   291     switch (aError)
   310     switch (aError)
   292         {
   311         {
   293     case KErrNoMemory:
   312     case KErrNoMemory:
   294         aData.iError = EHostMsErrOutOfMemory;
   313         aData.iError = EHostMsErrOutOfMemory;
   334         {
   353         {
   335         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   354         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   336         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   355         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   337         }
   356         }
   338     aData.iDriveName = iDrive;
   357     aData.iDriveName = iDrive;
       
   358     OstTraceFunctionExit0( TMOUNTLOGICALUNIT_HANDLEERROR_EXIT );
   339     }
   359     }
   340 
   360 
   341 void TMountLogicalUnit::DoAsyncCmdCompleteL()
   361 void TMountLogicalUnit::DoAsyncCmdCompleteL()
   342     {
   362     {
   343     LOG_FUNC
   363     OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_ENTRY );
   344    
   364     
   345     iServer.Engine().AddUsbMsLogicalUnitL(
   365     iServer.Engine().AddUsbMsLogicalUnitL(
   346             iEvent.iDeviceId, iEvent.iInterfaceNumber, 
   366             iEvent.iDeviceId, iEvent.iInterfaceNumber, 
   347             iLuNumber, iDrive);
   367             iLuNumber, iDrive);
   348     iCreator.CreateSubCmdForSaveLatestMountInfoL(iDrive, iLuNumber);
   368     iCreator.CreateSubCmdForSaveLatestMountInfoL(iDrive, iLuNumber);
       
   369     OstTraceFunctionExit0( TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_EXIT );
   349     }
   370     }
   350 
   371 
   351 /**
   372 /**
   352  *  TSaveLatestMountInfo member functions
   373  *  TSaveLatestMountInfo member functions
   353  */
   374  */
   357         TText aDrive, TInt aLuNumber):
   378         TText aDrive, TInt aLuNumber):
   358 TSubCommandBase(aParameter),
   379 TSubCommandBase(aParameter),
   359 iDrive(aDrive),
   380 iDrive(aDrive),
   360 iLuNumber(aLuNumber)
   381 iLuNumber(aLuNumber)
   361     {
   382     {
   362     LOG_FUNC
   383     OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_TSAVELATESTMOUNTINFO_CONS_ENTRY );
   363     
   384     
   364     iIsKeyCommand = EFalse;
   385     iIsKeyCommand = EFalse;
       
   386     OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_TSAVELATESTMOUNTINFO_CONS_EXIT );
   365     }
   387     }
   366 
   388 
   367 void TSaveLatestMountInfo::DoExecuteL()
   389 void TSaveLatestMountInfo::DoExecuteL()
   368     {
   390     {
   369     LOG_FUNC
   391     OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOEXECUTEL_ENTRY );
   370         
   392     
   371     TUsbMsDevice* deviceEntry(NULL);
   393     TUsbMsDevice* deviceEntry(NULL);
   372     deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId);
   394     deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId);
   373     if (!deviceEntry)
   395     if (!deviceEntry)
   374         {
   396         {
   375         User::Leave(KErrArgument);
   397         User::Leave(KErrArgument);
   396         iHandler.Start();
   418         iHandler.Start();
   397         TRequestStatus& status = iHandler.Status();
   419         TRequestStatus& status = iHandler.Status();
   398         
   420         
   399         iServer.PolicyPlugin()->SaveLatestMountInfoL(iRecord, status);
   421         iServer.PolicyPlugin()->SaveLatestMountInfoL(iRecord, status);
   400         }
   422         }
       
   423     OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOEXECUTEL_EXIT );
   401     }
   424     }
   402 
   425 
   403 void TSaveLatestMountInfo::DoAsyncCmdCompleteL()
   426 void TSaveLatestMountInfo::DoAsyncCmdCompleteL()
   404     {
   427     {
   405     LOG_FUNC    
   428     OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOASYNCCMDCOMPLETEL_ENTRY );
       
   429         
   406     User::LeaveIfError(iHandler.Status().Int());
   430     User::LeaveIfError(iHandler.Status().Int());
       
   431     OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOASYNCCMDCOMPLETEL_EXIT );
   407     }
   432     }
   408 
   433 
   409 void TSaveLatestMountInfo::HandleError(THostMsErrData& aData, TInt aError)
   434 void TSaveLatestMountInfo::HandleError(THostMsErrData& aData, TInt aError)
   410     {
   435     {
   411     LOG_FUNC
   436     OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_HANDLEERROR_ENTRY );
   412         
   437     
   413     switch (aError)
   438     switch (aError)
   414         {
   439         {
   415     case KErrNoMemory:
   440     case KErrNoMemory:
   416         aData.iError = EHostMsErrOutOfMemory;
   441         aData.iError = EHostMsErrOutOfMemory;
   417         break;
   442         break;
   423         }
   448         }
   424     aData.iE32Error = aError;
   449     aData.iE32Error = aError;
   425     aData.iManufacturerString = iRecord.iLogicUnit.iManufacturerString;
   450     aData.iManufacturerString = iRecord.iLogicUnit.iManufacturerString;
   426     aData.iProductString = iRecord.iLogicUnit.iProductString;
   451     aData.iProductString = iRecord.iLogicUnit.iProductString;
   427     aData.iDriveName = iDrive;
   452     aData.iDriveName = iDrive;
       
   453     OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_HANDLEERROR_EXIT );
   428     }
   454     }
   429 
   455 
   430 void TSaveLatestMountInfo::DoCancelAsyncCmd()
   456 void TSaveLatestMountInfo::DoCancelAsyncCmd()
   431     {
   457     {
   432     LOG_FUNC
   458     OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOCANCELASYNCCMD_ENTRY );
   433     
   459     
   434     iServer.PolicyPlugin()->CancelSaveLatestMountInfo();
   460     iServer.PolicyPlugin()->CancelSaveLatestMountInfo();
       
   461     OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOCANCELASYNCCMD_EXIT );
   435     }
   462     }
   436 
   463 
   437 
   464 
   438 /**
   465 /**
   439  *  TDeregisterInterface member functions
   466  *  TDeregisterInterface member functions
   446 iInterfaceNumber(aInterfaceNumber),
   473 iInterfaceNumber(aInterfaceNumber),
   447 iInterfaceToken(aInterfaceToken),
   474 iInterfaceToken(aInterfaceToken),
   448 iDeviceNode(NULL),
   475 iDeviceNode(NULL),
   449 iInterfaceNode(NULL)
   476 iInterfaceNode(NULL)
   450     {
   477     {
   451     LOG_FUNC
   478     OstTraceFunctionEntry0( TDEREGISTERINTERFACE_TDEREGISTERINTERFACE_CONS_ENTRY );
   452     }
   479     }
   453 
   480 
   454 void TDeregisterInterface::DoExecuteL()
   481 void TDeregisterInterface::DoExecuteL()
   455     {
   482     {
   456     LOG_FUNC
   483     OstTraceFunctionEntry0( TDEREGISTERINTERFACE_DOEXECUTEL_ENTRY );
   457    
   484     
   458     iDeviceNode = iServer.Engine().SearchDevice(iEvent.iDeviceId);
   485     iDeviceNode = iServer.Engine().SearchDevice(iEvent.iDeviceId);
   459     if (!iDeviceNode)
   486     if (!iDeviceNode)
   460         {
   487         {
   461         User::Leave(KErrArgument);
   488         User::Leave(KErrArgument);
   462         }
   489         }
   481 
   508 
   482     // Activate the handler.
   509     // Activate the handler.
   483     iHandler.Start();
   510     iHandler.Start();
   484     // Simulate a async request be completed.
   511     // Simulate a async request be completed.
   485     iHandler.Complete();
   512     iHandler.Complete();
       
   513     OstTraceFunctionExit0( TDEREGISTERINTERFACE_DOEXECUTEL_EXIT );
   486     }
   514     }
   487 
   515 
   488 void TDeregisterInterface::HandleError(THostMsErrData& aData, TInt aError)
   516 void TDeregisterInterface::HandleError(THostMsErrData& aData, TInt aError)
   489     {
   517     {
   490     LOG_FUNC
   518     OstTraceFunctionEntry0( TDEREGISTERINTERFACE_HANDLEERROR_ENTRY );
   491      
   519     
   492     switch (aError)
   520     switch (aError)
   493         {
   521         {
   494     case KErrNoMemory:
   522     case KErrNoMemory:
   495         aData.iError = EHostMsErrOutOfMemory;
   523         aData.iError = EHostMsErrOutOfMemory;
   496         break;
   524         break;
   505         {
   533         {
   506         aData.iManufacturerString.Copy(iDeviceNode->iDevice.iManufacturerString);
   534         aData.iManufacturerString.Copy(iDeviceNode->iDevice.iManufacturerString);
   507         aData.iProductString.Copy(iDeviceNode->iDevice.iProductString);
   535         aData.iProductString.Copy(iDeviceNode->iDevice.iProductString);
   508         }
   536         }
   509     aData.iDriveName = 0;
   537     aData.iDriveName = 0;
       
   538     OstTraceFunctionExit0( TDEREGISTERINTERFACE_HANDLEERROR_EXIT );
   510     }
   539     }
   511 
   540 
   512 /**
   541 /**
   513  *  TDismountLogicalUnit member functions
   542  *  TDismountLogicalUnit member functions
   514  */
   543  */
   517         THostMsSubCommandParam& aParameter,
   546         THostMsSubCommandParam& aParameter,
   518         const TUsbMsLogicalUnit& aLogicalUnit):
   547         const TUsbMsLogicalUnit& aLogicalUnit):
   519 TSubCommandBase(aParameter),
   548 TSubCommandBase(aParameter),
   520 iLogicalUnit(aLogicalUnit)
   549 iLogicalUnit(aLogicalUnit)
   521     {
   550     {
   522     LOG_FUNC
   551     OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_TDISMOUNTLOGICALUNIT_CONS_ENTRY );
   523     }
   552     }
   524 
   553 
   525 void TDismountLogicalUnit::DoExecuteL()
   554 void TDismountLogicalUnit::DoExecuteL()
   526     {
   555     {
   527     LOG_FUNC
   556     OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY );
       
   557     
   528     RFs& fs = iServer.FileServerSession();
   558     RFs& fs = iServer.FileServerSession();
   529     TInt driveNum;
   559     TInt driveNum;
   530     fs.CharToDrive(iLogicalUnit.iDrive, driveNum);
   560     fs.CharToDrive(iLogicalUnit.iDrive, driveNum);
   531 
   561 
   532     TUsbMsInterface* interface(NULL);
   562     TUsbMsInterface* interface(NULL);
   539     
   569     
   540     // Activate the handler.
   570     // Activate the handler.
   541     iHandler.Start();
   571     iHandler.Start();
   542     // Simulate a async request be completed.
   572     // Simulate a async request be completed.
   543     iHandler.Complete();
   573     iHandler.Complete();
       
   574     OstTraceFunctionExit0( TDISMOUNTLOGICALUNIT_DOEXECUTEL_EXIT );
   544     }
   575     }
   545 
   576 
   546 void TDismountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
   577 void TDismountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
   547     {
   578     {
   548     LOG_FUNC
   579     OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_HANDLEERROR_ENTRY );
   549     
   580     
   550     switch (aError)
   581     switch (aError)
   551         {
   582         {
   552     case KErrNoMemory:
   583     case KErrNoMemory:
   553         aData.iError = EHostMsErrOutOfMemory;
   584         aData.iError = EHostMsErrOutOfMemory;
   564         {
   595         {
   565         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   596         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   566         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   597         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   567         }
   598         }
   568     aData.iDriveName = iLogicalUnit.iDrive;
   599     aData.iDriveName = iLogicalUnit.iDrive;
       
   600     OstTraceFunctionExit0( TDISMOUNTLOGICALUNIT_HANDLEERROR_EXIT );
   569     }
   601     }
   570 
   602 
   571 /**
   603 /**
   572  *  TRemoveUsbMsDeviceNode member functions
   604  *  TRemoveUsbMsDeviceNode member functions
   573  */
   605  */
   576         THostMsSubCommandParam& aParameter,
   608         THostMsSubCommandParam& aParameter,
   577         TMsmmNodeBase* aNodeToBeRemoved):
   609         TMsmmNodeBase* aNodeToBeRemoved):
   578 TSubCommandBase(aParameter),
   610 TSubCommandBase(aParameter),
   579 iNodeToBeRemoved(aNodeToBeRemoved)
   611 iNodeToBeRemoved(aNodeToBeRemoved)
   580     {
   612     {
   581     LOG_FUNC
   613     OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_TREMOVEUSBMSDEVICENODE_CONS_ENTRY );
   582     }
   614     }
   583 
   615 
   584 void TRemoveUsbMsDeviceNode::DoExecuteL()
   616 void TRemoveUsbMsDeviceNode::DoExecuteL()
   585     {
   617     {
   586     LOG_FUNC
   618     OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_DOEXECUTEL_ENTRY );
       
   619     
   587     if(iNodeToBeRemoved)
   620     if(iNodeToBeRemoved)
   588         {
   621         {
   589         iServer.Engine().RemoveUsbMsNode(iNodeToBeRemoved);
   622         iServer.Engine().RemoveUsbMsNode(iNodeToBeRemoved);
   590         iNodeToBeRemoved = NULL;
   623         iNodeToBeRemoved = NULL;
   591         }
   624         }
   596     
   629     
   597     // Activate the handler.
   630     // Activate the handler.
   598     iHandler.Start();
   631     iHandler.Start();
   599     // Simulate a async request be completed.
   632     // Simulate a async request be completed.
   600     iHandler.Complete();
   633     iHandler.Complete();
       
   634     OstTraceFunctionExit0( TREMOVEUSBMSDEVICENODE_DOEXECUTEL_EXIT );
   601     }
   635     }
   602 
   636 
   603 void TRemoveUsbMsDeviceNode::HandleError(THostMsErrData& aData, TInt aError)
   637 void TRemoveUsbMsDeviceNode::HandleError(THostMsErrData& aData, TInt aError)
   604     {
   638     {
   605     LOG_FUNC  
   639       OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_HANDLEERROR_ENTRY );
       
   640       
   606     switch (aError)
   641     switch (aError)
   607         {
   642         {
   608     case KErrArgument:
   643     case KErrArgument:
   609         aData.iError = EHostMsErrInvalidParameter;
   644         aData.iError = EHostMsErrInvalidParameter;
   610         break;
   645         break;
   617         {
   652         {
   618         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   653         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   619         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   654         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   620         }
   655         }
   621     aData.iDriveName = 0;
   656     aData.iDriveName = 0;
       
   657     OstTraceFunctionExit0( TREMOVEUSBMSDEVICENODE_HANDLEERROR_EXIT );
   622     }
   658     }
   623 
   659 
   624 // End of file
   660 // End of file