usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommands.cpp
branchRCL_3
changeset 43 012cc2ee6408
parent 42 f92a4f87e424
child 52 3d9964be03bc
equal deleted inserted replaced
42:f92a4f87e424 43:012cc2ee6408
     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         }
   508 
   481 
   509     // Activate the handler.
   482     // Activate the handler.
   510     iHandler.Start();
   483     iHandler.Start();
   511     // Simulate a async request be completed.
   484     // Simulate a async request be completed.
   512     iHandler.Complete();
   485     iHandler.Complete();
   513     OstTraceFunctionExit0( TDEREGISTERINTERFACE_DOEXECUTEL_EXIT );
       
   514     }
   486     }
   515 
   487 
   516 void TDeregisterInterface::HandleError(THostMsErrData& aData, TInt aError)
   488 void TDeregisterInterface::HandleError(THostMsErrData& aData, TInt aError)
   517     {
   489     {
   518     OstTraceFunctionEntry0( TDEREGISTERINTERFACE_HANDLEERROR_ENTRY );
   490     LOG_FUNC
   519     
   491      
   520     switch (aError)
   492     switch (aError)
   521         {
   493         {
   522     case KErrNoMemory:
   494     case KErrNoMemory:
   523         aData.iError = EHostMsErrOutOfMemory;
   495         aData.iError = EHostMsErrOutOfMemory;
   524         break;
   496         break;
   533         {
   505         {
   534         aData.iManufacturerString.Copy(iDeviceNode->iDevice.iManufacturerString);
   506         aData.iManufacturerString.Copy(iDeviceNode->iDevice.iManufacturerString);
   535         aData.iProductString.Copy(iDeviceNode->iDevice.iProductString);
   507         aData.iProductString.Copy(iDeviceNode->iDevice.iProductString);
   536         }
   508         }
   537     aData.iDriveName = 0;
   509     aData.iDriveName = 0;
   538     OstTraceFunctionExit0( TDEREGISTERINTERFACE_HANDLEERROR_EXIT );
       
   539     }
   510     }
   540 
   511 
   541 /**
   512 /**
   542  *  TDismountLogicalUnit member functions
   513  *  TDismountLogicalUnit member functions
   543  */
   514  */
   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);
   569     
   539     
   570     // Activate the handler.
   540     // Activate the handler.
   571     iHandler.Start();
   541     iHandler.Start();
   572     // Simulate a async request be completed.
   542     // Simulate a async request be completed.
   573     iHandler.Complete();
   543     iHandler.Complete();
   574     OstTraceFunctionExit0( TDISMOUNTLOGICALUNIT_DOEXECUTEL_EXIT );
       
   575     }
   544     }
   576 
   545 
   577 void TDismountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
   546 void TDismountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
   578     {
   547     {
   579     OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_HANDLEERROR_ENTRY );
   548     LOG_FUNC
   580     
   549     
   581     switch (aError)
   550     switch (aError)
   582         {
   551         {
   583     case KErrNoMemory:
   552     case KErrNoMemory:
   584         aData.iError = EHostMsErrOutOfMemory;
   553         aData.iError = EHostMsErrOutOfMemory;
   595         {
   564         {
   596         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   565         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   597         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   566         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   598         }
   567         }
   599     aData.iDriveName = iLogicalUnit.iDrive;
   568     aData.iDriveName = iLogicalUnit.iDrive;
   600     OstTraceFunctionExit0( TDISMOUNTLOGICALUNIT_HANDLEERROR_EXIT );
       
   601     }
   569     }
   602 
   570 
   603 /**
   571 /**
   604  *  TRemoveUsbMsDeviceNode member functions
   572  *  TRemoveUsbMsDeviceNode member functions
   605  */
   573  */
   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         }
   629     
   596     
   630     // Activate the handler.
   597     // Activate the handler.
   631     iHandler.Start();
   598     iHandler.Start();
   632     // Simulate a async request be completed.
   599     // Simulate a async request be completed.
   633     iHandler.Complete();
   600     iHandler.Complete();
   634     OstTraceFunctionExit0( TREMOVEUSBMSDEVICENODE_DOEXECUTEL_EXIT );
       
   635     }
   601     }
   636 
   602 
   637 void TRemoveUsbMsDeviceNode::HandleError(THostMsErrData& aData, TInt aError)
   603 void TRemoveUsbMsDeviceNode::HandleError(THostMsErrData& aData, TInt aError)
   638     {
   604     {
   639       OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_HANDLEERROR_ENTRY );
   605     LOG_FUNC  
   640       
       
   641     switch (aError)
   606     switch (aError)
   642         {
   607         {
   643     case KErrArgument:
   608     case KErrArgument:
   644         aData.iError = EHostMsErrInvalidParameter;
   609         aData.iError = EHostMsErrInvalidParameter;
   645         break;
   610         break;
   652         {
   617         {
   653         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   618         aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
   654         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   619         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
   655         }
   620         }
   656     aData.iDriveName = 0;
   621     aData.iDriveName = 0;
   657     OstTraceFunctionExit0( TREMOVEUSBMSDEVICENODE_HANDLEERROR_EXIT );
       
   658     }
   622     }
   659 
   623 
   660 // End of file
   624 // End of file