mtpfws/mtpfw/dataproviders/dputility/src/cmtpsvcgetobject.cpp
changeset 47 63cf70d3ecd8
parent 0 d0791faffa3f
equal deleted inserted replaced
44:a5deb6b96675 47:63cf70d3ecd8
    19 #include <mtp/mtpprotocolconstants.h>
    19 #include <mtp/mtpprotocolconstants.h>
    20 
    20 
    21 #include "cmtpsvcgetobject.h"
    21 #include "cmtpsvcgetobject.h"
    22 #include "mmtpservicedataprovider.h"
    22 #include "mmtpservicedataprovider.h"
    23 #include "mmtpsvcobjecthandler.h"
    23 #include "mmtpsvcobjecthandler.h"
       
    24 #include "OstTraceDefinitions.h"
       
    25 #ifdef OST_TRACE_COMPILER_IN_USE
       
    26 #include "cmtpsvcgetobjectTraces.h"
       
    27 #endif
       
    28 
    24 
    29 
    25 // Class constants.
    30 // Class constants.
    26 __FLOG_STMT(_LIT8(KComponent,"SvcGetObject");)
       
    27 
    31 
    28 EXPORT_C MMTPRequestProcessor* CMTPSvcGetObject::NewL(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMTPServiceDataProvider& aDataProvider)
    32 EXPORT_C MMTPRequestProcessor* CMTPSvcGetObject::NewL(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMTPServiceDataProvider& aDataProvider)
    29 	{
    33 	{
    30 	CMTPSvcGetObject* self = new (ELeave) CMTPSvcGetObject(aFramework, aConnection, aDataProvider);
    34 	CMTPSvcGetObject* self = new (ELeave) CMTPSvcGetObject(aFramework, aConnection, aDataProvider);
    31 	CleanupStack::PushL(self);
    35 	CleanupStack::PushL(self);
    34 	return self;
    38 	return self;
    35 	}
    39 	}
    36 
    40 
    37 EXPORT_C CMTPSvcGetObject::~CMTPSvcGetObject()
    41 EXPORT_C CMTPSvcGetObject::~CMTPSvcGetObject()
    38 	{
    42 	{
    39 	__FLOG(_L8("~CMTPSvcGetObject - Entry"));
    43 	OstTraceFunctionEntry0( CMTPSVCGETOBJECT_CMTPSVCGETOBJECT_ENTRY );
    40 	if (iReceivedObjectMetaData && iObjectHandler)
    44 	if (iReceivedObjectMetaData && iObjectHandler)
    41 		{
    45 		{
    42 		iObjectHandler->ReleaseObjectBuffer();
    46 		iObjectHandler->ReleaseObjectBuffer();
    43 		}
    47 		}
    44 	delete iReceivedObjectMetaData;
    48 	delete iReceivedObjectMetaData;
    45 
    49 
    46 	__FLOG(_L8("~CMTPSvcGetObject - Exit"));
    50 	OstTraceFunctionExit0( CMTPSVCGETOBJECT_CMTPSVCGETOBJECT_EXIT );
    47 	__FLOG_CLOSE;
       
    48 	}
    51 	}
    49 
    52 
    50 CMTPSvcGetObject::CMTPSvcGetObject(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMTPServiceDataProvider& aDataProvider) : 
    53 CMTPSvcGetObject::CMTPSvcGetObject(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMTPServiceDataProvider& aDataProvider) : 
    51 	CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
    54 	CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
    52 	iDataProvider(aDataProvider)
    55 	iDataProvider(aDataProvider)
    53 	{	
    56 	{	
    54 	}
    57 	}
    55 
    58 
    56 void CMTPSvcGetObject::ConstructL()
    59 void CMTPSvcGetObject::ConstructL()
    57 	{
    60 	{
    58 	__FLOG_OPEN(KMTPSubsystem, KComponent);
    61 	OstTraceFunctionEntry0( CMTPSVCGETOBJECT_CONSTRUCTL_ENTRY );
    59 	__FLOG(_L8("ConstructL - Entry"));
    62 	OstTraceFunctionExit0( CMTPSVCGETOBJECT_CONSTRUCTL_EXIT );
    60 	__FLOG(_L8("ConstructL - Exit"));
       
    61 	}
    63 	}
    62 
    64 
    63 TMTPResponseCode CMTPSvcGetObject::CheckRequestL()
    65 TMTPResponseCode CMTPSvcGetObject::CheckRequestL()
    64 	{
    66 	{
    65 	__FLOG(_L8("CheckRequestL - Entry"));
    67 	OstTraceFunctionEntry0( CMTPSVCGETOBJECT_CHECKREQUESTL_ENTRY );
    66 	TMTPResponseCode responseCode = CMTPRequestProcessor::CheckRequestL();
    68 	TMTPResponseCode responseCode = CMTPRequestProcessor::CheckRequestL();
    67 	if (EMTPRespCodeOK == responseCode)
    69 	if (EMTPRespCodeOK == responseCode)
    68 		{
    70 		{
    69 		TUint32 objectHandle = Request().Uint32(TMTPTypeRequest::ERequestParameter1);
    71 		TUint32 objectHandle = Request().Uint32(TMTPTypeRequest::ERequestParameter1);
    70 		
    72 		
    74 			{
    76 			{
    75 			//Check whether the owner of this object is correct data provider
    77 			//Check whether the owner of this object is correct data provider
    76 			if (iReceivedObjectMetaData->Uint(CMTPObjectMetaData::EDataProviderId) != iFramework.DataProviderId())
    78 			if (iReceivedObjectMetaData->Uint(CMTPObjectMetaData::EDataProviderId) != iFramework.DataProviderId())
    77 				{
    79 				{
    78 				responseCode = EMTPRespCodeInvalidObjectHandle;
    80 				responseCode = EMTPRespCodeInvalidObjectHandle;
    79 				__FLOG(_L8("CheckRequestL - DataProviderId dismatch"));
    81 				OstTrace0( TRACE_WARNING, DUP1_CMTPSVCGETOBJECT_CHECKREQUESTL, "CheckRequestL - DataProviderId dismatch" );
    80 				}
    82 				}
    81 			else
    83 			else
    82 				{
    84 				{
    83 				// Check format and set handler
    85 				// Check format and set handler
    84 				TUint16 formatCode = iReceivedObjectMetaData->Uint(CMTPObjectMetaData::EFormatCode);
    86 				TUint16 formatCode = iReceivedObjectMetaData->Uint(CMTPObjectMetaData::EFormatCode);
    92 		else
    94 		else
    93 			{
    95 			{
    94 			responseCode = EMTPRespCodeInvalidObjectHandle;
    96 			responseCode = EMTPRespCodeInvalidObjectHandle;
    95 			}
    97 			}
    96 		}
    98 		}
    97 	__FLOG_VA((_L8("CheckRequestL - Exit with response code = 0x%04X"), responseCode));
    99 	
       
   100     OstTrace1( TRACE_NORMAL, CMTPSVCGETOBJECT_CHECKREQUESTL, "Exit with response code = 0x%04X", responseCode );
       
   101 	OstTraceFunctionExit0( CMTPSVCGETOBJECT_CHECKREQUESTL_EXIT );
    98 	return responseCode;
   102 	return responseCode;
    99 	}
   103 	}
   100 
   104 
   101 void CMTPSvcGetObject::ServiceL()
   105 void CMTPSvcGetObject::ServiceL()
   102 	{
   106 	{
   103 	__FLOG(_L8("ServiceL - Entry"));
   107 	OstTraceFunctionEntry0( CMTPSVCGETOBJECT_SERVICEL_ENTRY );
   104 	iObjectHandler->GetObjectL(*iReceivedObjectMetaData, &iBuffer);
   108 	iObjectHandler->GetObjectL(*iReceivedObjectMetaData, &iBuffer);
   105 	SendDataL(*iBuffer);
   109 	SendDataL(*iBuffer);
   106 	__FLOG(_L8("ServiceL - Exit"));
   110 	OstTraceFunctionExit0( CMTPSVCGETOBJECT_SERVICEL_EXIT );
   107 	}
   111 	}