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 } |