usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmsession.cpp
changeset 36 1a2a19ee918d
parent 30 0897fb188e2a
equal deleted inserted replaced
31:4bea936937d0 36:1a2a19ee918d
     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".
    25 #include "msmmengine.h"
    25 #include "msmmengine.h"
    26 #include "eventqueue.h"
    26 #include "eventqueue.h"
    27 #include "msmmnodebase.h"
    27 #include "msmmnodebase.h"
    28 #include <usb/hostms/srverr.h>
    28 #include <usb/hostms/srverr.h>
    29 #include <usb/hostms/msmmpolicypluginbase.h>
    29 #include <usb/hostms/msmmpolicypluginbase.h>
       
    30 
    30 #include <usb/usblogger.h>
    31 #include <usb/usblogger.h>
    31 
    32 #include "OstTraceDefinitions.h"
    32 #ifdef __FLOG_ACTIVE
    33 #ifdef OST_TRACE_COMPILER_IN_USE
    33 _LIT8(KLogComponent, "UsbHostMsmmServer");
    34 #include "msmmsessionTraces.h"
    34 #endif
    35 #endif
    35 
    36 
       
    37 
       
    38 
    36 CMsmmSession::~CMsmmSession()
    39 CMsmmSession::~CMsmmSession()
    37     {
    40     {
    38     LOG_FUNC
    41     OstTraceFunctionEntry0( CMSMMSESSION_CMSMMSESSION_DES_ENTRY );
       
    42     
    39     delete iErrData;
    43     delete iErrData;
    40     iServer.RemoveSession();
    44     iServer.RemoveSession();
       
    45     OstTraceFunctionExit0( CMSMMSESSION_CMSMMSESSION_DES_EXIT );
    41     }
    46     }
    42 
    47 
    43 CMsmmSession* CMsmmSession::NewL(CMsmmServer& aServer, 
    48 CMsmmSession* CMsmmSession::NewL(CMsmmServer& aServer, 
    44         CDeviceEventQueue& anEventQueue)
    49         CDeviceEventQueue& anEventQueue)
    45     {
    50     {
    46     LOG_STATIC_FUNC_ENTRY
    51     OstTraceFunctionEntry0( CMSMMSESSION_NEWL_ENTRY );
       
    52     
    47     CMsmmSession* self = new(ELeave) CMsmmSession(aServer, anEventQueue);
    53     CMsmmSession* self = new(ELeave) CMsmmSession(aServer, anEventQueue);
    48     CleanupStack::PushL(self);
    54     CleanupStack::PushL(self);
    49     self->ConstructL();
    55     self->ConstructL();
    50     CleanupStack::Pop(self);
    56     CleanupStack::Pop(self);
       
    57     OstTraceFunctionExit0( CMSMMSESSION_NEWL_EXIT );
    51     return self;
    58     return self;
    52     }
    59     }
    53 
    60 
    54 void CMsmmSession::ServiceL(const RMessage2& aMessage)
    61 void CMsmmSession::ServiceL(const RMessage2& aMessage)
    55     {
    62     {
    56     LOG_STATIC_FUNC_ENTRY
    63     OstTraceFunctionEntry0( CMSMMSESSION_SERVICEL_ENTRY );
       
    64     
    57     TInt ret(KErrNone);
    65     TInt ret(KErrNone);
    58 
    66 
    59 #ifdef _DEBUG
    67 #ifdef _DEBUG
    60     TInt* heapObj= NULL;
    68     TInt* heapObj= NULL;
    61 #endif // _DEBUG
    69 #endif // _DEBUG
   101         PanicClient(aMessage, EBadRequest);
   109         PanicClient(aMessage, EBadRequest);
   102         }
   110         }
   103         
   111         
   104     // Complete the request
   112     // Complete the request
   105     aMessage.Complete(ret);
   113     aMessage.Complete(ret);
       
   114     OstTraceFunctionExit0( CMSMMSESSION_SERVICEL_EXIT );
   106     }
   115     }
   107 
   116 
   108 void CMsmmSession::ServiceError(const RMessage2 &aMessage, TInt aError)
   117 void CMsmmSession::ServiceError(const RMessage2 &aMessage, TInt aError)
   109     {
   118     {
   110     LOG_FUNC
   119     OstTraceFunctionEntry0( CMSMMSESSION_SERVICEERROR_ENTRY );
       
   120     
   111     CMsmmPolicyPluginBase* plugin = iServer.PolicyPlugin();    
   121     CMsmmPolicyPluginBase* plugin = iServer.PolicyPlugin();    
   112     TUSBMSDeviceDescription& device = iDevicePkg();
   122     TUSBMSDeviceDescription& device = iDevicePkg();
   113        
   123        
   114     switch (aError)
   124     switch (aError)
   115         {
   125         {
   129     iErrData->iE32Error = aError;
   139     iErrData->iE32Error = aError;
   130     iErrData->iManufacturerString = device.iManufacturerString;
   140     iErrData->iManufacturerString = device.iManufacturerString;
   131     iErrData->iProductString = device.iProductString;
   141     iErrData->iProductString = device.iProductString;
   132     iErrData->iDriveName = 0x0;
   142     iErrData->iDriveName = 0x0;
   133    
   143    
       
   144     OstTrace1( TRACE_DUMP, CMSMMSESSION_SERVICEERROR, "iErrData->iE32Error = %d", aError );
       
   145     OstTraceExt1( TRACE_DUMP, CMSMMSESSION_SERVICEERROR_DUP1, "iErrData->iManufacturerString=\"%S\"", device.iManufacturerString );
       
   146     OstTraceExt1( TRACE_DUMP, CMSMMSESSION_SERVICEERROR_DUP2, "iErrData->iProductString=\"%S\"", device.iProductString );
       
   147 
       
   148         
   134     TInt err(KErrNone);
   149     TInt err(KErrNone);
   135     TRAP(err, plugin->SendErrorNotificationL(*iErrData));
   150     TRAP(err, plugin->SendErrorNotificationL(*iErrData));
   136     aMessage.Complete(aError);
   151     aMessage.Complete(aError);
       
   152     OstTraceFunctionExit0( CMSMMSESSION_SERVICEERROR_EXIT );
   137     }
   153     }
   138 
   154 
   139 CMsmmSession::CMsmmSession(CMsmmServer& aServer, 
   155 CMsmmSession::CMsmmSession(CMsmmServer& aServer, 
   140         CDeviceEventQueue& anEventQueue) :
   156         CDeviceEventQueue& anEventQueue) :
   141 iServer(aServer),
   157 iServer(aServer),
   142 iEngine(aServer.Engine()),
   158 iEngine(aServer.Engine()),
   143 iEventQueue(anEventQueue)
   159 iEventQueue(anEventQueue)
   144     {
   160     {
   145     LOG_FUNC
   161     OstTraceFunctionEntry0( CMSMMSESSION_CMSMMSESSION_CONS_ENTRY );
       
   162     
   146     aServer.AddSession();
   163     aServer.AddSession();
       
   164     OstTraceFunctionExit0( CMSMMSESSION_CMSMMSESSION_CONS_EXIT );
   147     }
   165     }
   148 
   166 
   149 void CMsmmSession::ConstructL()
   167 void CMsmmSession::ConstructL()
   150     {
   168     {
   151     LOG_FUNC
   169     OstTraceFunctionEntry0( CMSMMSESSION_CONSTRUCTL_ENTRY );
       
   170     
   152     iErrData = new (ELeave) THostMsErrData;
   171     iErrData = new (ELeave) THostMsErrData;
       
   172     OstTraceFunctionExit0( CMSMMSESSION_CONSTRUCTL_EXIT );
   153     }
   173     }
   154 
   174 
   155 void CMsmmSession::AddUsbMsInterfaceL(const RMessage2& aMessage)
   175 void CMsmmSession::AddUsbMsInterfaceL(const RMessage2& aMessage)
   156     {
   176     {
   157     LOG_FUNC
   177     OstTraceFunctionEntry0( CMSMMSESSION_ADDUSBMSINTERFACEL_ENTRY );
       
   178     
   158     aMessage.Read(0, iDevicePkg);
   179     aMessage.Read(0, iDevicePkg);
   159     iInterfaceNumber = aMessage.Int1();
   180     iInterfaceNumber = aMessage.Int1();
   160     iInterfaceToken = static_cast<TInt32>(aMessage.Int2());
   181     iInterfaceToken = static_cast<TInt32>(aMessage.Int2());
   161     TUSBMSDeviceDescription& device = iDevicePkg();
   182     TUSBMSDeviceDescription& device = iDevicePkg();
   162     
   183     
   166     
   187     
   167     // Put device event into queue
   188     // Put device event into queue
   168     TDeviceEvent event(EDeviceEventAddFunction, 
   189     TDeviceEvent event(EDeviceEventAddFunction, 
   169             device.iDeviceId, iInterfaceNumber, iInterfaceToken);
   190             device.iDeviceId, iInterfaceNumber, iInterfaceToken);
   170     iEventQueue.PushL(event);
   191     iEventQueue.PushL(event);
       
   192     OstTraceFunctionExit0( CMSMMSESSION_ADDUSBMSINTERFACEL_EXIT );
   171     }
   193     }
   172 
   194 
   173 void CMsmmSession::RemoveUsbMsDeviceL(const RMessage2& aMessage)
   195 void CMsmmSession::RemoveUsbMsDeviceL(const RMessage2& aMessage)
   174     {
   196     {
   175     LOG_FUNC
   197     OstTraceFunctionEntry0( CMSMMSESSION_REMOVEUSBMSDEVICEL_ENTRY );
       
   198     
   176     iDeviceID = aMessage.Int0();
   199     iDeviceID = aMessage.Int0();
   177        
   200        
   178     // Put device event into queue
   201     // Put device event into queue
   179     TDeviceEvent event(EDeviceEventRemoveDevice, iDeviceID, 0, 0);
   202     TDeviceEvent event(EDeviceEventRemoveDevice, iDeviceID, 0, 0);
   180     iEventQueue.PushL(event);
   203     iEventQueue.PushL(event);
       
   204     OstTraceFunctionExit0( CMSMMSESSION_REMOVEUSBMSDEVICEL_EXIT );
   181     }
   205     }
   182 
   206 
   183 // End of file
   207 // End of file